2012-06-29 2 views
3

Я пытаюсь импортировать заархивированные файлы базы данных в Mysql с помощью командной строки с помощью следующей командыИмпорт сжатых файлов в Mysql с помощью CMD

7z < backup.sql.7z | mysql -u root test 

корня пользователя не имеют никаких пароля связанных с этим.
test является моей целевой пустой базой данных. Я использую 7zip для распаковки цель. Почтовая база данных, то есть backup.sql.7z, находится в диске D.

Но это дает следующее сообщение об ошибке enter image description here

Таким образом, вместо этого я использовал следующую команду

7z < backup.7z | mysql -u root test 

Примечание: На этот раз я использую backup.7z вместо backup.sql.7z

Но я получаю следующую ошибку enter image description here

Очевидно, что что-то не так с моим синтаксисом SQL.

Каков будет правильный синтаксис?

ответ

5

Мне также нужно было импортировать из сжатого файла и наткнулся на ваш вопрос. После немного Мессинг вокруг, я обнаружил, что это работает для меня:

7z x -so backup.7z | mysql -u root test 

х является команда извлечения
-так делает 7-Zip записи на стандартный вывод

+0

Да, этот действительно работает .. СПАСИБО ВАМ @Wang. У вас есть другой исполняемый скрипт, который будет выполнять точную работу для других типов почтовых приложений, таких как winzip, gz и т. Д.? СПАСИБО ВАС. – Subrata

+2

Просто записка о проблеме, с которой я боролся - если вам нужно предоставить mysql пароль, использование '-p password' не будет работать, вы должны ввести его без пробела:' -ppassword'. Может быть, это может помочь кому-то. – Czechnology

0

Ничего плохого в вашем синтаксисе, это просто ограничение с 7zip. Лучше использовать xz в этом случае, который не ставит посторонний мусор в stdout или напрямую вызывает 7z.dll с вашим любимым языком программирования. 7z.exe действительно предназначен для управления архивами, а не для unix-стиля, и Игорь очень неохотно меняет это.

Если вы попробуете простой 7z < somefile.7z, вы сразу же увидите, что все, что вы получили, это список использования.

+0

Я XZ и winrar, но получил ту же ошибку. – Subrata

+0

Я также сделал ** xz --decompress --stdout backup.sql.gz | mysql -u root test **, но получил ошибку ** xz: backup.sql.zip: Формат файла не распознан ** – Subrata

+0

xz понимает .xz. gzip понимает .gz. Если вы пытаетесь создать скрипт для импорта большого количества разных типов резервных копий, вам необходимо проанализировать расширение; если вы делаете это вручную, вам просто нужно использовать правильный инструмент для работы. – SilverbackNet