我正在办公室运行一台服务器来处理一些文件,并将结果报告给远程MySQL服务器。
文件处理需要一段时间,进程中途死亡,并出现以下错误:
2006, MySQL server has gone away
我听说过MySQL的设置,wait_timeout,但是我需要在我办公室的服务器或远程MySQL服务器上更改它吗?
我正在办公室运行一台服务器来处理一些文件,并将结果报告给远程MySQL服务器。
文件处理需要一段时间,进程中途死亡,并出现以下错误:
2006, MySQL server has gone away
我听说过MySQL的设置,wait_timeout,但是我需要在我办公室的服务器或远程MySQL服务器上更改它吗?
当前回答
在docker-compose.yml中添加以下设置时,我也遇到了同样的问题:
db:
image: mysql:8.0
command: --wait_timeout=800 --max_allowed_packet=256M --character-set-server=utf8 --collation-server=utf8_general_ci --default-authentication-plugin=mysql_native_password
volumes:
- ./docker/mysql/data:/var/lib/mysql
- ./docker/mysql/dump:/docker-entrypoint-initdb.d
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: ${MYSQL_ROOT_PASSWORD}
MYSQL_DATABASE: ${MYSQL_DATABASE}
MYSQL_USER: ${MYSQL_USER}
MYSQL_PASSWORD: ${MYSQL_PASSWORD}
其他回答
在MAMP(非专业版)中我添加了
--max_allowed_packet=268435456
到 ...\MAMP\bin\startMysql.sh
更多细节请点击这里
此错误是由于wait_timeout过期引起的。
去mysql服务器检查它的wait_timeout:
mysql>显示wait_timeout这样的变量 Mysql > set global wait_timeout = 600 # 10分钟或最大等待时间 你需要的
http://sggoyal.blogspot.in/2015/01/2006-mysql-server-has-gone-away.html
对于Vagrant Box,请确保为该Box分配了足够的内存
config.vm.provider "virtualbox" do |vb|
vb.memory = "4096"
end
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;
我也有同样的问题,但改变my.ini/my.cnf文件下[mysqld]的max_allowed_packet。
添加一条线
max_allowed_packet = 500
现在重新启动MySQL服务,一旦你完成。