Для того щоб зберегти резервну копію бази даних MySql прийнято використовувати так звані дампи. Це текстовий файл містить структуру і вміст бази даних в форматі SQL запитів.
Отже, робимо дамп бази використовуючи консольний клієнт mysqldump, зайшовши на сервер по ssh. Знімати будемо дамп бази user_database з сервера mysql12.leaderhost.ru, логін для доступу до бази у нас user_admin і пароль 12345.
mysqldump -hmysql12.leaderhost.ru -uuser_admin -p12345 user_database> user_database.sql
Наш дамп буде збережений в файл user_database.sql. Якщо Ви помилитеся в логіні або пароль то отримаєте помилку на подобі цієї:
mysqldump: Got error: 1045: Access denied for user 'user_admin'@'81.125.212.18' (using password: YES) when trying to connect
Якщо все нормально, то ніяких повідомлень не вдасться. Подивимося якого розміру вийшов дамп:
] $ Du -hs user_database.sql
Відновлюємо базу MySql з дампа
Вище описано як зробити дамп бази MySQL (резервну копію), далі опишемо необхідні дії для відновлення бази з дампа.
Отже, таже база і теже логіни / паролі, заходимо на сервер по Ssh і виконуємо в папці в якій лежить наш дамп. Наприклад дамп user_database.sql лежить в папці сайту hostingfaq.ru.
mysql -hmysql12.leaderhost.ru -uuser_admin -p12345 user_database Помилки виникають при роботі з дампами Не рідко, при відновленні бази з дампа, можна зіткнуться з такою помилкою: # Тисячі шістьдесят дві - Duplicate entry 'N? -665' for key 1 Найчастіше, помилка виникає через те що кодування таблиці одна, а у даних інша. Що можна вдіяти? як правило в дампі бази змінити все покажчики кодування на одну. Наприклад, дані в дампі в кодуванні cp1251, а десь зустрічається покажчик на utf8: ENGINE = MyISAM AUTO_INCREMENT = 2 DEFAULT CHARSET = utf8; ENGINE = MyISAM DEFAULT CHARSET = cp1251; sed -i «s / utf8 / cp1251 /» user_database.sql Після чого знову спробувати відновити базу з дампа. Незайвим буде примусово задати кодування ключем -default-character-set mysql -default-character-set = cp1251 -hmysql12.leaderhost.ru -uuser_admin -p12345 user_database Інша помилка може виникати в процесі створення дампа: mysqldump: Got error: 1044: Access denied for user 'user_database' @ '%' to database 'user_database' when using LOCK TABLES Обійти її та успішно виконати дамп допоможе ключ -skip-opt mysqldump -skip-opt -hmysql12.leaderhost.ru -uuser_admin -p12345 user_database> user_database.sqlСхожі статті