SET GLOBAL max_allowed_packet не работает - PullRequest
25 голосов
/ 29 марта 2012

Я узнал, как изменить значение по умолчанию max_allowed_packet в MySQL, используя SET GLOBAL. Однако каждый раз, когда я использовал эту команду, значение по умолчанию оставалось нетронутым! Я использовал эти команды:

mysql --user=root --password=mypass
mysql> SET GLOBAL max_allowed_packet=32*1024*1024;
Query OK, 0 rows affected (0.00 secs)
mysql> SHOW VARIABLES max_allowed_packet;

И тогда результат max_allowed_packet = 1048576. Чего мне не хватает?

Ответы [ 4 ]

39 голосов
/ 29 марта 2012

Хммммм .. Вы нажали НЕ-БАГ , кажется. :)

Если вы измените глобальную системную переменную, значение запоминается и используется для нового соединения, пока сервер не перезагрузится. (Чтобы сделать настройку глобальной системной переменной постоянный, вы должны установить его в файле опций.) Изменения видны любому клиенту, который обращается к этой глобальной переменной. Тем не менее, изменение влияет на соответствующий сеанс переменная только для клиентов, которые подключаются после изменения. Изменение глобальной переменной делает не влияет на переменную сеанса для любого клиента, который в данный момент подключен (даже клиента, который выдает инструкцию SET GLOBAL).

См. это тоже. Прочитайте объяснение Шейна Бестера.

Вы должны перейти из файла my.ini / my.cnf и перезапустить сервер, чтобы настройки max_allowed_packet вступили в силу.

5 голосов
/ 01 февраля 2017

После запуска

set global max_allowed_packet=1000000000;

необходимо перезапустить mysql до того, как

SHOW VARIABLES LIKE 'max_allowed_packet'

покажет новое значение.

У меня есть эта проблема при перезапуске mysql черезСистемные настройки MAC OSX и значение не изменились.Поэтому, войдя в mysql через консоль

mysql -u root -p

, изменив его, а затем перезапустив mySql, похоже, сработало.Возможно, это была причуда OS X.

1 голос
/ 19 августа 2014

Просто быстрый способ увидеть переменную для всех, кто сталкивался с этим. Чтобы вернуть значение, вам нужно запустить

SHOW VARIABLES LIKE 'max_allowed_packet'
0 голосов
/ 28 марта 2019

Для тех, кто имеет конфигурацию MariaDb, проблема может заключаться в том, что переменная max_allowed_packet перезаписывается файлом конфигурации, который называется позже.

В моем случае я пытался импортировать базу данных и серверответил мне: ОШИБКА 2006 (HY000) в строке 736: сервер MySQL пропал

Я обнаружил, что файл:

/etc/mysql/mariadb.conf.d/50-server.cnf

вызывается позже

/etc/mysql/conf.d/mysql.cnf

Я пытался непрерывно изменять файл «mysql.cnf», но значение было перезаписано в «50-server.cnf».

Поэтому решение состоит в том, чтобы ввести файл

/etc/mysql/mariadb.conf.d/50-server.cnf

и вместо "max_allowed_packet = 16M" укажите желаемое значение в качестве примера "max_allowed_packet = 64M"

...