我正在导入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_packet。 您可以通过以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
来源:oschina
链接:https://my.oschina.net/stackoom/blog/3162985