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

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

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

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

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

mysqldump –u пользователь_БД -p имя-БД > файл_дампа_БД


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

mysqldump -–all-databases -uUSER -pPASSWORD > /path/mysql-db-server.sql

Команда с опцией -–all-databases сохраняет все базы данных пользователя USER на MySQL-сервере.

mysql -uUSER -pPASSWORD < /path/mysql-db-server.sql

Восстанавливает все БД mysql пользователя USER. Если USER – root – то все БД.

mysqldump -uUSER -pPASSWORD DATABASE table1 table2 table3 > /path/ DATABASE_t1-t2-t3.sql

Сохраняет таблицы table1, table2, table3, из базы DATABASE в файле DATABASE_t1-t2-t3.sql.

mysqldump —no-data -uUSER -pPASSWORD DATABASE > /path/DATABASE-schema.sql

Указав опцию —no-data команда сохранит структуру таблиц (без данных) в файле DATABASE_schema.sql.

mysqldump —add-drop-table -uUSER -pPASSWORD DATABASE > /path/DATABASE.sql

Опция —add-drop-table добавит команду DROP TABLE (удаление таблицы) перед созданием таблиц.

mysqldump —databases -uUSER -pPASSWORD DATABASE > /path/DATABASE.sql

Опция —databases добавит команду CREATE DATABASE перед созданием базы данных. Это позволяет не создавать и не задавать базу данных при восстановлении.

mysqldump -uUSER –pPASSWORD –h192.168.0.1 DATABASE > /path/DATABASE.sql

Команда сделает бэкап базы DATABASE с сервера с ip-адресом 192.168.0.1

mysqldump —max_allowed_packet=8M -uUSER –pPASSWORD DATABASE > /path/DATABASE.sql

Опция —max_allowed_packet=8M принудительно изменит размер пакета считываемых данных в оперативную память размером в 8 мегабайт.

mysqldump —quick -uUSER –pPASSWORD DATABASE > /path/DATABASE.sql

Опция —quick заставляет команду записывать данные непосредственно на диск.

mysqldump —default-character-set=cp1251 -uUSER –pPASSWORD DATABASE > /path/DATABASE.sql

Принудительно указываем кодировку cp1251.

mysqldump -uUSER –pPASSWORD DATABASE | gzip -c /path/DATABASE.sql.gz

Этой последовательностью получаем архивированный бэкап с помощью утилиты gzip (для последующего восстановления необходимо будет предварительно извлечь из архива).

Заливаем архив бекапа в базу
gunzip < /path/to/outputfile.sql.gz | mysql -u USER -pPASSWORD DATABASE
или так
zcat /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 — имя файла, в который будет помещен дамп базы данных.