MySQL:错误1153(08S01):得到的数据包大于“ max_allowed_pa​​cket”字节

MySQL:错误1153(08S01):得到的数据包大于“ max_allowed_pa​​cket”字节MySQL:错误1153(08S01):得到的数据包大于“ max_allowed_pa​​cket”字节

大家好,又见面了,我是你们的朋友全栈君。

从转储文件中进行非常大的MySQL导入时,我遇到了此错误。

$ mysql dbname < /tmp/dump.sql
ERROR 1153 (08S01) at line 9424: Got a packet bigger than ‘max_allowed_packet’ bytes
这是我用来解决此问题的步骤。

允许客户端中的大数据
在将mysql命令作为参数运行时,可以更改允许的最大数据包大小。这增加了客户端将发送到服务器的最大数据包数。

$ mysql –max_allowed_packet=100M dbname < /tmp/dump.sql
这是第一部分,它涵盖了您的客户端操作。

允许服务器上的大数据包
现在,服务器还需要接受更大的数据包。通常有两种方法可以做到这一点。

获取当前的max_allowed_pa​​cket大小
通过查询MySQL服务器上的变量,可以看到当前配置的最大数据包大小是多少。为此,请以root特权登录到您的MySQL Shell 。

$ mysql -uroot
mysql> SELECT @@max_allowed_packet;
±———————+
| @@max_allowed_packet |
±———————+
| 16777216 |
±———————+
1 row in set (0.00 sec)
要获得易于阅读的版本(以MB为单位),请尝试以下操作:

mysql> SELECT @@max_allowed_packet / 1024 / 1024;
±———————————–+
| @@max_allowed_packet / 1024 / 1024 |
±———————————–+
| 16.00000000 |
±———————————–+
1 row in set (0.01 sec)
默认值为16MB或16777216字节。

暂时增加封包大小
您可以为正在运行的MySQL实例临时更改此maxallowed数据包参数。为此,请以root用户身份登录MySQL服务并运行以下命令:

$ mysql -uroot
mysql> SET GLOBAL net_buffer_length=1000000;
mysql> SET GLOBAL max_allowed_packet=1000000000;
这将允许的最大数据包设置为1000000000或100MB。

如果您随时重新启动MySQL服务,则设置将恢复为默认设置或您的中配置的任何设置my.cnf。

永久增加my.cnf中的数据包大小
要在MySQL服务器重新启动时设置所需的值,您需要更新my.cnf配置文件。

编辑文件/etc/mysql/my.cnf(或无论您身在何处my.cnf)并查找该[mysqld]部分。

[mysqld]

There might be other config parameters in here

max_allowed_packet = 100M
更改配置后,请重新启动MySQL服务器以应用这些设置。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/105796.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号