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
遷移程序
在下方的命令、組態檔或 SQL 陳述式中,請務必一律: •以來源資料庫伺服器位址取代 SRCHOST •以來源 MySQL 伺服器根使用者登入取代 SRCROOTLOGIN •以要備份的來源 ESET PROTECT 資料庫名稱取代 SRCDBNAME •以備份將儲存的檔案路徑取代 BACKUPFILE •以目標 MySQL 伺服器根使用者登入取代 TARGETROOTLOGIN •以目標資料庫伺服器位址取代 TARGETHOST •以目標 ESET PROTECT 資料庫名稱 (遷移之後) 取代 TARGETDBNAME •以目標資料庫伺服器上的新 ESET PROTECT 資料庫使用者登入名稱取代 TARGETLOGIN •以目標資料庫伺服器上的新 ESET PROTECT 資料庫使用者密碼取代 TARGETPASSWD |
不需要透過命令列執行下列 SQL 陳述式。若有 GUI 工具可用,您可以使用您已熟悉的應用程式。
1.停止 ESET PROTECT 伺服器/MDM 服務。
2.[建立] 來源 ESET PROTECT 資料庫的完整資料庫備份 (您想遷移的資料庫):
mysqldump --host SRCHOST --disable-keys --extended-insert --routines -u SRCROOTLOGIN -p SRCDBNAME > BACKUPFILE |
3.[準備] 目標 MySQL 伺服器上的空資料庫:
mysql --host TARGETHOST -u TARGETROOTLOGIN -p "--execute=CREATE DATABASE TARGETDBNAME /*!40100 DEFAULT CHARACTER SET utf8 */;" |
在 Linux 系統上請使用單引號字元 ' 而非 " 雙引號。 |
4.[還原] 目標 MySQL 伺服器上的資料庫為先前準備的空資料庫:
mysql --host TARGETHOST -u TARGETROOTLOGIN -p TARGETDBNAME < BACKUPFILE |
5.[建立] 目標 MySQL 伺服器上的 ESET PROTECT 資料庫使用者:
mysql --host TARGETHOST -u TARGETROOTLOGIN -p "--execute=CREATE USER TARGETLOGIN@'%' IDENTIFIED BY 'TARGETPASSWD';" |
TARGETLOGIN 的建議字元:
•小寫 ASCII 字母、數字和底線「_」
TARGETPASSWD 的建議字元:
•僅限 ASCII 字元,包括大寫及小寫 ASCII 字母、數字、空格和特殊字元
•請勿使用非 ASCII 字元、大括號 {} 或 @
請注意,若您不遵從上述字元建議,您可能會發生資料庫連線問題,或必須在資料庫連線字串修改期間的後續步驟中溢出特殊字元。本文件不包括字元溢出規則。
6.[授與] 目標 MySQL 伺服器上 ESET PROTECT 資料庫使用者適當的存取權:
mysql --host TARGETHOST -u TARGETROOTLOGIN -p "--execute=GRANT ALL ON TARGETDBNAME.* TO TARGETLOGIN;" |
在 Linux 系統上請使用單引號字元 ' 而非 " 雙引號。 |
7.刪除 tbl_authentication_certificate 表格的內容 (否則,代理程式會無法連線至新的伺服器):
mysql --host TARGETHOST -u root -p "--execute=DELETE FROM era_db.tbl_authentication_certificate where certificate_id = 1;" |