Як одна з провідних вільно доступних баз даних, MySQL є популярним вибором для багатьох веб-програм. Перебуваючи в Інтернеті, ваш додаток зазнає шкідливих атак. Якщо ваш сервер скомпрометований, у кращому випадку вам необхідно перевстановити додаток; у гіршому випадку ви можете втратити свої дані. Крім того, ви можете зіткнутися з ситуацією, коли вам потрібно перенести базу даних з одного сервера на інший.
Для чого використовується mysqldump?
Інструмент mysqldump допоможе вам розібратися як у компрометації сервера, так і в ситуаціях міграції. Його основна функція - взяти базу даних MySQL і вивантажити її у вигляді текстового файла. Але не будь-який текстовий файл; файл - це набір операторів SQL. Ці оператори при виконанні відновлюють базу даних в точний стан, в якому вона знаходилася при виконанні дампа.
Використовуйте mysqldump для створення експорту бази даних як резервної копії або при переміщенні бази даних на новий вузол. У будь-якому випадку текстовий файл буде імпортовано назад на сервер бази даних MySQL. Він виконає всі оператори SQL у файлі, який відновить базу даних до її вихідного стану. Ця частина не використовує команду mysqldump, але без цієї утиліти це було б неможливо.
У документах MySQL перераховані інші методи створення резервних копій, але вони мають недоліки:
- Гаряче копіювання бази даних з MySQL Enterprise - чудовий спосіб для створення таких резервних копій, якщо ви не проти цінника Enterprise.
- Копіювання каталогів даних бази даних може бути складним при переміщенні між операційними системами, оскільки місця призначення будуть різними.
- Експорт до текстового файлу з роздільниками дасть вам вміст, але вам доведеться відтворити структуру.
- Ви часто можете створювати резервні копії баз даних з програм з графічним інтерфейсом, таких як MySQL Workbench Але це ручний процес; не те, що ви можете написати або включити до пакетного завдання.
Встановіть інструмент mysqldump
Для Windows ознайомтеся з нашими інструкціями з установки MySQL в Windows 7 (процес установки такий же, як і в Windows 10). На macOS дивіться наші інструкції з установки MySQL на macOS 10.7 (знову ж таки, більш стара, але все ще застосовна). Користувачі Linux-систем на основі Ubuntu можуть використовувати наступну команду для встановлення клієнта і утиліт MySQL:
sudo apt встановити mysql-клієнт
Вилучити дамп MySQL
Після встановлення використовуйте mysqldump, щоб отримати повну резервну копію бази даних.
mysqldump -h [ім'я або IP-адреса вашого вузла БД] -u [ім'я користувача БД] -p [ім'я бази даних] > db_backup.sql
Ось опис прапорів, які використовуються в цій команді:
- -h: Цей прапор є хостом бази даних. Це може бути повне ім'я вузла (наприклад, myhost.domain.com) або IP-адреса. Залиште це поле порожнім, якщо ви запускаєте команду на тому самому вузлі, що і сервер MySQL.
- -u: Ваше ім'я користувача.
- -p: Якщо ви правильно встановили параметр MySQL, вам потрібен пароль для з "єднання. Цей прапор без аргументів запитує пароль під час виконання команди. Іноді корисно вказати пароль безпосередньо як аргумент цього прапора, наприклад, у сценарії резервування. Але за підказкою ви не повинні, тому що, якщо хтось отримає доступ до вашого комп'ютера, він може отримати цей пароль в історії команд.
- > db_backup.sql: ця частина вказує mysqldump надсилати вивід до файла. Зазвичай команда виводить всі на консоль, що означає, що ви побачите кілька операторів SQL на екрані. Символ > надсилає вивід до іменованого текстового файлу. Якщо цей файл не існує, він створюється автоматично.
Коли він закінчиться, у вас буде файл. SQL. Це текстовий файл, що містить оператори SQL. Ви можете відкрити його у будь- якому текстовому редакторі для перевірки вмісту. Ось експорт з бази даних WordPress, який показує, як ці файли об'єднуються.
Файл розділений на розділи. Перший розділ налаштовує таблицю для коментарів WordPress. У другому розділі відтворюється вміст цих таблиць (у цьому прикладі записи коментарів). Якщо ви повторно імпортуєте дамп MySQL, команда обробляє файл, виконує оператори і перебудовує базу даних, як це було.
Імпортуйте файл дампа MySQL
Перш ніж імпортувати файл дампа, вам знадобиться база даних, вже створена, а також її дійсні ім'я користувача і пароль. Ви також повинні мати всі дозволи для бази даних. Вам не потрібно роздільну здатність GRANT, але їх найпростіше надати.
Дізнайтеся більше про дозволи бази даних, перш ніж змінювати ролі безпеки у своїй базі даних.
Щоб повторно імпортувати ваші дані, увійдіть на сервер MySQL за допомогою команди mysql. Введіть use [назва бази даних] у командному рядку і вкажіть назву бази даних. Введіть джерело [назва файла] і замініть назву файла дампа, який ви взяли раніше.
Коли ви закінчите, з'явиться список повідомлень про те, що виконуються оператори SQL. Стежте за помилками, але якщо у вас є необхідні дозволи, у вас все буде добре.
Коли процес буде завершено, у вас буде копія вихідної бази даних. Щоб перевірити подібність між базами даних, виконайте інший дамп, потім порівняйте два виводи. Використовуйте текстовий редактор або спеціальний інструмент порівняння, щоб порівняти два файли.
Є дві відмінності між цими файлами, які представлені червоними лініями вгорі і внизу правої смуги прокрутки. Перший - це рядок, що містить назву бази даних, і він відрізняється, тому що файли були названі по-різному. Друга - це мітка часу для файла дампа. Це відрізняється, тому що друга база даних була відтворена після першої. В іншому файли точно такі ж, тобто бази даних, які їх генерували, теж.