首页 > 解决方案 > MySQL 服务器已消失错误。--max_allowed_pa​​cket=2G 也不起作用

问题描述

尝试导入 MySQL 表时,我不断收到以下错误。

ERROR 2006 (HY000) at line 15692: MySQL server has gone away

插入具有 longblob 字段的表的条目时会发生错误。我已经尝试了互联网上建议的所有内容,例如 using --max_allowed_packet、 export 和 import explicity in utf8、 exporting in --hex-blob、 increasewait_timeoutinteractive_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 身份登录。

标签: mysqlbloblampp

解决方案


好的,我已经解决了这个问题。如下所示,是我的做法。

在 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 |
+--------------------+------------+

推荐阅读