当我尝试获取大型 SQL 文件(大型INSERT查询)时出现此错误。
INSERT
mysql> source file.sql ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 2 Current database: *** NONE *** ERROR 2006 (HY000): MySQL server has gone away No connection. Trying to reconnect... Connection id: 3 Current database: *** NONE ***
表中的任何内容都没有更新。我试过删除和取消删除表/数据库,以及重新启动 MySQL。这些都不能解决问题。
这是我的最大数据包大小:
+--------------------+---------+ | Variable_name | Value | +--------------------+---------+ | max_allowed_packet | 1048576 | +--------------------+---------+
这是文件大小:
$ ls -s file.sql 79512 file.sql
当我尝试其他方法时…
$ ./mysql -u root -p my_db < file.sql Enter password: ERROR 2006 (HY000) at line 1: MySQL server has gone away
max_allowed_packet=64M
将此行添加到my.cnf文件中解决了我的问题。
my.cnf
当列的值很大时,这很有用,这会导致问题,您可以在此处找到解释。
在 Windows 上,此文件位于:“C:\ProgramData\MySQL\MySQL Server 5.6” 在 Linux (Ubuntu) 上:/etc/mysql
在 Windows 上,此文件位于:“C:\ProgramData\MySQL\MySQL Server 5.6”
在 Linux (Ubuntu) 上:/etc/mysql