ERROR 2006 (HY000): MySQL 服务器已经消失

2021-11-20 00:00:00 mysql

当我尝试获取大型 SQL 文件(大型 INSERT 查询)时出现此错误.

I get this error when I try to source a large SQL file (a big INSERT query).

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.这些都不能解决问题.

Nothing in the table is updated. I've tried deleting and undeleting the table/database, as well as restarting MySQL. None of these things resolve the problem.

这是我的最大数据包大小:

Here is my max-packet size:

+--------------------+---------+
| Variable_name      | Value   |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+

这里是文件大小:

$ ls -s file.sql 
79512 file.sql

当我尝试另一种方法时...

When I try the other method...

$ ./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 文件中解决了我的问题.

Adding this line into my.cnf file solves my problem.

当列有很大的值时这很有用,这会导致问题,你可以找到解释 此处.

This is useful when the columns have large values, which cause the issues, you can find the explanation here.

在 Windows 上,此文件位于:C:\ProgramData\MySQL\MySQL Server5.6"

On Windows this file is located at: "C:\ProgramData\MySQL\MySQL Server 5.6"

在 Linux (Ubuntu) 上:/etc/mysql

On Linux (Ubuntu): /etc/mysql

相关文章