我发现如何使用max_allowed_packet
更改MySQL中SET GLOBAL
的默认值。但是,每次使用此命令时,默认值都保持不变!我使用了这些命令:
mysql --user=root --password=mypass
mysql> SET GLOBAL max_allowed_packet=32*1024*1024;
Query OK, 0 rows affected (0.00 secs)
mysql> SHOW VARIABLES max_allowed_packet;
然后结果是max_allowed_packet = 1048576.我错过了什么?
跑完之后
set global max_allowed_packet=1000000000;
你必须重新启动mysql
SHOW VARIABLES LIKE 'max_allowed_packet'
将显示新的价值。
我通过MAC OSX系统首选项重新启动mysql时出现此问题,并且值未更改。所以通过控制台登录mysql
mysql -u root -p
更改它,然后重新启动mySql似乎工作。可能是OS X的怪癖。
只是快速查看遇到此问题的人的变量。要获得价值,您需要运行
SHOW VARIABLES LIKE 'max_allowed_packet'
对于那些使用MariaDb配置的人来说,问题可能是max_allowed_packet变量被稍后调用的配置文件覆盖。
在我的情况下,我试图导入一个数据库,服务器回答我:ERROR 2006(HY000)在736行:MySQL服务器已经消失
我发现了这个文件:
/etc/mysql/mariadb.conf.d/50-server.cnf
以后叫
/etc/mysql/conf.d/mysql.cnf
我试着不断更改“mysql.cnf”文件,但是值被“50-server.cnf”覆盖了。
所以解决方案是输入文件
/etc/mysql/mariadb.conf.d/50-server.cnf
而不是“max_allowed_packet = 16M”将所需的值作为示例“max_allowed_packet = 64M”