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 信息之后就可以导入了。

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