mysql导入数据错误“ERROR 2006 (HY000): MySQL server has gone away”

mysql导入数据错误“ERROR 2006 (HY000): MySQL server has gone away”

mysql导入导出的命令
mysqldump -u root -p dbname > D:\exp.sql  --本地导出
mysqldump -u admin -p -h 192.168.50.59 -P 3306  dbname> D:\exp.sql --远程导出
source D:\exp.sql --导入
mysql -u admin -p -h 192.168.50.59 -P 3306 -D dbname --远程登录
 
    
 
    
 
    
 
    
 
   

今天把从开发环境的数据库脚本导出来到本地,想在本地搭个环境,但是遇到了想不到的问题,竟然出错了,错误如下图:
mysql导入数据错误“ERROR 2006 (HY000): MySQL server has gone away”_第1张图片
按照网上的说法是,文件过大,我理解是导入时数据库处理不过来,最后导致内存不够用,连接超时,后续关联就一直报错,那么解决办法是:
修改max-allowed-packet参数
和wait_timeout 和 interactive_timeout参数


百度百科对该属性的理解如下图:

mysql导入数据错误“ERROR 2006 (HY000): MySQL server has gone away”_第2张图片


后来我设置该属性,那么设置该参数值有两种设置方法,一种是直接改my.ini配置文件(永久),一种是手动在mysql命令行设置(临时)。改配置文件重启服务后是永久存在的,命令行设置只在当前服务启动有效,重启则会回归正常,如果修改后还是不够则继续加大。

例如:my.ini/my.conf配置文件:
wait_timeout = 2880000    
interactive_timeout = 2880000  
max_allowed_packet = 128M  //1204*1024*128
  mysql命令行查看和设置
mysql> show global variables like 'max_allowed_packet';//此时是1M的,为1024*1024
+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet |1048576  |
+--------------------+---------+

mysql> set global max_allowed_packet=134217728; //此时设置为128M
Query OK, 0 rows affected (0.00 sec)

mysql> show global variables like 'max_allowed_packet';
+--------------------+-----------+
| Variable_name      | Value     |
+--------------------+-----------+
| max_allowed_packet | 134217728 |
+--------------------+-----------+
1 row in set (0.00 sec)


注意:max_allowed_packet不是越大越好,比如我的mysql 5.0版本设置大了之后使用简单命令就出现了如下错误
No connection. Trying to reconnect...

如果还是有问题增大read_buffer_size和read_rnd_buffer_size的值再试

以上都是本人操作时所出现的问题总结,如有错误之处请提出,及时更正谢谢

你可能感兴趣的:(数据库)