我遇到了MySQL的问题。我收到错误查询期间丢失与MySQL服务器的连接
。关于StackOverflow,他们说MySQL配置中的max_allowed_packet
很可能太低。
我尝试在/etc/mysql/my.cnf
中更改它,但该文件是不可编辑的。不能在PA上使用sudo
。
我正在使用Sqlalchemy处理与MySQL服务器的交互。
我能做什么?
如果您有超级特权,您可以更改全局变量。但是您不能使那些更改持续存在,因此如果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'
)