mysql - MySQL 服务器已消失错误。--max_allowed_packet=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_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 身份登录。
解决方案
好的,我已经解决了这个问题。如下所示,是我的做法。
在 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 |
+--------------------+------------+
推荐阅读
- php - PHP OOP 概念 - 错误:未定义的方法调用
- html - 编辑文本位置,尽管文本长度
- python - 不使用多个标签的时间序列预测
- javascript - 如何在不覆盖nodejs中现有数据的情况下将数据写入excel?
- python - Pandas Groupby 并在多列中查找重复项
- python - 跳过行后列索引不起作用
- python-3.x - Python Selenium WebDriver问题解析tradingview.com
- php - 没有 foreach 显示
- python - 我可以使用哪些工具在 openstack 中使用 python 脚本启动实例
- nlp - 我正在寻找带有某些标记的预训练语言模型