Как увеличить mysql max_allowed_packet для клиента?

28006
reederz

Я хочу увеличить размер переменной max_allowed_packet для клиента MySQL, который использует удаленный сервер. Я гуглил это, и ответы, которые я мог найти, только обсуждали изменение переменной для сервера.

Моя клиентская программа - MySql Workbench для Windows 7.

3

1 ответ на вопрос

2
RolandoMySQLDBA

Согласно документации MySQL на max_allowed_packet

Некоторые программы, такие как mysql и mysqldump, позволяют вам изменять значение на стороне клиента, устанавливая max_allowed_packet в командной строке или в файле опций.

В командной строке, чтобы установить его на 512M, просто запустите клиент mysql с этим:

C:\>mysql -u... -p...  Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 31 Server version: 5.5.12-log MySQL Community Server (GPL)  Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.  Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.  Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.  mysql> show variables like 'max_allowed_packet'; +--------------------+----------+ | Variable_name | Value | +--------------------+----------+ | max_allowed_packet | 16777216 | +--------------------+----------+ 1 row in set (0.00 sec)  mysql> set max_allowed_packet=1024 * 1024 * 512; ERROR 1621 (HY000): SESSION variable 'max_allowed_packet' is read-only. Use SET GLOBAL to assign the value mysql> set global max_allowed_packet=1024 * 1024 * 512; Query OK, 0 rows affected (0.00 sec)  mysql> show variables like 'max_allowed_packet'; +--------------------+----------+ | Variable_name | Value | +--------------------+----------+ | max_allowed_packet | 16777216 | +--------------------+----------+ 1 row in set (0.00 sec)  mysql> exit Bye  C:\>mysql -u... -p... Welcome to the MySQL monitor. Commands end with ; or \g. Your MySQL connection id is 32 Server version: 5.5.12-log MySQL Community Server (GPL)  Copyright (c) 2000, 2010, Oracle and/or its affiliates. All rights reserved.  Oracle is a registered trademark of Oracle Corporation and/or its affiliates. Other names may be trademarks of their respective owners.  Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.  mysql> show variables like 'max_allowed_packet'; +--------------------+-----------+ | Variable_name | Value | +--------------------+-----------+ | max_allowed_packet | 536870912 | +--------------------+-----------+ 1 row in set (0.00 sec) 

Вы должны установить это глобально. Вы не можете установить его локально.

Вам нужна привилегия SUPER для установки любой глобальной переменной.

Когда я пытаюсь выполнить эту команду, я получаю сообщение об ошибке, подобное ОШИБКЕ 1621 (HY000): переменная SESSION 'max_allowed_packet' доступна только для чтения. Используйте SET GLOBAL, чтобы назначить значение MONTYHS 10 лет назад 0
@ MONTYHS Пожалуйста, внимательно прочитайте мой ответ. Я уже запустил `set max_allowed_packet = 1024 * 1024 * 512;`, показал сообщение об ошибке, успешно выполнил `set global max_allowed_packet = 1024 * 1024 * 512;`, а затем сказал `Вы должны установить его глобально. Вы не можете установить его локально. Поэтому мой ответ является исчерпывающим и полным с 3 мая 2012 года. RolandoMySQLDBA 10 лет назад 0