我在尝试导入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用户身份登录的。
1条答案
按热度按时间2hh7jdfx1#
好的,我已经解决了这个问题。下面是我如何做到的。
在mysql shell中(通过键入
/opt/lampp/bin/mysql -h localhost -u root -p
),设置max_allowed_packet
,像这样。在退出mysql shell之后,应该设置这个值。如果您现在返回到一个新的mysql shell,并键入以下内容,
它显示正确的值,如下所示。