解決mysql利用二進制日志恢復數據報錯:ERROR 1781 (HY000) at line 16: @@SESSION.GTID_NEXT cannot be set to UUID:NUMBER when @@GLOBAL.GTID_MODE = OFF.
工作中,運用二進制日志,幫開發的同事恢復數據時,出現了報錯告警:
[root@localhost tmp]# mysqlbinlog --no-defaults mysql-bin.000614|mysql -uroot -p Enter password: ERROR 1781 (HY000) at line 16: @@SESSION.GTID_NEXT cannot be set to UUID:NUMBER when @@GLOBAL.GTID_MODE = OFF. [root@localhost tmp]# mysqlbinlog --no-defaults mysql-bin.000614|mysql -uroot -p Enter password: [root@localhost tmp]# echo $? 0 服務器相關環境參數:
服務器系統:CentOS Linux release 7.3.1611 (Core)
MySQL版本:
mysql> select version(); +-----------+ | version() | +-----------+ | 5.7.13 | +-----------+ 1 row in set (0.00 sec) 解決辦法:
配置gtid選項
配置前:
mysql> show global variables like 'gtid_mode'; ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 24 Current database: gold +---------------+-------+ | Variable_name | Value | +---------------+-------+ | gtid_mode | OFF | +---------------+-------+ 1 row in set (0.10 sec) 配置后:
mysql> set @@GLOBAL.GTID_MODE = on; ERROR 1788 (HY000): The value of @@GLOBAL.GTID_MODE can only be changed one step at a time: OFF <-> OFF_PERMISSIVE <-> ON_PERMISSIVE <-> ON. Also note that this value must be stepped up or down simultaneously on all servers. See the Manual for instructions. mysql> set @@GLOBAL.GTID_MODE = OFF_PERMISSIVE; mysql> show global variables like 'gtid_mode'; +---------------+----------------+ | Variable_name | Value | +---------------+----------------+ | gtid_mode | OFF_PERMISSIVE | +---------------+----------------+ 1 row in set (0.00 sec) GTID相關知識: