Ошибка 2020: пакет получен больше, чем байты 'max_allowed_packet' при выводе таблицы

Я получаю вышеупомянутую ошибку при резервном копировании с ZRM, который использует mysqldump для резервного копирования.

mysqldump --opt --extended-insert --single -action --create-options --default-character-set=utf8 --user=" " -p --all-database> "/ nfs / backup / mysql01 / dailyrun / 20091216043001 / backup.sql"

mysqldump: ошибка 2020: при получении дампа таблицы пакет получился больше, чем байты max_allowed_packet TICKET_ATTACHMENT в строке: 2286

Я увеличил размер для max_allowed_packet до 1G в /etc/my.cnf, который является настройкой сервера, и для настройки на стороне клиента, которую я установил, выполнив эту команду:

mysql -u -p --max_allowed_packet = 1G

И я убедился, что на стороне клиента и сервера они имеют одинаковое значение.

Это необходимо для проверки значения на стороне клиента в соответствии с этим сообщением на форуме http://forums.mysql.com/read.php?35,75794,261640

mysql> SELECT @@ MAX_ALLOWED_PACKET ->; + ---------------------- + | @@ MAX_ALLOWED_PACKET | + ---------------------- + | 1073741824 | + ---------------------- + 1 строка в наборе (0,00 сек)

И это проверка установки значения сервера.

mysql> ПОКАЗАТЬ ПЕРЕМЕННЫЕ

| max_allowed_packet | >

1073741824 |

У меня закончились идеи, и я пытался искать в экспертном обмене и искать решения, но пока ни одна из них не сработала.

Ссылка http://dev.mysql.com/doc/refman/5.1/en/packet-too-large.html

Кто-нибудь, пожалуйста, сообщите, спасибо.

3 ответа

Решение

Это не "альтернативно". mysqldump печально известен тем, что игнорирует это значение в my.cnf, но установка его в качестве параметра командной строки всегда работает.

Это ответ от экспертного обмена:

Вам придется увеличить max_allowed_packet в разделе mysqldump в my.cnf, по умолчанию 25M

[mysqldump] max_allowed_packet = 1G

Кроме того, вы можете вызвать mysqldump с желаемым значением max_allowed_packet.

mysqldump --max_allowed_packet = 1G

Используйте команду ниже, чтобы исправить вашу проблему.

# mysqldump --max_allowed_packet=1024M -u root -p database > dumpfile.sql

Это решит вашу проблему

Примечание. Вы можете установить максимальное значение по своему усмотрению. Здесь мы использовали 1024M в качестве примера.

Есть несколько мест, где вам может понадобиться решить эту проблему: в командной строке, в разделе [mysqld] my.cnf и в разделе [mysqldump] my.cnf. Я просто боролся с этим и, наконец, заработал, установив все это на 2G. У меня есть подозрение, что побеждает низший...

Другие вопросы по тегам