Как сделать резервную копию базы/таблицы в MySQL

  • 689
  • 0
  • 100,00%
  • 2

В данной статье мы рассмотрим примеры того, как можно сделать резервную копию (бэкап, backup) базы данных MySQL (или же определенной таблицы из этой базы).

Все нижеперечисленные команды в этом разделе не затрагивают существующие базы/таблицы, а просто создают их копии.

Бэкап БАЗЫ (БАЗ) данных

Для создания резервных копий баз данных MySQL из терминала Linux, существует специальная утилита mysqldump, которая устанавливается вместе с сервером. Ниже рассмотрим несколько различных примеров, используя которые можно делать резервные копии как целых баз, так и необходимых таблиц в конкретной базе.

Создаем резервную копию ОДНОЙ базы

mysqldump -u root -p database_name > database_name_backup.sql

-u root - аргумент, означающий, что мы будем подключаться к MySQL серверу под учетной записью root (может быть любая учетная запись, имеющая необходимые права на нужную таблицу).
-p - аргумент, означающий, что необходимо ввести пароль для авторизации (т.е. доступ для данного пользователя без пароля - не разрешен). В случае, когда пароль не требуется, данный аргумент можно упустить.
database_name - это имя базы данных, резервную копию которой мы делаем.
database_name_backup.sql - это название бекапа, который будет создан. Создается он в текущем каталоге из которого вы запускаете данную команду. Если вам необходимо сохранить резервную копию в какой-либо определенный каталог, то можно сразу указать путь до этого каталога, написав вместо database_name_backup.sql, /tmp/database_name_backup.sql. Таком образом, резервная копия будет создана в каталоге /tmp

Создаем резервную копию НЕСКОЛЬКИХ баз

В случае, когда необходимо одной командой создать бекапы для нескольких баз данных, можно воспользоваться следующей командой:

mysqldump -u root -p --databases database_name_1 database_name_2 database_name_3 > databases_backup.sql

--databases - аргумент, указывающий, что далее будут перечислены базы данных, резервные копии которых мы хотим сделать.
database_name_1 database_name_2 database_name_3 - имена баз данных, резервные копии которых мы хотим сделать. Разделяются пробелом.

Создаем резервную копию ВСЕХ баз

В случае, когда необходимо одной командой сделать резервную копию всех доступных баз данных, можно воспользоваться следующей командой:

mysqldump -u root -p --all-databases > databases_backup.sql

--all-databases, аргумент, указывающий, что необходимо сделать резервную копию всех доступных баз данных.

Если вы получаете ошибку "mysqldump: 1044 Access denied when using LOCK TABLES", то скорей всего вы пытаетесь делать резервную копию не под учетной записью root, а под какой то другой, у которой недостаточно прав на системные базы данных, вроде sys и mysql, либо другие. Поэтому, необходимо выдать нужные права пользователю на все базы, подробней об этом можно прочитать в данной статье: Ошибка: mysqldump: 1044 Access denied when using LOCK TABLES, либо делать резервные копии с помощью учетной записи root.

Бэкап ТАБЛИЦЫ (ТАБЛИЦ) из определенной базы данных

Создаем резервную копию ОДНОЙ таблицы из базы

В том случае, когда у вас нет нужды создавать резервную копию всей базы данных целиком, а необходимо лишь создать резервную копию одной таблицы из этой базы данных, можно воспользоваться следующей командой:

mysqldump -u root -p database_name table_name > table_name_backup.sql

table_name - это имя таблицы, резервную копию которой мы хотим сделать и которая находится в базе данных database_name.

Создаем резервную копию НЕСКОЛЬКИХ таблиц из базы

В том случае, когда вам необходимо сделать резервную копию нескольких таблиц из определенной базы, можно воспользоваться следующей командой:

mysqldump -u root -p database_name table_name_1 table_name_2 table_name_3 > tables_backup.sql

table_name_1 table_name_2 table_name_3 - это названия таблиц, резервные копии которых мы хотим сделать. В нашем примере данные таблицы находятся в базе данных database_name.



Добавить комментарий

Ваш e-mail не будет опубликован.

Напоминаем Вам, что Ваше сообщение будет опубликовано только после проверки администратором сайта. Обычно это занимает 1-2 рабочих дня.