Назад | Перейти на главную страницу

Datadump не работает с кодом выхода 1

Я в mySQL Workbench пытаюсь импортировать дамп данных в файле .sql (сгенерированный phpMyAdmin) в mySQL (администрирование сервера> дамп данных> импорт с диска), и он продолжает терпеть неудачу со следующим выводом:

10:47:14 Восстановление C: \ myfolder \ localhost.sql ()

Запуск: mysql.exe --host = 127.0.0.1 --user = root --password = xxxxxxx --port = 3306 --comments <C: \ myfolder \ localhost.sql

Ошибка операции с кодом выхода 1

10:47:15 Импорт C: \ myfolder \ localhost.sql завершен

Когда я просматриваю схему, кажется, что она импортировала 6 таблиц (по 50 штук) и почти не содержит данных.

Опечатки:

  1. Кажется, что никаких ограничений или кораблей отношений нет. Все данные добавляются через несколько DROP TABLE IF EXISTS; СОЗДАТЬ ТАБЛИЦУ; INSERT INTO с жестко заданными значениями.
  2. В файле много больших фрагментов. А сам файл больше 400 МБ.
  3. Когда я вручную проверил, работает ли эффект какого-либо пункта файла, я обнаружил, что он зависает на INSERT INTO sql с ОЧЕНЬ большими жестко запрограммированными фрагментами. Не уверены, важно это или нет?
  4. Я также заметил, что некоторые фрагменты имеют длину больше 32768. Есть ли верхняя граница длины фрагмента?

Я не дошел до основной причины этого, но я нашел источник проблемы. У меня была одна очень большая таблица вложений, написанная с ВСТАВИТЬ ЗНАЧЕНИЯ. Я удалил эту таблицу, а затем попытался запустить ее как сценарий SQL. Но я получил новую ошибку (которая ускользает от меня прямо сейчас). Погуглил, что новая ошибка показала мне, что сценарий слишком длинный для запуска без увеличения переменной max_allowed_packet. Увеличение этого числа до действительно большого числа позволило скрипту запуститься.

Есть ли в вашей базе данных какие-либо ограничения внешнего ключа? Если это так, вы должны убедиться, что вы импортируете таблицы в порядке, позволяющем принудительно применять внешние ключи. Если вы попытаетесь создать таблицу с внешним ключом, который ссылается на таблицу, которая еще не была создана, вы получите такую ​​ошибку. Если это проблема, вам придется либо манипулировать файлом дампа, чтобы получить его в «правильном» порядке, либо вам придется переделывать дамп, по одной таблице за раз в приемлемом порядке. У меня есть сценарий, который делает это для моей БД, но я никогда не пробовал делать это через phpMyAdmin.