我正在办公室运行一台服务器来处理一些文件,并将结果报告给远程MySQL服务器。
文件处理需要一段时间,进程中途死亡,并出现以下错误:
2006, MySQL server has gone away
我听说过MySQL的设置,wait_timeout,但是我需要在我办公室的服务器或远程MySQL服务器上更改它吗?
我正在办公室运行一台服务器来处理一些文件,并将结果报告给远程MySQL服务器。
文件处理需要一段时间,进程中途死亡,并出现以下错误:
2006, MySQL server has gone away
我听说过MySQL的设置,wait_timeout,但是我需要在我办公室的服务器或远程MySQL服务器上更改它吗?
当前回答
我的问题是我为生产连接添加了SSL配置,这破坏了我的本地环境。很简单,但可能会帮助其他人意识到他们的问题。
其他回答
在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}
此错误是由于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
我找到了解决“#2006 - MySQL服务器已经消失”这个错误的方法。 解决办法就是检查两个文件
config.inc.php config.sample.inc.php
这些文件在windows下的路径为
C:\wamp64\apps\phpmyadmin4.6.4
在这两个文件中this的值:
$cfg['Servers'][$i]['host']must be 'localhost' .
我的情况是:
$cfg['Servers'][$i]['host'] = '127.0.0.1';
改为:
"$cfg['Servers'][$i]['host']" = 'localhost';
两方面都要确保:
config.inc.php Config.sample.inc.php文件必须是'localhost'。
最后一组:
$cfg['Servers'][$i]['AllowNoPassword'] = true;
然后重新启动Wampserver。
修改phpmyadmin用户名和密码
可以直接通过config.inc.php文件修改phpmyadmin的用户名和密码
这两条线
$cfg['Servers'][$i]['user'] = 'root';
$cfg['Servers'][$i]['password'] = '';
在这里你可以输入新的用户名和密码。 更改后保存文件并重新启动WAMP服务器。
对我来说,它有助于修复一个innodb表的损坏的索引树。我用这个命令本地化了这样一个表
mysqlcheck -uroot --databases databaseName
结果
mysqlcheck: Got error: 2013: Lost connection to MySQL server during query when executing 'CHECK TABLE ...
如下所示,我只能从mysqld日志/var/log/mysqld.log中看到哪个表造成了问题。
FIL_PAGE_PREV links 2021-08-25T14:05:22.182328Z 2 [ERROR] InnoDB: Corruption of an index tree: table `database`.`tableName` index `PRIMARY`, father ptr page no 1592, child page no 1234'
mysqlcheck命令并没有修复它,但帮助揭示了它。 最终,我通过mysql命令行中一个常规的mysql命令来修复它
OPTIMIZE table theCorruptedTableNameMentionedAboveInTheMysqld.log
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;