6.4.1 Як зробити імпорт або експорт бази даних через SSH? Робота з БД через 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