mysql 數據庫 導出導入庫 GTID 問題

1.導出數據

$ mysqldump  -h host -u username -p  導出數據庫 name > /boss.sql

此時mysql warning 信息:

Warning: A partial dump from a server that has GTIDs will by default include the GTIDs of all transactions, even those that changed suppressed parts of the database. If you don't want to restore GTIDs, pass --set-gtid-purged=OFF. To make a complete dump, pass --all-databases --triggers --routines --events

2. 目標庫導入數據

$ mysql -h host -u username -p 目標數據庫 name < /boss.sql

報錯error:

ERROR 1840 (HY000) at line 24: @@GLOBAL.GTID_PURGED can only be set when @@GLOBAL.GTID_EXECUTED is empty.

解決:

當前數據庫實例中開啓了 GTID 功能, 在開啓有 GTID 功能的數據庫實例中, 導出其中任何一個庫, 如果沒有顯示地指定--set-gtid-purged參數, 都會提示這一行信息. 意思是默認情況下, 導出的庫中含有 GTID 信息, 如果不想導出包含有 GTID 信息的數據庫, 需要顯示地添加--set-gtid-purged=OFF參數.

方案:

1. 導出的時候加上參數:--set-gtid-purged=OFF

$ mysqldump  -h host -u username -p --set-gtid-purged=OFF databasename > /boss.sql

2.在目標數據庫中執行mysql> reset slave all; mysql> reset master; 清空所有 GTID 信息之後就可以導入了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章