Я міг би легко запропонувати змінити параметри InnoDB, які можуть бути важкою рукою просто для того, щоб змусити mysqldump працювати. Можливо, вам не сподобається те, що я пропоную, але я вважаю, що це найкращий (єдиний) варіант. Ось це іде:
ПРИКЛАД №1: Вимкнути розширені вставки
Налаштування mysqldump за замовчуванням буде включати в себе об'єднання сотень чи тисяч рядків в одну ВСТУП. Це відоме як розширена INSERT. Це викликає деякий перевищення за межі просто max_allowed_packet .
Я відповів на публікацію назад Sep 01, 2011
( MySQL-сервер пішов, перешкоджаючи імпорту великих відвалів ), де я обговорював те, що роблю те саме, що імпортувати великий mysqldump. Я вважаю, що відключення розширеного INSERT також допоможе створити клопіткий mysqldump.
mysqldump -u root --skip-extended-insert -p maia > maia.sql
Погані новини: Що це робить для створення команди INSERT для кожного рядка. Це, безумовно, збільшить час, необхідний для виконання mysqldump. Отже, це також збільшиться з часом, необхідним для перезавантаження (можливо, в 10-100 разів).
Я обговорював skip-extended-insert
раніше
ПРЕДЛОЖЕННЯ №2: скидання двійкових даних у вигляді шістнадцяткових (ОПЦІЙНО)
Щоб зробити бінарні дані mysqldump більш байтними, переносьте такі дані в шістнадцятковий
mysqldump -u root --skip-extended-insert --hex-blob -p maia > maia.sql
Погані новини: Це пошкодить mysqldump трохи більше
СПРОБУВАТИ !!!
Бічна примітка: Максимальний розмір max_allowed_packet - 1G