Ошибка передачи данных с кодом выхода 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

Операция не выполнена с кодом выхода 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. Существует ли верхний предел длины фрагмента?

2 ответа

Решение

Я не дошел до основной причины этого, но я нашел источник проблемы. У меня была одна очень большая таблица вложений, написанная с помощью INSERT VALUES. Я удалил эту таблицу, а затем попытался просто запустить сценарий SQL. Но я получил новую ошибку (которая ускользает от меня прямо сейчас.) Поиск новой ошибки подсказал мне, что сценарий слишком длинный для выполнения без увеличения переменной max_allowed_packet. Превращение этого значения в действительно большое число позволило запустить скрипт.

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

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