MySQL數(shù)據(jù)庫(kù)遷移OpenGauss數(shù)據(jù)庫(kù)解析
環(huán)境
華為云服務(wù)器 4核 8G CentOS 8.0 64位
- JDK11
- Data Grip
- xshell
- xftp
- mysql 8
安裝OpenGauss
1.此次安裝基于Docker進(jìn)行安裝
docker安裝步驟自行解決
# 基于docker進(jìn)行安裝 $ docker run --name opengauss --privileged=true -p 5432:5432 -d -e GS_PASSWORD=Enmo@123 enmotech/opengauss:latest # 解釋?zhuān)?p 5432:5432 表示外部5432端口映射到容器中的5432端口 # GS_PASSWORD=Enmo@123 表示使用數(shù)據(jù)庫(kù)連接密碼為Enmo@123 # 這里我試過(guò)修改成其他密碼但是都連接不上,具體為什么還不知道
注意:docker run時(shí)會(huì)自動(dòng)下載對(duì)應(yīng)的鏡像,所以安裝完docker直接執(zhí)行即可。另外執(zhí)行完這個(gè)命令后數(shù)據(jù)庫(kù)就已經(jīng)啟動(dòng)了,可以嘗試用第三方工具來(lái)連接數(shù)據(jù)庫(kù)(例如DataGrip),注意要放行端口確保安全組和防火墻都是放行的。
2.DataGrip連接數(shù)據(jù)庫(kù)
其實(shí)高斯數(shù)據(jù)庫(kù)就是基于Postgres數(shù)據(jù)庫(kù)實(shí)現(xiàn)的,使用datagrip連接數(shù)據(jù)庫(kù)時(shí)數(shù)據(jù)源可以直接選擇postgres即可,后續(xù)代碼中使用的jdbc也可以直接使用postgres
host:ip地址
port:默認(rèn)5432
創(chuàng)建并導(dǎo)入數(shù)據(jù)
3.新建數(shù)據(jù)庫(kù)
我們?cè)趐ostgres下新建一個(gè)名為it_service的數(shù)據(jù)庫(kù)
這里新建可以使用sql語(yǔ)句也可以使用可視化工具
4.在it_service數(shù)據(jù)庫(kù)下創(chuàng)建并導(dǎo)入所有項(xiàng)目必要數(shù)據(jù)
直接將sql文件導(dǎo)入datagrip中,并執(zhí)行即可
這里需要特別注意,高斯數(shù)據(jù)庫(kù)中的數(shù)據(jù)類(lèi)型和語(yǔ)法和mysql中的語(yǔ)法有很多區(qū)別。
下面羅列幾種常見(jiàn)的需要修改的語(yǔ)法:
- 高斯數(shù)據(jù)庫(kù)中對(duì)字段不需要使用``來(lái)包裹
- 高斯數(shù)據(jù)庫(kù)中沒(méi)有datetime數(shù)據(jù)類(lèi)型 取而代之的是date數(shù)據(jù)類(lèi)型
- 高斯數(shù)據(jù)庫(kù)中沒(méi)有tinyint數(shù)據(jù)類(lèi)型,這里可以直接使用integer代替
- 高斯數(shù)據(jù)庫(kù)中沒(méi)有sysdate() 函數(shù),可以用 now()代替
- 高斯數(shù)據(jù)庫(kù)中創(chuàng)建約束索引、自增的語(yǔ)法不同,我是通過(guò)datagrip的可視化配置來(lái)創(chuàng)建索引的
修改后端項(xiàng)目
由于將數(shù)據(jù)庫(kù)從mysql切換到高斯數(shù)據(jù)庫(kù),我們項(xiàng)目中配置的datasource參數(shù)就需要進(jìn)行相應(yīng)的改變
1.在maven中加入postgres依賴(lài)(前面提到過(guò),高斯數(shù)據(jù)庫(kù)是基于postgres實(shí)現(xiàn)的,所以直接導(dǎo)入postgres依賴(lài)即可)
<dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.3.4</version> </dependency>
2.修改application.yml
spring: datasource: username: ${賬號(hào)} password: ${密碼} url: jdbc:postgresql://${ip地址}:${端口號(hào)}/postgres driver-class-name: org.postgresql.Driver # ${} 中的內(nèi)容需要自己填寫(xiě)
3.修改xxxMapper.xml中高斯數(shù)據(jù)庫(kù)不兼容的語(yǔ)法
部署后端項(xiàng)目
1.本地使用maven package打包
2.打包后將target目錄下生成.jar文件上傳到云服務(wù)器上(可以使用xftp等工具)
3.運(yùn)行并測(cè)試啟動(dòng)是否正常
$ java -jar itservice-server-0.0.1-SNAPSHOT.jar
4.使用postman等工具訪問(wèn)并測(cè)試
5.確認(rèn)無(wú)誤后 CTRL+C關(guān)閉當(dāng)前程序,并使用后臺(tái)啟動(dòng)
$ nohup java -jar itservice-server-0.0.1-SNAPSHOT.jar &
部署前端項(xiàng)目
基于docker進(jìn)行部署vue項(xiàng)目
1.下載nginx鏡像
$ docker pull nginx:latest
2.編寫(xiě)nginx配置文件
worker_processes auto; events { ? ? worker_connections 1024; } http { ?include ? ? ? ? ? ? mime.types; ?? ??? ? ?default_type ? ? ? ?application/octet-stream; ?#開(kāi)啟文件傳輸服務(wù)?? ? ?sendfile ? ? ? ? ? ?on; ?#設(shè)置保持鏈接時(shí)間 ?keepalive_timeout 65; ? ?client_max_body_size 20m; ? ? ? server { ? ? ? ? listen ? ? ? 80; ? ? ? ? server_name ?localhost; ? ? ? ? location / { ?? ??? ??? ?root /usr/share/nginx/html/it-service; #配置Vue項(xiàng)目根路徑,與 ?? ??? ??? ?index index.html index.html; #配置首頁(yè) ?? ??? ??? ?try_files $uri $uri/ /index.html; #防止刷新報(bào)404 ?? ??? ?} ? ? ? ? error_page 500 502 503 504 /50x.html; ? ? ? ? ? ? location = /50x.html { ?? ??? ??? ?root html; ? ? ? ? } ? ? } }
3.編寫(xiě)Dockerfile文件
FROM nginx # 將dist目錄 拷貝到 容器中的 it-service目錄下(注意這個(gè)it-service目錄必須和上面nginx配置文件中的映射路徑相同) COPY dist/. /usr/share/nginx/html/it-service/ # 將nginx的配置文件 替換掉 容器中的配置文件(注意這里是直接替換的nginx.conf),也就是說(shuō)我們寫(xiě)的conf文件必須是完整的一個(gè)nginx配置文件 COPY default.conf /etc/nginx/nginx.conf
4.制作鏡像
$ docker build -t itservice-nginx .
5.啟動(dòng)容器
$ docker run -d -p 80:80 itservice-nginx
6.訪問(wèn)測(cè)試
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
相關(guān)文章
mysql 如何插入隨機(jī)字符串?dāng)?shù)據(jù)的實(shí)現(xiàn)方法
這篇文章主要介紹了mysql 如何插入隨機(jī)字符串?dāng)?shù)據(jù)的實(shí)現(xiàn)方法,需要的朋友可以參考下2016-09-09Mysql limit 優(yōu)化,百萬(wàn)至千萬(wàn)級(jí)快速分頁(yè) 復(fù)合索引的引用并應(yīng)用于輕量級(jí)框架
MySql 性能到底能有多高?用了php半年多,真正如此深入的去思考這個(gè)問(wèn)題還是從前天開(kāi)始。有過(guò)痛苦有過(guò)絕望,到現(xiàn)在充滿信心!2011-06-06MySQL查詢(xún)優(yōu)化之explain的深入解析
本篇文章是對(duì)MySQL查詢(xún)優(yōu)化中的explain進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下2013-06-06MySQL8.0本地服務(wù)器連接不上的問(wèn)題解決
一個(gè)內(nèi)網(wǎng)內(nèi)連接mysql會(huì)出現(xiàn)提示Host xxx is not allowed to connect to this MySQL server,本文主要介紹了MySQL8.0本地服務(wù)器連接不上的問(wèn)題解決,感興趣的可以了解一下2024-01-01MySQL命令行中給表添加一個(gè)字段(字段名、是否為空、默認(rèn)值)
本文介紹MySQL數(shù)據(jù)庫(kù)使用SQL語(yǔ)句來(lái)在現(xiàn)有的表中,添加一個(gè)新的字段,包括設(shè)置字段的是否為空、默認(rèn)值等2016-04-04關(guān)于MySQL數(shù)據(jù)庫(kù)死鎖的案例和解決方案
MySQL Update語(yǔ)句防止死鎖是指在修改MySQL數(shù)據(jù)庫(kù)的數(shù)據(jù)時(shí),為避免多個(gè)進(jìn)程同時(shí)修改同一數(shù)據(jù)行而造成死鎖的情況,引入了一些機(jī)制來(lái)防止死鎖的產(chǎn)生,本文介紹了一個(gè) MySQL 數(shù)據(jù)庫(kù)死鎖的案例和解決方案,需要的朋友可以參考下2023-09-09MySQL數(shù)據(jù)庫(kù)基礎(chǔ)學(xué)習(xí)之JSON函數(shù)各類(lèi)操作詳解
很多日常業(yè)務(wù)場(chǎng)景都會(huì)用到j(luò)son文件作為數(shù)據(jù)存儲(chǔ)起來(lái),而mysql5.7以上就提供了存儲(chǔ)json的支撐。這篇文章就為大家整理了MySQL中JSON函數(shù)的各類(lèi)操作,感興趣的可以了解一下2023-02-02查看當(dāng)前mysql使用頻繁的sql語(yǔ)句(詳解)
下面小編就為大家?guī)?lái)一篇查看當(dāng)前mysql使用頻繁的sql語(yǔ)句(詳解)。小編覺(jué)的挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-03-03