Ответ 1
Разархивируйте файл, а затем снова импортируйте.
Я чрезвычайно новичок в MySQL и запускаю его в Windows. Я пытаюсь восстановить базу данных из dumpfile в MySQL, но я получаю следующую ошибку:
$ >mysql -u root -p -h localhost -D database -o < dump.sql
ERROR: ASCII '\0' appeared in the statement, but this is not allowed unless option --binary-mode is enabled and mysql is run in non-interactive mode. Set --binary-mode to 1 if ASCII '\0' is expected. Query: 'SQLite format 3'.
Я попытался помещать --binary-mode
в ini файл, но он все равно дает ту же ошибку. Что мне делать? Пожалуйста помоги.
UPDATE
Как предложил Ник в своем комментарии, я пробовал $ > mysql -u root -p -h localhost -D database --binary-mode -o < dump.sql
, но он дал мне следующий ERROR at line 1: Unknown command '\☻'.
Это файл дампа 500 Мбайт, и когда я просматриваю его содержимое с помощью gVIM, все, что я вижу, это выражения и данные, которые не понятны.
Разархивируйте файл, а затем снова импортируйте.
Я сталкиваюсь с той же проблемой в Windows, восстанавливающей файл дампа. Мой файл дампа был создан с помощью windows powershell и mysqldump вроде:
mysqldump db > dump.sql
Проблема возникает из-за кодировки по умолчанию powershell - UTF16. Чтобы глубже вникать в это, мы можем использовать "файловую" утилиту GNU, и здесь существует версия Windows здесь.
Выход моего файла дампа:
Юникод-код Юникода Юникода с очень длинными строками с терминаторами линии CRLF.
Затем требуется преобразование системы кодирования, и это может сделать различное программное обеспечение. Например, в emacs,
M-x set-buffer-file-coding-system
затем введите требуемую систему кодирования, такую как utf-8.
И в будущем для лучшего результата mysqldump используйте:
mysqldump <dbname> -r <filename>
а затем вывод обрабатывается самим mysqldump
, но не перенаправлением powershell.
ссылка: https://dba.stackexchange.com/questions/44721/error-while-restoring-a-database-from-an-sql-dump
В Windows-машине выполните следующие шаги.
Теперь отправьте свой db.
Вы пытались открыть в блокноте ++ (или другом редакторе) и преобразовать/сохранить нас в UTF-8?
Смотрите: notepad ++ конвертирует ansi-кодированный файл в utf-8
Другим вариантом может быть использование textwrangle для открытия и сохранения файла в виде UTF-8: http://www.barebones.com/products/textwrangler/
Извлеките файл с помощью инструмента архивации Tar. вы можете использовать его следующим образом:
tar xf example.sql.gz
Может быть, ваш dump.sql имеет мусорный характер в начале вашего файла или в начале начинается пустая строка.
У меня была эта ошибка один раз, после запуска mysqldump
в Windows PowerShell, например:
mysqldump -u root p my_db --no-data --no-create-db --no-create-info --routines --triggers --skip-opt --set-gtid-purged=OFF > db_objects.sql
То, что я сделал, это изменить его на это (pipe вместо Set-Content):
mysqldump -u root p my_db --no-data --no-create-db --no-create-info --routines --triggers --skip-opt --set-gtid-purged=OFF | Set-Content db_objects.sql
И проблема исчезла!
Должен ли он файл dump.sql problem.Use Sequel Pro проверить ваш файл ecoding.It должны быть мусорные символы в вашем dump.sql.
У меня была та же проблема, но выяснилось, что файл дампа был фактически резервной копией MSSQL Server, а не MySQL.
Иногда старые файлы резервных копий выполняют трюки. Проверьте файл дампа.
В окне терминала:
~$ cat mybackup.dmp
В результате получилось:
TAPE??G?"5,^}???Microsoft SQL ServerSPAD^LSFMB8..... etc...
Чтобы остановить обработку команды cat:
CTRL + C
Если вам не хватает места или вы не хотите тратить время на его распаковку, попробуйте эту команду.
gunzip < compressed-sqlfile.gz | mysql -u root -p
Не забудьте заменить сжатый-sqlfile.gz именем сжатого файла.
Восстановление .gz не будет работать без команды, указанной выше.
Файл, который вы пытаетесь импортировать, является файлом zip. Разархивируйте файл и повторите попытку импорта.
Ваш файл должен быть только .sql extension, (.zip,.gz.rar) и т.д. не поддерживается. Пример: dump.sql
Вы можете использовать это, чтобы исправить ошибку:
zcat {address_sql_database(.tar.gz)} | mysql -u root -p {database_name} --binary-mode