我正在办公室运行一台服务器来处理一些文件,并将结果报告给远程MySQL服务器。

文件处理需要一段时间,进程中途死亡,并出现以下错误:

2006, MySQL server has gone away

我听说过MySQL的设置,wait_timeout,但是我需要在我办公室的服务器或远程MySQL服务器上更改它吗?


当前回答

我的问题是我为生产连接添加了SSL配置,这破坏了我的本地环境。很简单,但可能会帮助其他人意识到他们的问题。

其他回答

对我来说,它有助于修复一个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

在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}

我在MySQL命令行中使用了以下命令来恢复一个超过7GB的MySQL数据库,它是有效的。

set global max_allowed_packet=268435456;

我找到了解决“#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服务器。

这通常表示MySQL服务器连接问题或超时。 通常可以通过更改my.cnf或类似文件中的wait_timeout和max_allowed_packet来解决。

我建议以下几点:

Wait_timeout = 28800

max_allowed_packet = 8M