Для импорта сначала загружаете дамп на сервер. Дамп должен быть в формате .sql Далее подключаетесь на сервер по SSH и выполняете команду:
- mysql -u пользователь_БД -p имя_БД < файл_дампа_БД
В случае неудачи всегда будет указанна ошибка из-за которой импорт не удался или прервался.
Для экспорта существует утилита, которая позволяет сделать бэкап базы данных в традиционном SQL-формате – mysqldump. Общий вид в командной строке:
- mysqldump -u пользователь_БД -p имя_БД > файл_дампа_БД
пользователь_БД
- имя пользователя Базы Данных, имеющий доступ к базе;имя_БД
- имя Базы Данных, которая создана на сервере;файл_дампа_БД
- это файл в текущей директории.
Также утилита имеет много опций и ключей, рассмотрим ниже несколько основных полезных примеров по использованию mysqldump:
- Команда с опцией
-–all-databases
сохраняет все базы данных на MySQL-сервере:
- mysqldump -–all-databases -uUSER -pPASSWORD > /path/mysql-db-server.sql
- Сохраняет таблицы
table1
,table2
,table3
, из базыDATABASE
в файлеDATABASE_t1-t2-t3.sql
:
- mysqldump -uUSER -pPASSWORD DATABASE table1 table2 table3 > /path/ DATABASE_t1-t2-t3.sql
- Указав опцию
--no-data
команда сохранит структуру таблиц (без данных) в файлеDATABASE_schema.sql
:
- mysqldump --no-data -uUSER -pPASSWORD DATABASE > /path/DATABASE-schema.sql
- Опция
--add-drop-table
добавит командуDROP TABLE
(удаление таблицы) перед созданием таблиц:
- mysqldump --add-drop-table -uUSER -pPASSWORD DATABASE > /path/DATABASE.sql
- Опция
--databases
добавит командуCREATE DATABASE
перед созданием базы данных. Это позволяет не создавать и не задавать базу данных при восстановлении:
- mysqldump --databases -uUSER -pPASSWORD DATABASE > /path/DATABASE.sql
- Команда сделает бэкап базы
DATABASE
с сервера с IP-адресом192.168.0.1
:
- mysqldump -uUSER –pPASSWORD –h192.168.0.1 DATABASE > /path/DATABASE.sql
- Опция
--max_allowed_packet=8M
принудительно изменит размер пакета считываемых данных в оперативную память размером в 8 мегабайт:
- mysqldump --max_allowed_packet=8M -uUSER –pPASSWORD DATABASE > /path/DATABASE.sql
- Опция
--quick
заставляет команду записывать данные непосредственно на диск:
- mysqldump --quick -uUSER –pPASSWORD DATABASE > /path/DATABASE.sql
- Принудительно указываем кодировку
cp1251
:
- mysqldump --default-character-set=cp1251 -uUSER –pPASSWORD DATABASE > /path/DATABASE.sql
- Этой последовательностью получаем архивированный бэкап с помощью утилиты gzip (для последующего восстановления необходимо будет предварительно извлечь из архива).
- mysqldump -uUSER –pPASSWORD DATABASE | gzip -c /path/DATABASE.sql.gz
- Заливаем архив бекапа в базу:
- gunzip < /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE
- или так:
- cat /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE
- Создаём новую базу данных:
- mysqladmin -u USER -pPASSWORD create NEWDATABASE
- Для просмотра списка баз данных можно использовать команду:
- mysqlshow -u USER -pPASSWORD
- А также можно посмотреть список таблиц базы:
- mysqlshow -u USER -pPASSWORD DATABASE
где:
-
USER
— это имя пользователя базы данных; -
PASSWORD
— пароль пользователя; -
SERVER
— это имя (или ip-адрес) сервера базы данных; -
DataBase
— наименование базы данных; -
NameFile.sql
— имя файла, в который будет помещен дамп базы данных.