MySQL 伺服器遷移程序

先決條件

必須安裝來源及目標 SQL Server 執行個體。它們可託管於不同電腦。

至少必須有一台電腦 (mysqldump 和 mysql 用戶端) 上已安裝 MySQL 工具。

實用連結

https://dev.mysql.com/doc/refman/5.6/en/copying-databases.html

https://dev.mysql.com/doc/refman/5.6/en/mysqldump.html

https://dev.mysql.com/doc/refman/5.6/en/mysql.html

遷移程序

note

注意

在下方的命令、組態檔或 SQL 陳述式中,請務必一律:

以來源資料庫伺服器位址取代 SRCHOST

以來源 MySQL 伺服器根使用者登入取代 SRCROOTLOGIN

以要備份的來源 ESMC 資料庫名稱取代 SRCERADBNAME

以備份將儲存的檔案路徑取代 BACKUPFILE

以目標 MySQL 伺服器根使用者登入取代 TARGETROOTLOGIN

以目標資料庫伺服器位址取代 TARGETHOST

以目標 ESMC 資料庫名稱 (遷移之後) 取代 TARGETERADBNAME

以目標資料庫伺服器上的新 ESMC 資料庫使用者登入名稱取代 TARGETERALOGIN

以目標資料庫伺服器上的新 ESMC 資料庫使用者密碼取代 TARGETERAPASSWD

不需要透過命令列執行下列 SQL 陳述式。若有 GUI 工具可用,您可以使用您已熟悉的應用程式。

1.停止 ESMC 伺服器/MDM 服務。

2.[建立] 來源 ESMC 資料庫的完整資料庫備份 (您想遷移的資料庫):

mysqldump --host SRCHOST --disable-keys --extended-insert --routines -u SRCROOTLOGIN -p SRCERADBNAME > BACKUPFILE

3.[準備] 目標 MySQL 伺服器上的空資料庫:

mysql --host TARGETHOST -u TARGETROOTLOGIN -p "--execute=CREATE DATABASE TARGETERADBNAME /*!40100 DEFAULT CHARACTER SET utf8 */;"

note

注意

在 Linux 系統上請使用單引號字元 ' 而非 " 雙引號。

4.[還原] 目標 MySQL 伺服器上的資料庫為先前準備的空資料庫:

mysql --host TARGETHOST -u TARGETROOTLOGIN -p TARGETERADBNAME < BACKUPFILE

5.[建立] 目標 MySQL 伺服器上的 ESMC 資料庫使用者:

mysql --host TARGETHOST -u TARGETROOTLOGIN -p "--execute=CREATE USER TARGETERALOGIN@'%' IDENTIFIED BY 'TARGETERAPASSWD';"

TARGETERALOGIN 的建議字元:

小寫 ASCII 字母、數字和底線「_」

TARGETERAPASSWD 的建議字元:

僅限 ASCII 字元,包括大寫及小寫 ASCII 字母、數字、空格和特殊字元

請勿使用非 ASCII 字元、大括號 {} 或 @

請注意,若您不遵從上述字元建議,您可能會發生資料庫連線問題,或必須在資料庫連線字串修改期間的後續步驟中溢出特殊字元。本文件不包括字元溢出規則。

6.[授與] 目標 MySQL 伺服器上 ESMC 資料庫使用者適當的存取權:

mysql --host TARGETHOST -u TARGETROOTLOGIN -p "--execute=GRANT ALL ON TARGETERADBNAME.* TO TARGETERALOGIN;"

note

注意

在 Linux 系統上請使用單引號字元 ' 而非 " 雙引號。

7.刪除 tbl_authentication_certificate 表格的內容 (否則,代理程式會無法連線至新的伺服器):

 mysql --host TARGETHOST -u root -p "--execute=DELETE FROM era_db.tbl_authentication_certificate where certificate_id = 1;"

8.將 ESMC 伺服器或 MDM 連線至資料庫