mysql服务器已经消失了--最大\u允许\u数据包=2g也不起作用

s4chpxco  于 2021-06-25  发布在  Mysql
关注(0)|答案(1)|浏览(548)

我在尝试导入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用户身份登录的。

2hh7jdfx

2hh7jdfx1#

好的,我已经解决了这个问题。下面是我如何做到的。
在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 |
+--------------------+------------+

相关问题