Могу ли я установить max_allowed_packet при использовании rails / activerecord для связи с базой данных MySQL? - PullRequest
1 голос
/ 17 января 2011

MySQL имеет параметр с именем 'max_allowed_packet' , который устанавливается отдельно для клиентов и серверов.На стороне сервера это в файле конфигурации, возможно ли установить это значение не по умолчанию на стороне клиента, когда клиент является rails ActiveRecord?

Ответы [ 2 ]

3 голосов
/ 17 января 2011

Из документа

На стороне клиента для max_allowed_packet по умолчанию установлено значение 1 ГБ.

Итак, вам просто нужно изменить его на стороне сервера. В зависимости от того, какую версию MySQL вы используете, вы можете сделать это на лету в глобальном масштабе, запустив

SET GLOBAL max_allowed_packet=16777216

или

SET max_allowed_packet=16777216

где я принял максимальный размер 16 МБ. Как вы заметили, вы также можете установить глобальную переменную в вашем 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 голос
/ 17 января 2011

Я не знаю, может ли это помочь, но вы можете установить переменную mysql во время выполнения.

ActiveRecord::Base.connection.execute("set global max_allowed_packet=1000000000;")
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...