6.4.2 Как сделать импорт или экспорт базы данных через SSH

TheHost DB Export Banner

Импорт/экспорт базы данных с помощью SSH

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

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

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

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

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

Управление базами данных с помощью SSH

Помимо экспорта и импорта, использование SSH существенно упрощает и другие нюансы управления базами данных. Ниже несколько основных полезных примеров по использованию mysqldump и других:

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

Для последующего восстановления необходимо будет предварительно извлечь из архива.

Пример: как загрузить архив бекапа в базу
  1. gunzip < /path/to/outputfile.sql.gz | mysql -u USER -p PASSWORD DATABASE

или так:

  1. cat /path/to/outputfile.sql.gz | mysql -u USER -p PASSWORD DATABASE