Главная > В помощь sysadmin'y, Пакеты Debian, Статьи > Резервное копирование (backup) баз MySQL

Резервное копирование (backup) баз MySQL

Резервное копирование баз MySQL mysql backup ubuntu

Попался мне на просторах интернета один из скриптов для создания бэкапов баз данных, в чем его плюс — создает отдельный архив под каждую базу данных, в отличии от стандартного mysqldump с ключем —all-databases который пишет все базы в один файл для меня получается не совсем правильный бэкап, т.е мне это ни подходит.По мне лучше каждая база -отдельный файл.
В любом случаи желательно сделать пользователя от которого будем делать бекапы, из прав дадим ему права на просмотр баз,SELECT и Lock Tables, я приведу пример как создать из командной строки:
$ mysql -pПАРОЛЬ
-p, —password=[password] – Пароль пользователя, для соединения с сервером MySQL. Не должно быть пробела между -p и паролем.
-u, —user=[user] — Имя пользователя для соединения с сервером MySQL. Необязательно, по умолчанию используется такое же, как ваш логин.Используется если логин отличается от имени пользователя для соединения с сервером MySQL.

$ mysql> CREATE USER ‘back’@'localhost’ IDENTIFIED BY ’123456′;
Query OK, 0 rows affected (0.02 sec)
$ mysql> GRANT SELECT , LOCK TABLES ON * . * TO ‘back’@'localhost’ IDENTIFIED BY ’123456′;
Query OK, 0 rows affected (0.00 sec)

для примера пользователь back и его пароль 123456 (mysql backup ubuntu)

И для общего развития предложу один из вариантов с использованием mysqldump, может кому пригодиться:
$ mysqldump -uback -p123456 --all-databases | gzip -c > `date "+%Y-%m-%d"`.bz2
все базы данных и сжатие данных на ходу
Теперь сам найденный скрипт:

#!/bin/bash
mkdir ~/mysql_backup/`date +%e-%B`
cd ~/mysql_backup/`date +%e-%B`
for i in `mysql -u %USER% -p%PASSWORD% -e’show databases;’ | grep -v information_schema | grep -v Database`; do mysqldump -u %USER% -p %PASSWORD% $i > `date +%Y-%m-%d`-$i; bzip2 -9 `date +%Y-%m-%d`-$i;done

так же не забываем поменять %USER% на пользователя, которого вы создали для бэкапов, и %PASSWORD% на его пароль.
Так же можно использовать довольно интересный и бесплатный скрипт – “Sypex Dumper”
Теперь для полноты автоматизации можно один из понравившихся вариантов добавить в cron.
$ crontab -e

# m h dom mon dow command
01 00 * * * sh ~/backup

mysql backup ubuntu запуск каждый день в одну минуту первого.

Читаем еще:

Необходимо войти на сайт, чтобы написать комментарий.
#

//