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

444

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

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

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

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

Теги:
database
mysqldump

16 ответов

526
Лучший ответ

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

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

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

USE <database-name-here>;

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

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

  • 1
    Я использую «Клиент командной строки MySQL»? Я никогда не использовал MySQL раньше.
  • 0
    Я не уверен, сколько баз данных он содержит. Я предполагаю один.
Показать ещё 8 комментариев
613

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

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

C:\> mysql -u root -p

mysql> create database mydb;
mysql> use mydb;
mysql> source db_backup.dump;
  • 44
    Мне лично нравится этот метод. он показывает ход выполнения дампа, а также точно, сколько времени занимает другой sql.
  • 32
    Это должно быть помечено как правильный ответ.
Показать ещё 10 комментариев
211

Вам просто нужно запустить это:

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

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

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

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

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

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

31

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

mysql -uroot -p 

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

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

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

  • 1
    +1 Так как это самый простой способ сделать это в Windows, где mysql.exe файл mysql.exe по умолчанию отсутствует в PATH, но командную mysql.exe MySQL легко запустить из меню «Пуск».
14

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

 # mysql -u root -p 

Введите пароль для пользователя Затем создайте новую БД

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
13

Я получил его для работы после этих шагов & hellip;

11

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

Изображение 827

  • 1
    Как я могу сделать это в MySQL Workbench?
  • 0
    Мне просто интересно, что ваша текущая база данных содержит? лол
Показать ещё 2 комментария
9
./mysql -u <username> -p <password> -h <host-name like localhost> <database-name> < db_dump-file
  • 0
    Это то же самое, что и пара других ответов, и это восьмилетний вопрос.
  • 2
    Хотя выбранный ответ очень хороший, этот ответ был для меня более полезным. Мой файл базы данных был ОГРОМНЫМ, и открытие его в Notepad ++ было кошмаром, он просто не мог справиться с размером и не позволил бы мне добавить имя базы данных вверху файла sql. В этом случае возможность указать имя БД из командной строки на самом деле более полезна.
9

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

pv -i 1 -p -t -e/path/to/sql/dump | mysql -u USERNAME -p DATABASE_NAME

Конечно, вам понадобится "pv". Эта команда работает только на * nix.

8

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

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

Я использовал Windows Explorer, чтобы поместить мой файл дампа в C:\code\dump.sql. Затем откройте MySql из пункта меню "Пуск". Создал БД, затем выполнил команду источника с полным путем следующим образом:

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

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

source file.sql

из командной строки mysql, чем с

mysql  < file.sql

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

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

Мои значения

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

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

2

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

mysql -u <username> -p<password> -e "source <path to sql file>;"
  • 1
    например, mysql -u root -p12345678 -e "source /tmp/backup.sql;"
  • 0
    Не используйте такой пароль, просто используйте -p, и командная строка предложит вам запрос безопасного пароля после того, как вы нажмете ввод.
Показать ещё 1 комментарий
0

Как восстановить базу данных MySQL с MySQLWorkbench

Вы можете запустить сброс и создать команды на вкладке запроса.

Удалите схему, если она существует в данный момент

DROP DATABASE 'your_db_name';

Создать новую схему

CREATE SCHEMA 'your_db_name';

Откройте файл дампа

Изображение 828

  1. Нажмите Открыть скрипт SQL в новой вкладке запроса и выберите файл дампа базы данных.
  2. Затем нажмите Run SQL Script...
  3. Затем он позволит вам предварительно просмотреть первые строки сценария дампа SQL.
  4. Затем вы выберете имя схемы по умолчанию
  5. Затем выберите набор символов по умолчанию utf8, как правило, безопасная ставка, но вы можете разглядеть ее, посмотрев в строки предварительного просмотра что-то вроде персонажа.
  6. Нажмите Run
  7. Будьте терпеливы в отношении сценариев восстановления больших БД и наблюдайте, как место на диске тает!
0

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

Ещё вопросы

Сообщество Overcoder
Наверх
Меню