Я создал и сжал (с помощью bzip2) дамп SQL с производственного сервера в Linux.
Я хочу создать сценарий оболочки для автоматического импорта его в базу данных моей среды разработки (в Mac OS).
Файл dump.sql.bz2 хорошо распаковывается вручную с помощью утилиты Mac OS Archive.
Но когда я использую командную строку, например bzip2 -dck dump.sql.bz2
или bunzip2 -k dump.sql.bz2
, файл sql преобразуется в двоичный и не может быть эксплуатируемым mysql ( ОШИБКА в строке 1: Неизвестная команда '\%'
), как вы можете видеть на этом снимке экрана:
Сравнение между извлечением bzip2 GUI и CLI
Что такое эквивалентная командная строка утилиты архивирования для извлечения файла sql bz2 на Mac без его повреждения? Может быть, это не лучший способ делать то, что я хочу?
Ну, я нашел почему. Мой дамп SQL был сжат дважды, но имя не было dump.sql.bz2.bz2, а просто dump.sql.bz2. Двоичный файл был результатом распаковки только первого слоя. Утилита Mac OS Archive Utility более интеллектуальна, так как распознала эту двойную компрессию и восстановила исходный файл дампа SQL.
.Это исправит вашу проблему
bunzip2 -dk dump.sql.bz2
# or
bunzip2 -ck dump.sql.bz2 > myfile.sql
-c
переключатель должен выводить в stdout, вы должны направить результат stdout куда-нибудь, когда вы используете -c