Импортировать базу данных из файла можно несколькими способами. Однако не во всех случаях это может оказаться удобным или вообще возможным. Наверное, вам приходилось использовать утилиту phpMyAdmin, которая позволяет выполнять различные манипуляции с базами данных, в том числе и операции по экспорту/импорту баз данных. Эта утилита весьма удобна, однако есть здесь и подводные камни: лимит на размер загружаемых файлов, а так лимит на время выполнения скриптов. Дело в том, что в случае с большой базой данных установленных лимитов бывает недостаточно.
Для восстановления больших баз данных целесообразно использовать командную строку. В нашем примере используется MySQL сервер, установленный на ОС Linux, для других систем семейства Unix всё по аналогии.
Давайте предположим, что у нас есть бэкап базы данных, который нам предстоит восстановить. Для восстановления уже существующей базы данных мы будем использовать команду mysqlimport.
Восстановление существующей базы из резервной копии.
Для восстановления прежде созданной базы данных будем использовать команду mysqlimport.
Синтаксис команды mysqlimport:
$ mysqlimport -u [username] -p[password] [dbname] [backupfile.sql]
Пример:
$ mysqlimport -u root -pMyPassword customers_db customers_db_backup.sql
Стоит отметить, что между ключем –p и паролем (MyPassword) пробела нет.
Создание новой базы из резервной копии.
Создадим базу с идентичным названием:
mysql> CREATE DATABASE customers_db;
Используя команду mysql загружаем базу из резервной копии.
Синтаксис:
$ mysql -u [username] -p[password] [db_to_restore] < [backupfile.sql]
Использование:
$ mysql -u root -pMyPassword customers_db < customers_db_backup.sql
Восстановление резервной копии из архива.
Если резервная копия базы данных была предварительно сжата, и находится в архиве в формате *.sql.gz то можно воспользоваться командой gunzip.
Синтаксис:
$ gunzip < [backupfile.sql.gz] | mysql -u [username] -p[password] [dbname]
Использование:
$ gunzip < customers_db_backup.sql.gz | mysql -u root -pMyPassword customers_db