一尘不染

导入大型sql文件时,MySQL Server已消失

mysql

我试图通过phpMyAdmin导入一个大的sql文件…但是它一直显示错误

‘MySql服务器已消失’

该怎么办?


阅读 314

收藏
2020-05-17

共1个答案

一尘不染

如前所述这里

MySQL服务器消失(错误2006)的两个最常见的原因(和修复)是:

服务器超时并关闭了连接。怎么修:

  1. 检查mysqld的my.cnf配置文件中的wait_timeout变量是否足够大。在Debian:上sudo nano /etc/mysql/my.cnf,设置wait_timeout = 600秒(当错误2006消失时,您可以调整/减小该值),然后设置sudo /etc/init.d/mysql restart。我没有检查,但是wait_timeout的默认值可能约为28800秒(8小时)。

2.
服务器丢弃了不正确或太大的数据包。如果mysqld收到的数据包太大或不正确,则认为客户端出了点问题,并关闭了连接。您可以通过增加my.cnf文件中的max_allowed_pa​​cket值来增加最大数据包大小限制。在Debian:上sudo nano /etc/mysql/my.cnf,进行设置max_allowed_packet = 64M(当错误2006消失时,您可以调整/减小该值),然后sudo /etc/init.d/mysql restart

编辑:

请注意,MySQL选项文件尚无其命令作为注释可用(例如php.ini中的命令)。所以,你必须键入任何变化/ TWEAK
my.cnfmy.ini并将它们放在mysql/data目录或以任何其它路径的选择,如适当的组下[client][myslqd]等。例如:

[mysqld]
wait_timeout = 600
max_allowed_packet = 64M

然后重新启动服务器。要获取它们的值,请输入mysql客户端:

> select @@wait_timeout;
> select @@max_allowed_packet;
2020-05-17