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 # 解釋:-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ù)類型和語(yǔ)法和mysql中的語(yǔ)法有很多區(qū)別。
下面羅列幾種常見(jiàn)的需要修改的語(yǔ)法:
- 高斯數(shù)據(jù)庫(kù)中對(duì)字段不需要使用``來(lái)包裹
- 高斯數(shù)據(jù)庫(kù)中沒(méi)有datetime數(shù)據(jù)類型 取而代之的是date數(shù)據(jù)類型
- 高斯數(shù)據(jù)庫(kù)中沒(méi)有tinyint數(shù)據(jù)類型,這里可以直接使用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依賴(前面提到過(guò),高斯數(shù)據(jù)庫(kù)是基于postgres實(shí)現(xiàn)的,所以直接導(dǎo)入postgres依賴即可)
<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從一個(gè)表中查出數(shù)據(jù)并插入到另一個(gè)表的詳細(xì)處理方案
這篇文章主要給大家介紹了關(guān)于MySQL從一個(gè)表中查出數(shù)據(jù)并插入到另一個(gè)表的詳細(xì)處理方案,文中通過(guò)圖文介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-12-12
MySQL使用innobackupex備份連接服務(wù)器失敗的解決方法
這篇文章主要為大家詳細(xì)介紹了MySQL使用innobackupex備份連接服務(wù)器失敗的解決方法,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2017-02-02
優(yōu)化 MySQL 3 個(gè)簡(jiǎn)單的小調(diào)整
本文給大家?guī)?lái)了優(yōu)化 MySQL 3 個(gè)簡(jiǎn)單的小調(diào)整,需要的朋友參考下2018-02-02
MySQL 觸發(fā)器定義與用法簡(jiǎn)單實(shí)例
這篇文章主要介紹了MySQL 觸發(fā)器定義與用法,結(jié)合簡(jiǎn)單實(shí)例形式總結(jié)分析了mysql觸發(fā)器的語(yǔ)法、原理、定義及使用方法,需要的朋友可以參考下2019-09-09
總結(jié)MySQL修改最大連接數(shù)的兩個(gè)方式
最大連接數(shù)是可以通過(guò)mysql進(jìn)行修改的,mysql數(shù)據(jù)庫(kù)修改最大連接數(shù)常用有兩種方法,今天我們分析一下這兩種方法之間的特點(diǎn)和區(qū)別,以便我們能更好的去維護(hù)mysql。下面我們來(lái)看一下mysql修改最大連接數(shù)的方法,希望文章能夠幫助到各位朋友。2016-08-08
MySQL5.7安裝過(guò)程并重置root密碼的方法(shell 腳本)
由于 MySQL 5.7 版本的 root 密碼是首次啟動(dòng)時(shí)隨機(jī)生成的,并且還要求必須修改后才能使用。下面小編給大家分享使用shell 腳本完成安裝和設(shè)置新的 root 密碼的方法,一起看看吧2016-12-12
Mysql中Table ‘XXX’ is marked as crashed and last (automatic?)
這篇文章主要介紹了Mysql中Table ‘XXX’ is marked as crashed and last (automatic?)問(wèn)題解決方法,需要的朋友可以參考下2014-05-05

