最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

如何將mysql遷移到翰高數(shù)據(jù)庫(kù)

 更新時(shí)間:2026年03月08日 11:42:41   作者:shan~~  
瀚高基礎(chǔ)軟件股份有限公司成立于2005年,是國(guó)內(nèi)數(shù)據(jù)庫(kù)行業(yè)龍頭企業(yè),專業(yè)從事數(shù)據(jù)庫(kù)管理系統(tǒng)研發(fā)、銷售與服務(wù),下面這篇文章主要介紹了如何將mysql遷移到翰高數(shù)據(jù)庫(kù)的相關(guān)資料,文中通過(guò)代碼介紹的非常詳細(xì),需要的朋友可以參考下

一,設(shè)置翰高數(shù)據(jù)庫(kù)可以遠(yuǎn)程訪問(wèn)

檢查數(shù)據(jù)庫(kù)服務(wù)狀態(tài)

# 檢查數(shù)據(jù)庫(kù)服務(wù)是否運(yùn)行
sudo systemctl status highgo
# 如果沒(méi)有運(yùn)行,啟動(dòng)服務(wù)
sudo systemctl start highgo
# 檢查進(jìn)程
ps aux | grep postgres

檢查本地連接

# 先在數(shù)據(jù)庫(kù)服務(wù)器本地測(cè)試連接
psql -h localhost -p 5866 -d highgo -U jing -c "SELECT version();"

配置遠(yuǎn)程訪問(wèn)

vi /home/jing/hgdb-v9.0/data/postgresql.conf

找到并修改

listen_addresses = '*'    # 允許所有IP連接
port = 5866

修改客戶端認(rèn)證

# 允許從任何IP連接
host    all             all             0.0.0.0/0               scram-sha-256

重啟數(shù)據(jù)庫(kù)服務(wù)器

# 重啟服務(wù)
sudo systemctl restart highgo

檢查端口監(jiān)聽(tīng)

# 檢查5866端口是否在監(jiān)聽(tīng)
netstat -tulpn | grep 5866

# 應(yīng)該看到類似:
# tcp  0  0 0.0.0.0:5866  0.0.0.0:*  LISTEN  12345/postgres

配置防火墻

# 開(kāi)放5866端口
sudo ufw allow 5866

# 或者針對(duì)特定IP開(kāi)放
sudo ufw allow from 192.168.190.154 to any port 5866

# 檢查防火墻狀態(tài)
sudo ufw status

備注,如果檢查端口監(jiān)聽(tīng)時(shí),出現(xiàn)

tcp 0 127.0.0.1:5866 0.0.0.0:* LISTEN 12345/postgres

這會(huì)只能本地連接,不能遠(yuǎn)程連接。

需要再排查下原因,這是我遇到的問(wèn)題,解決方案

用root權(quán)限檢查端口監(jiān)聽(tīng)

# 用sudo檢查端口監(jiān)聽(tīng)(顯示完整信息)
sudo netstat -tulpn | grep 5866

# 或者使用ss命令
sudo ss -tulpn | grep 5866

檢查數(shù)據(jù)庫(kù)日志

# 查看數(shù)據(jù)庫(kù)啟動(dòng)日志
sudo journalctl -u highgo -n 20

