Як створити резервні копії баз даних MySQL
Shared FAQ page chrome (breadcrumb, dates, read time, «Читати далі», enquiry block, category labels): see INDEX-AND-CHROME.md. Translate once.
Body
Вступ
Фізична резервна копія каталогів MySQL для майбутнього використання не завжди спрацьовує, а відновлення з неї доволі складне і потребує заплутаних процедур. Ми розглянемо два методи, якими можна правильно створювати резервні копії ваших баз даних і відновлювати їх.
#1. mysqldump
MySQL і MariaDB постачаються з утилітою mysqldump, якою можна легко створювати резервні копії розміщених баз даних. SQL-копія, створена цією утилітою, є повним набором SQL-інструкцій, що відтворюють вихідну базу даних: під час відновлення на тому самому або іншому екземплярі MySQL/MariaDB об’єкти бази даних буде створено на основі цих інструкцій. Створена копія переносима, і користувач може відкрити файл будь-яким текстовим редактором і за потреби змінити SQL-інструкції.
Використання mysqldump для всіх баз даних
Командою mysqldump можна створити резервну копію всіх баз даних на сервері MySQL за наведеним нижче синтаксисом. Для цього потрібні облікові дані адміністратора MySQL. Після запуску команда запитає пароль адміністратора, і копію буде створено в місці, яке ви вкажете для файлу результату.
mysqldump -u root -p --all-databases > all-DB-dump-$( date '+%Y-%m-%d_%H-%M-%S' ).sql
Використання mysqldump для однієї бази даних.
Для резервного копіювання можна використати облікові дані адміністратора або користувача бази даних саме цієї бази. Переконайтеся, що користувач бази даних має права GRANT SELECT, SHOW VIEW, RELOAD, REPLICATION CLIENT, EVENT, TRIGGER на базу даних. Наведені нижче команди з оболонки MySQL створюють користувача для операцій резервного копіювання і надають йому потрібні права.
CREATE USER 'bkpuser'@'localhost' IDENTIFIED BY '<password>';
GRANT SELECT, SHOW VIEW, RELOAD, REPLICATION CLIENT, EVENT, TRIGGER ON db_name.* TO 'bkpuser'@'localhost';
Замініть bkpuser на ім’я користувача, яке хочете використовувати для резервного копіювання, password на справжній рядок пароля цього користувача, а db name на назву бази даних. Після цього за допомогою bkpuser і його облікових даних можна створити резервну копію бази db_name за наведеним нижче синтаксисом.
mysqldump -u [username] -p[password] -h [host] [databaseName] > [backup-name].sql
АБО
mysqldump -u bkpuser -p<password> db_name > db_name.sql
Використання mysqldump для однієї таблиці
mysqldump з наведеним нижче синтаксисом створює резервну копію однієї таблиці з бази даних.
mysqldump -u [username] -p[password] -h [host] [databaseName] [tableName] > [backup-name].sql
АБО
mysqldump -u bkpuser -p<password> db_name table_name > table_name.sql
Відновлення створеної резервної копії.
Клієнтська утиліта mysql відновлює або експортує резервну копію .sql у базу даних. Наведеною нижче командою з оболонки MySQL можна створити порожню базу даних для відновлення вашої копії.
mysql> create database db_name;
Query OK, 1 row affected (0.08 sec)
Використайте клієнт mysql за наведеним нижче синтаксисом, щоб запустити відновлення з файлу резервної копії .sql.
mysql -u [username] -p [databaseName] < backupFile.sql
Утилітою mysqldump можна також створити резервну копію бази даних з віддаленого сервера; синтаксис наведено нижче.
mysqldump --host hostaddress -P portnumber -u username -ppassword dbname > dbname.sql
#2 Використання phpMyAdmin
phpMyAdmin постачається разом із cPanel і Plesk і може експортувати та імпортувати базу даних із браузера.
Увійдіть у phpMyAdmin, підключений до вашої бази даних, відкрийте вкладку експорту, виберіть формат файлу резервної копії, виберіть SQL зі списку і натисніть кнопку «Go». Копію буде створено і завантажено в тій самій сесії браузера.
Щоб відновити копію з phpMyAdmin, відкрийте вкладку «Import», натисніть кнопку «Choose File», знайдіть файл резервної копії на локальній машині і натисніть кнопку «Go».
З FAQ EuroVPS.
Більше в категорії «Інструкції»Ваш наступний партнер з інфраструктури
Залишилося
запитання?
Розкажіть, що ви намагаєтеся зробити. Інженер прочитає і відповість.
+357 222 32280
Почнімо з вашої інфраструктури.
Трохи контексту допомагає нам почати правильну розмову.
