Резервное копирование MySQL в Linux
Все что вам нужно для резервного копирования MySQL - это доступ к серверу с операционной системой Linux, на котором установлен сервер баз данных, а также имя базы данных и параметры доступа к ней. Для экспорта информации из базы данных в формате SQL можно использовать утилиту mysqldump, вот ее синтаксис:
mysqldump опции имя_базы [имя_таблицы] > файл.sql
По умолчанию утилита будет выводить все в стандартный вывод, поэтому нам нужно перенаправить эти данные в файл, что мы и делаем с помощью оператора >
. Опции указывают параметры аутентификации и работы, а имя базы и таблицы - данные которые нужно экспортировать. Теперь рассмотрим кратко опции, которые будем использовать:
-A
копировать все таблицы из всех баз данных-i
записывать дополнительную информацию в комментариях-c
использовать имена колонок для инструкции INSERT-a
включать все возможные опции в инструкцию CREATE TABLE-k
отключает первичные ключи на время копирования-e
использовать многострочный вариант инструкции INSERT-f
продолжить даже после ошибки-h
имя хоста, на котором расположен сервер баз данных, по умолчанию localhost-n
не писать инструкции для создания базы данных-t
не писать инструкции для создания таблиц-d
не записывать данные таблиц, а только их структуру-p
пароль базы данных-P
порт сервера баз данных-Q
брать все имена таблиц, баз данных, полей в кавычки-X
использовать синтаксис XML вместо SQL-u
пользователь, от имени которого нужно подключаться к базе данных
Резервное копирование базы данных
В большинстве случаев нам достаточно задать имя пользоваться, пароль, а также имя базы данных, данные из SQL направляются >
в файл:
sudo mysqldump -u имя_пользователя -p имя_базы > data-dump.sql
Система попросит ввести пароль пользователя базы данных и больше ничего команда не выведет, поскольку мы отправили все данные в файл, но можно посмотреть информацию о резервной копии с помощью такой команды:
sudo head -n 5 data-dump.sql
Если во время создания копии возникнут какие-либо ошибки, они будут выведены на экран и вы сразу о них узнаете.
Восстановление из резервной копии
Восстановить резервную копию mysql или mariadb из существующего SQL файла очень просто. Поскольку использовался синтаксис sql мы просто можем выполнить все команды с помощью стандартного клиента mysql.
Авторизуемся на mysql сервере с правами суперпльзователя:
mysql -u root -p
Создаем новую базу данных, если база данных уже существует, то этого делать не нужно:
mysql> CREATE DATABASE название_базы_данных;
Закрываем оболочку, нажав сочетание клавиш Ctrl+Q
и импортируем данные из файла командой:
mysql -u пользователь -p название_базы_данных < data-dump.sql
Данные из файла направляются на стандартный ввод программы <
. Успешно выполненная команда ничего не выведет, и чтобы убедиться что все прошло успешно, просто посмотрите содержимое базы.