尝试导入MySQL表时,我经常遇到以下错误。
ERROR 2006 (HY000) at line 15692: MySQL server has gone away
插入带有longblob字段的表的条目时发生错误。我已尝试在互联网上建议的所有内容,例如使用--max_allowed_packet
,导出和导入utf8
中的明确,导出--hex-blob
,增加wait_timeout
和interactive_timeout
等,但没有任何作用!
我挖得更深一点,注意到--max_allowed_packet
的值没有正确设置。我正在使用LAMPP,在文件/opt/lampp/etc/my.cnf
中,我在[mysqld]部分下面有以下内容。
max_allowed_packet = 2G
但是,MariaDB仍然显示其值设置为仅1 MB。为什么会那样?我停下来重新启动了LAMPP服务器,但仍无济于事。即使从命令行设置此参数,如下所示,也不起作用!
/opt/lampp/bin/mysql -h localhost --max_allowed_packet=2G -u root -p
在这两种情况下,当我查询其值时,我得到以下内容。
MariaDB [(none)]> SHOW VARIABLES LIKE 'max_allowed_packet';
--------------
SHOW VARIABLES LIKE 'max_allowed_packet'
--------------
+--------------------+---------+
| Variable_name | Value |
+--------------------+---------+
| max_allowed_packet | 1048576 |
+--------------------+---------+
我该如何解决这个问题?请注意,我以root用户身份登录。
答案 0 :(得分:0)
在MySQL shell中(通过键入/opt/lampp/bin/mysql -h localhost -u root -p
打开一个),设置max_allowed_packet
的值,就像这样。
SET GLOBAL max_allowed_packet=1073741824;
退出MySQL shell后,应该设置此值。如果您现在返回到新的MySQL shell,并键入以下内容,
SHOW VARIABLES LIKE 'max_allowed_packet';
显示正确的值,如下所示。
+--------------------+------------+
| Variable_name | Value |
+--------------------+------------+
| max_allowed_packet | 1073741824 |
+--------------------+------------+