导入大型sql文件时,MySQL服务器已经消失

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

'MySql服务器已经消失'

该怎么办?


如此处所述:

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

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

  • 检查你的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小时)。

  • 服务器丢弃了不正确或太大的数据包。 如果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中)。 因此,您必须在my.cnfmy.ini输入任何更改/调整,然后将它们放置在mysql/data目录或任何其他路径中,在适当的选项组下,例如[client][myslqd] ...例如:
    [mysqld]
    wait_timeout = 600
    max_allowed_packet = 64M
    然后重新启动服务器。 要获取它们的值,请输入控制台:
    select @@wait_timeout;
    select @@max_allowed_packet;


    对我来说,这个解决方案并没有解决,所以我执行了

    SET GLOBAL max_allowed_packet=1073741824;
    

    在我的SQL客户端。

    如果无法在运行MYSQL服务的情况下进行更改,则应停止服务并更改“my.ini”文件中的变量。

    例如:

    max_allowed_packet=20M
    

    如果你使用默认值运行,那么你有很多空间来优化你的mysql配置。

    我建议的第一步是将max_allowed_pa​​cket增加到128M。

    然后下载MySQL Tuning Primer脚本并运行它。 它将为您的配置的几个方面提供建议以获得更好的性能。

    同时考虑在MySQL和PHP中调整超时值。

    您要导入的文件有多大(文件大小),并且您能够使用mysql命令行客户端而不是PHPMyAdmin导入文件?

    链接地址: http://www.djcxy.com/p/30353.html

    上一篇: MySQL Server has gone away when importing large sql file

    下一篇: Import SQL file into mysql