共计 897 个字符,预计需要花费 3 分钟才能阅读完成。
问题:
今天通过 MySQLdump 导出数据,在目标机器上开个 screen 执行 source 导入数据。过一会看了下,发现居然导入报错了。报错提示如下:
刚开始还以为是 sql_mode 设置的问题,改了 sql_mode 为宽松模式,再次导入还是报错。
网上查了下,MySQL 恢复数据库时出现如下错误:
ERROR 1231 (42000): Variable‘time_zone’can’t be set to the value of‘NULL’
ERROR 1231 (42000): Variable‘sql_mode’can’t be set to the value of‘NULL’
ERROR 1231 (42000): Variable‘foreign_key_checks’can’t be set to the value of‘NULL’
ERROR 1231 (42000): Variable‘unique_checks’can’t be set to the value of‘NULL’
ERROR 1231 (42000): Variable‘character_set_client’can’t be set to the value of‘NULL’
Query OK, 0 rows affected (0.00 sec)
解决方式:
mysql> set global max_allowed_packet=1000000000;
mysql> source ./my_db.sql;
———————————————————————————–
set global max_allowed_packet=524288000; 设置为 512MB
退出 mysql,然后再登进去 source 即可。
究其原因,是因为之前安装的这个 mysql,什么参数都没有修改,用的默认配置,各种参数都设置的比较小。我们还要根据自己业务场景和硬件配置完善下 /etc/my.cnf。不然下次还会遇到这个问题。
本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-04/143261.htm