Rails和max_allowed_pa​​cket

时间:2014-05-05 23:21:19

标签: mysql ruby-on-rails ruby

这是红宝石代码:

  

file = ActiveRecord :: Base.connection.execute("选择LOAD_FILE('#{full_file_path}')")。fetch_row()[0]

该文件为180M,my.cnf中的max_allowed_packet设置为100M,因此我将其更改为500M:

set global max_allowed_packet=524288000;

值已更改:

mysql> show variables like 'max_allowed_packet';
+--------------------+-----------+
| Variable_name      | Value     |
+--------------------+-----------+
| max_allowed_packet | 524288000 |
+--------------------+-----------+
1 row in set (0.00 sec)

但我仍然有错误。

  

来自http://dev.mysql.com/doc/refman/5.5/en/server-system-variables.html#sysvar_max_allowed_packet

     

当您通过更改max_allowed_pa​​cket变量的值来更改消息缓冲区大小时,如果您的客户端程序允许,您还应该更改客户端的缓冲区大小。 默认的max_allowed_pa​​cket内置于客户端库的值为1GB,但单个客户端程序可能会覆盖此值。例如,mysql和mysqldump的默认值分别为16MB和24MB。它们还允许您通过在命令行或选项文件中设置max_allowed_pa​​cket来更改客户端值。

所以也许ruby mysql客户端有一些小值,而在服务器端更改是不够的?

0 个答案:

没有答案