Как восстановить файл дампа из mysqldump?

Мне дали файл базы данных MySQL, который мне нужно восстановить в качестве базы данных на моей машине Windows Server 2008.

Я попытался использовать MySQL Administrator, но получил следующую ошибку:

выбранный файл был создан mysqldump и не может быть восстановлен это приложение.

Как мне заставить это работать?

15 ответов


это должно быть так же просто, как запустить это:

mysql -u <user> -p < db_backup.dump

если дамп состоит из одной базы данных, вам может потребоваться добавить строку в верхней части файла:

USE <database-name-here>;

если это был дамп многих баз данных, операторы use уже там.

чтобы запустить эти команды, откройте командную строку (в Windows) и cd в каталог, где mysql.exe исполняемый файл (возможно, вам придется немного поискать его, это будет зависеть от того, как вы установили mysql, т. е. автономный или как часть пакета, такого как WAMP). Как только вы окажетесь в этом каталоге, вы сможете просто ввести команду, как у меня есть выше.


если база данных, которую вы хотите восстановить, еще не существует, сначала ее необходимо создать.

в командной строке, если вы находитесь в том же каталоге, который содержит сброшенный файл, используйте следующие команды (с соответствующими подстановками):

C:\> mysql -u root -p

mysql> create database mydb;
mysql> use mydb;
mysql> source db_backup.dump;

вам просто нужно выполнить это:

mysql -p -u[user] [database] < db_backup.dump

если дамп содержит несколько баз данных, вы должны опустить имя базы данных:

mysql -p -u[user] < db_backup.dump

чтобы запустить эти команды, откройте командную строку (в Windows) и cd в каталог, где mysql.exe исполняемый файл (возможно, вам придется немного поискать его, это будет зависеть от того, как вы установили mysql, т. е. автономный или как часть пакета, например WAMP). Как только вы окажетесь в этом каталоге, вы сможете просто ввести команду.


mysql -u username -p -h localhost DATA-BASE-NAME < data.sql

посмотреть здесь - Шаг 3: таким образом, вам не нужен оператор USE


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

mysql -uroot -p 

(где root - это имя пользователя нашего администратора для MySQL), и после подключения к базе данных нам нужны команды для создания базы данных и чтения файла в ней:

create database new_db;
use new_db;
\. dumpfile.sql

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


Я заставил его работать, следуя этим шагам...

  1. откройте MySQL Administrator и подключитесь к серверу

  2. выберите "каталоги" слева

  3. щелкните правой кнопкой мыши в левом нижнем поле и выберите "Создать новую схему"

    администратор MySQL http://img204.imageshack.us/img204/7528/adminsx9.th.gifувеличить изображение

  4. назовите новую схему (пример: "dbn")

    новая схема MySQL http://img262.imageshack.us/img262/4374/newwa4.th.gifувеличить изображение

  5. открыть командную строку Windows (cmd)

    Командная строка Windows http://img206.imageshack.us/img206/941/startef7.th.gifувеличить изображение

  6. изменить каталог в папку установки MySQL

  7. выполнить команда:

    mysql -u root -p dbn < C:\dbn_20080912.dump
    

    ...где "root" - это имя пользователя, "dbn" - это имя базы данных, и "C:\dbn_20080912 - ... дамп " - это путь / имя файла mysqldump .файл дампа

    командная строка восстановления дампа MySQL http://img388.imageshack.us/img388/2489/cmdjx0.th.gifувеличить изображение

  8. наслаждайтесь!


вы можете попробовать SQLyog инструмент "Execute SQL script" для импорта файлов sql/dump.

enter image description here


Если вы хотите просмотреть ход выполнения дампа, попробуйте следующее:

pv-i 1-p-t-e /path/to/sql/dump | mysql-u имя пользователя-P DATABASE_NAME

вам, конечно, нужно установить "pv". Эта команда работает только на *Nix.


./mysql -u <username> -p <password> -h <host-name like localhost> <database-name> < db_dump-file

в качестве конкретного примера предыдущего ответа:

Мне нужно было восстановить резервную копию, чтобы я мог импортировать / перенести ее в SQL Server. Я установил только MySql, но не зарегистрировал его как сервис или не добавил его в свой путь, поскольку у меня нет необходимости поддерживать его.

я использовал проводник windows, чтобы поместить файл дампа в C:\code\dump - ... язык SQL. Затем открыл MySql из пункта меню Пуск. Создал БД, затем запустил исходную команду с полным путем следующим образом:

mysql> create database temp
mysql> use temp
mysql> source c:\code\dump.sql

выполните команду для входа в БД

 # mysql -u root -p 

введите пароль для пользователя, затем создайте новый DB

mysql> create database MynewDB;
mysql> exit

и сделать выход.Им что.Выполните эту команду

# mysql -u root -p  MynewDB < MynewDB.sql

затем войдите в БД и введите

mysql> show databases;
mysql> use MynewDB;
mysql> show tables;
mysql> exit

вот и все ........ Ваш дамп будет восстановлен из одной БД в другую БД

или есть альтернативный способ восстановления дампа

# mysql -u root -p 

затем войдите в БД и тип

mysql> create database MynewDB;
mysql> show databases;
mysql> use MynewDB;
mysql> source MynewDB.sql;
mysql> show tables;
mysql> exit

используя файл дампа 200 МБ, созданный в Linux для восстановления в Windows w / mysql 5.5, у меня было больше успеха с

source file.sql

подход из приглашения mysql, чем с

mysql  < file.sql

подход в командной строке, что вызвало некоторую ошибку 2006 "сервер ушел" (в windows)

странно, служба, созданная во время (mysql) install, относится к my.ini-файл, который не существует. Я скопировал "большой" пример файла в моих.Ини который я уже изменил с рекомендуемым увеличением.

мои ценности

[mysqld]
max_allowed_packet = 64M
interactive_timeout = 250
wait_timeout = 250

вы не можете использовать меню восстановления в MySQL Admin, если резервная копия / дамп не был создан оттуда. Хотя попробовать стоит. Если вы решите "игнорировать ошибки" с флажком для этого, он скажет, что он успешно завершен, хотя он явно выходит только с частью импортированных строк...это с помойкой, заметьте.


однострочная команда для восстановления сгенерированного SQL из mysqldump

mysql -u <username> -p<password> -e "source <path to sql file>;"

вы также можете использовать меню восстановления в MySQL Administrator. Вам просто нужно открыть резервный файл,а затем нажмите кнопку Восстановить.