Ошибка 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. У меня есть подозрение, что побеждает низший...