Добавить Readme
This commit is contained in:
parent
a898a692af
commit
7ada2c59ce
72
Readme
Normal file
72
Readme
Normal file
@ -0,0 +1,72 @@
|
||||
Вот надёжный шаблон скрипта для резервного копирования MySQL / MariaDB, полностью аналогичный предыдущему PostgreSQL-скрипту: с логированием, сжатием, безопасной передачей пароля, ротацией старых бэкапов и поддержкой одной или всех баз.
|
||||
|
||||
Файл: mysql-backup.sh
|
||||
|
||||
Как передать пароль безопасно?
|
||||
|
||||
Рекомендуется: файл ~/.my.cnf
|
||||
|
||||
Создайте /root/.my.cnf:
|
||||
|
||||
chmod 600 /root/.my.cnf
|
||||
|
||||
Содержимое:
|
||||
|
||||
[client]
|
||||
host = localhost
|
||||
port = 3306
|
||||
user = root
|
||||
password = ваш_пароль
|
||||
|
||||
Тогда не нужно указывать MYSQL_PASSWORD в скрипте — mysqldump сам прочитает настройки.
|
||||
|
||||
Это самый безопасный способ: пароль не виден в ps, не хранится в скрипте.
|
||||
|
||||
Альтернатива: раскомментируйте MYSQL_PASSWORD
|
||||
|
||||
Скрипт создаст временный .cnf с правами 600 и удалит его после работы (trap гарантирует это).
|
||||
|
||||
Как использовать:
|
||||
|
||||
Сохраните как /root/mysql-backup.sh
|
||||
Сделайте исполняемым:
|
||||
|
||||
chmod +x /root/mysql-backup.sh
|
||||
|
||||
Отредактируйте:
|
||||
MYSQL_DB → например, grafana, zabbix, wordpress
|
||||
Или оставьте "all", чтобы бэкапить всё
|
||||
|
||||
Добавьте в cron:
|
||||
0 1 * * * /root/mysql-backup.sh
|
||||
|
||||
Логи:
|
||||
/root/backups/mysql/backup.log
|
||||
|
||||
Важные опции mysqldump:
|
||||
|
||||
Важные опции mysqldump:
|
||||
Опция
|
||||
--single-transaction
|
||||
Для InnoDB: делает согласованный дамп без блокировки таблиц
|
||||
|
||||
--routines
|
||||
Сохраняет хранимые процедуры и функции
|
||||
|
||||
--triggers
|
||||
Сохраняет триггеры
|
||||
|
||||
--events
|
||||
Сохраняет события планировщика
|
||||
|
||||
--databases
|
||||
Гарантирует, что в дампе будет CREATE DATABASE
|
||||
|
||||
Восстановление:
|
||||
|
||||
gunzip -c /root/backups/mysql/grafana-20260123-0220.sql.gz | mysql -u root -p
|
||||
|
||||
Или, если у вас ~/.my.cnf:
|
||||
gunzip -c backup.sql.gz | mysql
|
||||
|
||||
Если вы используете MariaDB — всё работает точно так же (она совместима с MySQL).
|
||||
Loading…
Reference in New Issue
Block a user