提问者:小点点

如何增加MySQL的最大允许数据包大小?


我遇到了MySQL的问题。我收到错误查询期间丢失与MySQL服务器的连接。关于StackOverflow,他们说MySQL配置中的max_allowed_packet很可能太低。

我尝试在/etc/mysql/my.cnf中更改它,但该文件是不可编辑的。不能在PA上使用sudo

我正在使用Sqlalchemy处理与MySQL服务器的交互。

我能做什么?


共2个答案

匿名用户

如果您有超级特权,您可以更改全局变量。但是您不能使那些更改持续存在,因此如果MySQL服务器重新启动,更改将恢复到原始值。

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

我对Python并不熟悉,但我想如果您没有编辑配置文件的权限,那么您可能也没有超级特权。

唯一的其他选择是,您将自己限制在符合max_allowed_packet的查询和结果中,该max_allowed_packet是由运行Python Anywhere的人员为您配置的。

如果您需要更多的电源,那么是时候学习运行自己的服务器了。

匿名用户

您可以在客户端和服务器端指定此标志,但服务器端是限制。你可以按照比尔卡温的回答或尝试改变客户端和什么影响。

在客户端上,shell:

mysql --max_allowed_packet=32M mydb -e 'SELECT * FROM table1'

在客户端,PyMySQL示例:

g.db = pymysql.connect(
  host               = 'localhost',
  port               = 3306,
  user               = 'user',
  password           = 'password',
  database           = 'mydb',
  max_allowed_packet = '32M'
)