Для импорта сначала загружаете дамп на сервер. Дамп должен быть в формате .sql Далее подключаетесь на сервер по SSH и выполняете команду:

  1. mysql -u пользователь_БД -p имя_БД < файл_дампа_БД

В случае неудачи всегда будет указанна ошибка из-за которой импорт не удался или прервался.

Для экспорта существует утилита, которая позволяет сделать бэкап базы данных в традиционном SQL-формате – mysqldump. Общий вид в командной строке:

  1. mysqldump -u пользователь_БД -p имя_БД > файл_дампа_БД
  • пользователь_БД - имя пользователя Базы Данных, имеющий доступ к базе;
  • имя_БД - имя Базы Данных, которая создана на сервере;
  • файл_дампа_БД - это файл в текущей директории.

Также утилита имеет много опций и ключей, рассмотрим ниже несколько основных полезных примеров по использованию mysqldump:

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

где:

  • USER — это имя пользователя базы данных;

  • PASSWORD — пароль пользователя;

  • SERVER — это имя (или ip-адрес) сервера базы данных;

  • DataBase — наименование базы данных;

  • NameFile.sql — имя файла, в который будет помещен дамп базы данных.

8.2 Импорт/экспорт дампа при помощи SSH