# 或者查看數(shù)據(jù)庫(kù)日志文件
sudo tail -f /home/jing/hgdb-v9.0/data/log/*.log

檢查是否有其他配置覆蓋

# 檢查所有配置文件中關(guān)于listen的設(shè)置
sudo grep -r "listen" /home/jing/hgdb-v9.0/data/

# 檢查是否有環(huán)境變量覆蓋
sudo grep -r "PGPORT\|PGHOST" /etc/systemd/system/

通過(guò)以上找到問(wèn)題

有兩個(gè)配置文件在沖突:

/home/jing/hgdb-v9.0/data/postgresql.conf - 設(shè)置了 listen_addresses = ‘*’

/home/jing/hgdb-v9.0/data/db.conf - 設(shè)置了 listen_addresses = ‘localhost’

db.conf 文件覆蓋了 postgresql.conf 的設(shè)置!

解決方案

# 編輯 db.conf 文件
sudo vi /home/jing/hgdb-v9.0/data/db.conf

找到并修改:

# 將
listen_addresses = 'localhost'

# 改為
listen_addresses = '*'

重啟數(shù)據(jù)庫(kù)服務(wù)

# 重啟服務(wù)
sudo systemctl restart highgo

# 檢查狀態(tài)
sudo systemctl status highgo

# 檢查端口監(jiān)聽(tīng)
sudo netstat -tulpn | grep 5866

應(yīng)該能看到

tcp        0      0 0.0.0.0:5866          0.0.0.0:*               LISTEN      xxxxx/postgres

二,進(jìn)行遷移,這里選擇從mysql遷移到翰高數(shù)據(jù)庫(kù)

方法1,使用 Navicat Premium

Navicat Premium 支持多種數(shù)據(jù)庫(kù),包括 MySQL 和 PostgreSQL(與翰高數(shù)據(jù)庫(kù)兼容),可以方便地進(jìn)行數(shù)據(jù)傳輸。

步驟

1,準(zhǔn)備環(huán)境:確保你安裝了 Navicat Premium,并且可以同時(shí)連接到源 MySQL 數(shù)據(jù)庫(kù)和目標(biāo)翰高數(shù)據(jù)庫(kù)。

2,創(chuàng)建目標(biāo)空數(shù)據(jù)庫(kù):在翰高數(shù)據(jù)庫(kù)中創(chuàng)建一個(gè)空的數(shù)據(jù)庫(kù),用于接收數(shù)據(jù)。

3,使用“數(shù)據(jù)傳輸”功能:

  • 在 Navicat 中,選擇 工具 -> 數(shù)據(jù)傳輸。
  • 源:選擇你的 MySQL 連接和數(shù)據(jù)庫(kù)。
  • 目標(biāo):選擇你的翰高數(shù)據(jù)庫(kù)連接和剛創(chuàng)建的空數(shù)據(jù)庫(kù)。

4,配置傳輸選項(xiàng):

  • “高級(jí)”選項(xiàng)卡:這是關(guān)鍵。

勾選 “遇到錯(cuò)誤時(shí)繼續(xù)”,避免因單條記錄失敗而中斷整個(gè)進(jìn)程。

在 “記錄轉(zhuǎn)換” 或類似選項(xiàng)中,可以選擇在傳輸時(shí)執(zhí)行一些簡(jiǎn)單的數(shù)據(jù)轉(zhuǎn)換。

  • “選項(xiàng)”選項(xiàng)卡:可以選擇傳輸表結(jié)構(gòu)、數(shù)據(jù)、索引、約束等。建議第一次先只傳輸 “結(jié)構(gòu)”,檢查和修復(fù)問(wèn)題后,再單獨(dú)傳輸 “數(shù)據(jù)”。

5,運(yùn)行并檢查:

  • 開(kāi)始傳輸。Navicat 會(huì)自動(dòng)嘗試創(chuàng)建兼容的表結(jié)構(gòu)并插入數(shù)據(jù)。
  • 傳輸完成后,務(wù)必仔細(xì)檢查日志文件,查看是否有表創(chuàng)建失敗、數(shù)據(jù)類型轉(zhuǎn)換錯(cuò)誤或數(shù)據(jù)插入失敗等情況。

6,手動(dòng)修復(fù):根據(jù)日志中的錯(cuò)誤,手動(dòng)在翰高數(shù)據(jù)庫(kù)中修復(fù)不兼容的 SQL 語(yǔ)句或數(shù)據(jù)類型。

方法2:使用 SQL 文件導(dǎo)出和導(dǎo)入 (通用方法)

這是一種比較原始但可控的方法,適用于數(shù)據(jù)量不大或需要深度定制的情況。

步驟:

1,從 MySQL 導(dǎo)出結(jié)構(gòu)和數(shù)據(jù)

  • 使用 mysqldump 工具,但最好將表結(jié)構(gòu)和數(shù)據(jù)分開(kāi)導(dǎo)出,以便于修改。

  • 導(dǎo)出僅結(jié)構(gòu):

mysqldump -h [mysql_host] -u [user] -p --no-data [database_name] > mysql_schema.sql

導(dǎo)出僅數(shù)據(jù):

mysqldump -h [mysql_host] -u [user] -p --no-create-info [database_name] > mysql_data.sql

2,轉(zhuǎn)換 SQL 文件

這是最繁瑣但最關(guān)鍵的一步。你需要手動(dòng)或使用腳本修改 mysql_schema.sql 文件,使其符合翰高數(shù)據(jù)庫(kù)(PostgreSQL)的語(yǔ)法。

常見(jiàn)轉(zhuǎn)換項(xiàng):

  • 反引號(hào):MySQL 使用 `,PostgreSQL 使用 " 或不使用(如果表名/字段名不是關(guān)鍵字)。

  • 自增主鍵:

    MySQL: id int AUTO_INCREMENT PRIMARY KEY

PostgreSQL: id SERIAL PRIMARY KEY 或 id int GENERATED ALWAYS AS IDENTITY PRIMARY KEY

  • 字符串類型:

LONGTEXT -> TEXT

TINYTEXT -> TEXT 或 VARCHAR

VARCHAR(255) -> VARCHAR(255) (通常不變)

  • 日期時(shí)間類型:

DATETIME -> TIMESTAMP

TIMESTAMP -> TIMESTAMPTZ (建議,帶時(shí)區(qū))

  • 布爾類型:

TINYINT(1) -> BOOLEAN

  • 注釋語(yǔ)法:

MySQL: COMMENT 這是一個(gè)注釋

PostgreSQL: COMMENT ON COLUMN table_name.column_name IS ‘這是一個(gè)注釋’;

  • 索引:檢查是否有特定于 MySQL 的索引類型(如 FULLTEXT),需要在翰高中找到替代方案(如 GIN 索引)。

  • 引擎聲明:刪除 ENGINE=InnoDB 等。

3,在翰高數(shù)據(jù)庫(kù)中導(dǎo)入

  • 使用 psql 命令行工具連接到翰高數(shù)據(jù)庫(kù)。

  • 先導(dǎo)入修改后的結(jié)構(gòu)文件:

psql -h [highgo_host] -U [highgo_user] -d [highgo_database] -f converted_schema.sql
  • 然后導(dǎo)入數(shù)據(jù)文件:
psql -h [highgo_host] -U [highgo_user] -d [highgo_database] -f mysql_data.sql

4,修復(fù)序列(自增)

數(shù)據(jù)導(dǎo)入后,表的自增序列可能沒(méi)有更新到最大值,需要手動(dòng)重置。

sql
-- 為每個(gè)有自增主鍵的表執(zhí)行以下操作(以表 your_table 和主鍵列 id 為例)
SELECT setval(pg_get_serial_sequence('your_table', 'id'), COALESCE(MAX(id), 1)) FROM your_table;

-- 或者使用一個(gè)腳本生成所有表的修復(fù)語(yǔ)句
SELECT 'SELECT setval(pg_get_serial_sequence(''' || table_name || ''', ''' || column_name || '''), COALESCE(MAX(' || column_name || '), 1)) FROM ' || table_name || ';'
FROM information_schema.columns
WHERE table_schema = 'public'
AND column_default LIKE 'nextval%';

三,遷移后的關(guān)鍵檢查和驗(yàn)證

無(wú)論使用哪種方法,遷移完成后都必須進(jìn)行驗(yàn)證:

1.數(shù)據(jù)一致性檢查:隨機(jī)抽取幾張表,對(duì)比 MySQL 和翰高數(shù)據(jù)庫(kù)中的記錄數(shù)量以及關(guān)鍵字段的值是否一致。

2.應(yīng)用程序測(cè)試:將應(yīng)用程序的連接字符串指向新的翰高數(shù)據(jù)庫(kù),進(jìn)行全面的功能測(cè)試、性能測(cè)試和壓力測(cè)試。

3.檢查存儲(chǔ)過(guò)程和函數(shù):如果 MySQL 中有存儲(chǔ)過(guò)程、函數(shù)或觸發(fā)器,它們幾乎 100% 需要重寫,因?yàn)閮烧叩恼Z(yǔ)法完全不同。這部分通常是手動(dòng)工作量最大的。

4.檢查外鍵和約束:確保所有外鍵約束、唯一約束等都正確遷移。

5.權(quán)限配置:重新配置應(yīng)用程序用戶的權(quán)限。

總結(jié)

到此這篇關(guān)于如何將mysql遷移到翰高數(shù)據(jù)庫(kù)的文章就介紹到這了,更多相關(guān)mysql遷移到翰高數(shù)據(jù)庫(kù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL 選擇合適的存儲(chǔ)引擎

    MySQL 選擇合適的存儲(chǔ)引擎

    這篇文章主要介紹了MySQL如何選擇合適的存儲(chǔ)引擎,幫助大家更好的理解和使用MySQL數(shù)據(jù)庫(kù),感興趣的朋友可以了解下
    2020-09-09
  • 一文帶你徹底了解MySQL事務(wù)機(jī)制

    一文帶你徹底了解MySQL事務(wù)機(jī)制

    一個(gè)事情由n個(gè)單元組成,這n個(gè)單元在執(zhí)行過(guò)程中,要么同時(shí)成功,要么同時(shí)失敗,這就把n個(gè)單元放在了一個(gè)事務(wù)之中,這篇文章主要給大家詳細(xì)介紹MySQL的事務(wù)機(jī)制,感興趣的同學(xué)歡迎閱讀本文
    2023-06-06
  • Ubuntu18.04安裝mysql5.7.23的教程

    Ubuntu18.04安裝mysql5.7.23的教程

    這篇文章主要為大家詳細(xì)介紹了Ubuntu18.04安裝mysql5.7.23的教程,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-02-02
  • DROP TABLE在不同數(shù)據(jù)庫(kù)中的寫法整理

    DROP TABLE在不同數(shù)據(jù)庫(kù)中的寫法整理

    這篇文章主要介紹了DROP TABLE在不同數(shù)據(jù)庫(kù)中的寫法整理的相關(guān)資料,需要的朋友可以參考下
    2017-04-04
  • MyBatis 如何寫配置文件和簡(jiǎn)單使用

    MyBatis 如何寫配置文件和簡(jiǎn)單使用

    這篇文章主要介紹了MyBatis 如何寫配置文件和簡(jiǎn)單使用的相關(guān)資料,需要的朋友可以參考下
    2017-01-01
  • 淺談MySQL函數(shù)

    淺談MySQL函數(shù)

    這篇文章主要介紹MySQL函數(shù),主要解說(shuō)數(shù)學(xué)函數(shù)、字符串函數(shù)、 時(shí)間函數(shù)、加密函數(shù),需要的朋友可以參考下面文章具體內(nèi)容
    2021-09-09
  • MySQL修改配置 區(qū)分大小寫

    MySQL修改配置 區(qū)分大小寫

    修改MySql Server安裝目錄下的 my.ini 文件,在mysqld節(jié)下加入下面一行 set-variable=lower_case_table_names=0 (0:大小寫敏感;1:大小寫不敏感)最后重啟一下MySql服務(wù)即可。
    2010-12-12
  • Mysql根據(jù)一個(gè)表的數(shù)據(jù)更新另一個(gè)表數(shù)據(jù)的SQL寫法(三種寫法)

    Mysql根據(jù)一個(gè)表的數(shù)據(jù)更新另一個(gè)表數(shù)據(jù)的SQL寫法(三種寫法)

    這篇文章主要介紹了Mysql根據(jù)一個(gè)表的數(shù)據(jù)更新另一個(gè)表數(shù)據(jù)的SQL寫法,本文給大家分享三種解決方法,需要的朋友可以參考下
    2023-06-06
  • 基于sqlalchemy對(duì)mysql實(shí)現(xiàn)增刪改查操作

    基于sqlalchemy對(duì)mysql實(shí)現(xiàn)增刪改查操作

    這篇文章主要介紹了基于sqlalchemy對(duì)mysql實(shí)現(xiàn)增刪改查操作,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-06-06
  • mysql 8.0.22 安裝配置方法圖文教程

    mysql 8.0.22 安裝配置方法圖文教程

    這篇文章主要為大家詳細(xì)介紹了mysql 8.0.22 安裝配置方法圖文教程,文中安裝步驟介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-10-10

最新評(píng)論

开江县| 吴忠市| 屏东县| 沭阳县| 宁阳县| 积石山| 县级市| 新平| 彰化县| 佛学| 恩施市| 华池县| 加查县| 山东| 会东县| 古丈县| 静安区| 临汾市| 清徐县| 炉霍县| 双城市| 积石山| 濮阳县| 鹤峰县| 河南省| 禹州市| 宜兴市| 迁安市| 无为县| 安达市| 黔东| 遵化市| 郁南县| 宿迁市| 中牟县| 天峨县| 石棉县| 海盐县| 湖州市| 长泰县| 赤峰市|