MySQL有一个setting called 'max_allowed_packet',它是为客户端和服务器单独设置的。在服务器端它位于配置文件中,当客户端是rails ActiveRecord时,是否可以在客户端将其设置为非默认值?
答案 0 :(得分:3)
在客户端,max_allowed_packet的默认值为1GB。
所以,你只需要在服务器端更改它。根据您使用的MySQL版本,您可以通过运行
在全球范围内执行动态SET GLOBAL max_allowed_packet=16777216
或
SET max_allowed_packet=16777216
我假设最大尺寸为16MB。如您所述,您还可以在my.cnf
中设置全局变量。
目前,您无法在每个会话的基础上更改此内容。
mysql> SET SESSION max_allowed_packet=102400000;
ERROR 1621 (HY000): SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value
答案 1 :(得分:1)
我不知道是否可以提供帮助,但您可以在运行时设置mysql变量。
ActiveRecord::Base.connection.execute("set global max_allowed_packet=1000000000;")