mysql导入大量数据时报MySQL server has gone away错误的解决办法

在我们使用mysql导入大文件sql时可能会报MySQL server has gone away错误,该问题是max_allowed_packet配置的默认值设置太小,只需要相应调大该项的值之后再次导入便能成功。该项的作用是限制mysql服务端接收到的包的大小,因此如果导入的文件过大则可能会超过该项设置的值从而导致导入不成功!下面我们来看一下如何查看以及设置该项的值。

查看 max_allowed_packet 的值

mysql> show global variables like ‘max_allowed_packet‘;
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 4194304 |
+--------------------+---------+

可以看到默认情况下该项的大小只有4M,接下来将该值设置成64M(1024*1024*64)

mysql> set global max_allowed_packet=67108864;
Query OK, 0 rows affected (0.00 sec)

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

通过调大该值,一般来说再次导入应该就能成功了,如果任然报错,则继续再调大一些就行,请注意通过在命令行中进行设置只对当前有效,重启mysql服务之后则恢复默认值,但可以通过修改配置文件(可以在配置文件my.cnf中添加max_allowed_packet=64M即可)来达到永久有效的目的,可其实我们并不是经常有这种大量数据的导入操作,所以个人觉得通过命令行使得当前配置生效即可,没有必要修改配置文件。

原文地址:https://www.cnblogs.com/bwlluck/p/9272216.html

时间: 2024-08-07 22:39:37

mysql导入大量数据时报MySQL server has gone away错误的解决办法的相关文章

MySQL server has gone away错误的解决办法

在我们使用mysql导入大文件sql时可能会报MySQL server has gone away错误,该问题是max_allowed_packet配置的默认值设置太小,只需要相应调大该项的值之后再次导入便能成功.该项的作用是限制mysql服务端接收到的包的大小,因此如果导入的文件过大则可能会超过该项设置的值从而导致导入不成功!下面我们来看一下如何查看以及设置该项的值. 查看 max_allowed_packet 的值 show global variables like 'max_allowe

python测试开发django-58.MySQL server has gone away错误的解决办法

前言 使用django执行sql相关操作的时候,出现一个"MySQL server has gone away"错误,后来查了下是sql执行过程中,导入的文件较大时候,会出现这个异常. 检查了下sql语句,确实有插入图片,图片较大导致出现MySQL server has gone away. 该问题是max_allowed_packet配置的默认值设置太小,只需要相应调大该项的值之后再次导入便能成功. 该项的作用是限制mysql服务端接收到的包的大小,因此如果导入的文件过大则可能会超过

[大数据技术]Kettle报OPTION SQL_SELECT_LIMIT=DEFAULT错误的解决办法

百度得到的解决方式都是说mysql通过jdbc链接的时候会进行测试’SET OPTION SQL_SELECT_LIMIT=DEFAULT’,但是5.6以后的版本弃用了set的方式. 我用的MySQL数据库是5.7.20版本因此对应5.1版本的jdbc, 错误提示:You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right sy

mysql导入大批量数据出现MySQL server has gone away的解决方法

学习了:https://blog.csdn.net/fdipzone/article/details/51974165 https://blog.csdn.net/nthack5730/article/details/50043277 原文地址:https://www.cnblogs.com/stono/p/9139361.html

mysql导入大批量数据时,出现ERROR : (2006, 'MySQL server has gone away')

mysql导入数据时,出现ERROR : (2006, 'MySQL server has gone away') 解决方案:官方解释是适当增大 max_allowed_packet 参数可以使client端到server端传递大数据时,系统能够分配更多的扩展内存来处理. 设置 max_allowed_packet = 256M (1024*1024*256) set global max_allowed_packet=268435456; 使用set global命令修改 max_allowe

解决mysql导入导出数据乱码问题

最近在linux上面用mysqldump导出数据,放在windows系统中导入就会出现中文乱码,然后就会导致出现: Unknown MySQL server host和Can't connect to the server的错误.解决mysql导入导出数据乱码问题就是统一导入导出的编码,linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题. 解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上--def

MySQL导入txt数据及导出整个数据库或者数据库某个表的方法

MySQL导入txt数据 例: create schema foursquare_nyc; use foursquare_nyc; create table checkins(    userid int not null auto_increment,    originid varchar(30),    locationid varchar(40),    x double,    y double,    primary key(userid) ); load data local in

mysql导入文件数据时错误: ERROR 29 (HY000): File 'xxx.txt' not found (Errcode: 13)

突然遇到mysql错误:ERROR 29 (HY000): File '/var/www/xiaoyou/static/upload/import/20130427105733.csv.txt' not found (Errcode: 13) 感觉特奇怪,因为程序在本地很ok,生气了语句如下: LOAD DATA INFILE '/var/www/upload/abc.csv.txt' INTO TABLE alumni_import FIELDS TERMINATED BY ',' OPTIO

mysql导入导出数据中文乱码解决方法小结

inux系统中 linux默认的是utf8编码,而windows是gbk编码,所以会出现上面的乱码问题. 解决mysql导入导出数据乱码问题 首先要做的是要确定你导出数据的编码格式,使用mysqldump的时候需要加上--default-character-set=utf8, 例如下面的代码: 复制代码 代码如下: mysqldump -uroot -p --default-character-set=utf8 dbname tablename > bak.sql 那么导入数据的时候也要使用--