我正在办公室运行一台服务器来处理一些文件,并将结果报告给远程MySQL服务器。
文件处理需要一段时间,进程中途死亡,并出现以下错误:
2006, MySQL server has gone away
我听说过MySQL的设置,wait_timeout,但是我需要在我办公室的服务器或远程MySQL服务器上更改它吗?
我正在办公室运行一台服务器来处理一些文件,并将结果报告给远程MySQL服务器。
文件处理需要一段时间,进程中途死亡,并出现以下错误:
2006, MySQL server has gone away
我听说过MySQL的设置,wait_timeout,但是我需要在我办公室的服务器或远程MySQL服务器上更改它吗?
当前回答
取消my.ini/my.cnf中下面的ligne的注释,这将把你的大文件分割成小部分
# binary logging format - mixed recommended
# binlog_format=mixed
TO
# binary logging format - mixed recommended
binlog_format=mixed
其他回答
我也有同样的问题,但改变my.ini/my.cnf文件下[mysqld]的max_allowed_packet。
添加一条线
max_allowed_packet = 500
现在重新启动MySQL服务,一旦你完成。
错误:2006 (CR_SERVER_GONE_ERROR)
消息:MySQL服务器已经消失了
通常,您可以重试连接,然后再次执行查询来解决这个问题-在完全放弃之前尝试3-4次。
我假设您正在使用PDO。如果是这样,那么您将捕获PDO异常,增加一个计数器,然后在计数器低于阈值时再次尝试。
如果你有一个导致超时的查询,你可以执行以下命令来设置这个变量:
SET @@GLOBAL.wait_timeout=300;
SET @@LOCAL.wait_timeout=300; -- OR current session only
其中300是您认为查询可能花费的最大时间的秒数。
关于如何处理Mysql连接问题的进一步信息。
编辑:您可能还想使用的另外两个设置是net_write_timeout和net_read_timeout。
在windows上,那些使用xampp的人应该使用这个路径xampp/mysql/bin/my.ini,并将max_allowed_packet(在部分[mysqld]下)更改为您选择的大小。 如
max_allowed_packet=8M
再次在php.ini(xampp/php/php.ini)中更改upload_max_filesize选项大小。 如
upload_max_filesize=8M
让我头疼了一段时间,直到我发现这个。希望能有所帮助。
在MAMP(非专业版)中我添加了
--max_allowed_packet=268435456
到 ...\MAMP\bin\startMysql.sh
更多细节请点击这里
MAMP 5.3,你不会找到my.cnf,添加它们不工作,因为max_allowed_packet存储在变量中。
一种解决方案是:
访问http://localhost/phpmyadmin 转到SQL选项卡 运行SHOW VARIABLES并检查值,如果值小,则运行大值 运行下面的查询,它将max_allowed_packet设置为7gb: 设置全局max_allowed_packet=268435456;
对于某些情况,您可能还需要增加以下值:
set global wait_timeout = 600;
set innodb_log_file_size =268435456;