MySQL 服务器已消失错误。 --max_allowed_packet=2G也不行

MySQL server has gone away error. --max_allowed_packet=2G doesn't work either

我在尝试导入 MySQL table.

时不断收到以下错误
ERROR 2006 (HY000) at line 15692: MySQL server has gone away

插入带有 longblob 字段的 table 条目时发生错误。我已经尝试了互联网上建议的所有方法,例如使用 --max_allowed_packet、在 [=17= 中明确导出和导入、在 [=18= 中导出]、增加 wait_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 |
+--------------------+---------+

我该如何解决这个问题?请注意,我是以根用户身份登录的。

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

在一个MySQLshell中(输入/opt/lampp/bin/mysql -h localhost -u root -p打开一个),设置max_allowed_packet的值,像这样。

SET GLOBAL max_allowed_packet=1073741824;

退出那个MySQLshell后,这个值应该已经设置好了。如果您现在返回到新的 MySQL shell,然后键入以下内容,

SHOW VARIABLES LIKE 'max_allowed_packet';

它显示正确的值,如下所示。

+--------------------+------------+
| Variable_name      | Value      |
+--------------------+------------+
| max_allowed_packet | 1073741824 |
+--------------------+------------+