MySQL错误1153

久未见 提交于 2020-02-25 20:40:15

我正在导入MySQL转储并收到以下错误。

$ mysql foo < foo.sql 
ERROR 1153 (08S01) at line 96: Got a packet bigger than 'max_allowed_packet' bytes

显然,数据库中有附件,这使得插入非常大。


这是在我的本地机器上,从MySQL软件包安装MySQL 5的Mac。

我在哪里更改max_allowed_packet以便能够导入转储?

还有什么我应该设置的吗?

刚刚运行mysql --max_allowed_packet=32M …导致了同样的错误。


#1楼

您可能必须为客户端(您正在运行以执行导入)和正在运行并接受导入的守护程序mysqld更改它。

对于客户端,您可以在命令行上指定它:

mysql --max_allowed_packet=100M -u root -p database < dump.sql

另外, 更改 mysqld部分下的my.cnf或my.ini文件并设置:

max_allowed_packet=100M

或者您可以在连接到同一服务器的MySQL控制台中运行这些命令

set global net_buffer_length=1000000; 
set global max_allowed_packet=1000000000;

(对数据包大小使用非常大的值。)


#2楼

从mysql.com dmg软件包发行版使用MySQL时,在Mac OS X上重新启动my.cnf

默认情况下,my.cnf无处可寻。

您需要将/usr/local/mysql/support-files/my*.cnf一个复制到/etc/my.cnf并重新启动mysqld 。 (如果安装了它,可以在MySQL偏好设置面板中执行此操作。)


#3楼

在CENTOS 6 /etc/my.cnf上,在[mysqld]部分下正确的语法是:

[mysqld]
# added to avoid err "Got a packet bigger than 'max_allowed_packet' bytes"
#
net_buffer_length=1000000 
max_allowed_packet=1000000000
#

#4楼

修复是增加MySQL守护进程的max_allowed_pa​​cket。 您可以通过以Super身份登录并运行以下命令来对正在运行的守护程序执行此操作。

# mysql -u admin -p

mysql> set global net_buffer_length=1000000;
Query OK, 0 rows affected (0.00 sec)

mysql> set global max_allowed_packet=1000000000;
Query OK, 0 rows affected (0.00 sec)

然后导入转储:

gunzip < dump.sql.gz | mysql -u admin -p database

#5楼

在etc / my.cnf中尝试将max_allowed _packet和net_buffer_length更改为

max_allowed_packet=100000000
net_buffer_length=1000000 

如果这不起作用,那么尝试改为

max_allowed_packet=100M
net_buffer_length=100K 
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!