MySQL Backup and Restore on RHEL 9
mysqldump
# Single database
mysqldump -u root -p appdb > /backups/appdb_$(date +%F).sql
# All databases
mysqldump -u root -p --all-databases > /backups/all_$(date +%F).sql
# Compressed
mysqldump -u root -p appdb | gzip > /backups/appdb_$(date +%F).sql.gz
Restore
mysql -u root -p appdb < /backups/appdb_2026-05-07.sql
gunzip < /backups/appdb_2026-05-07.sql.gz | mysql -u root -p appdb
XtraBackup (Percona)
xtrabackup --backup --target-dir=/backups/full_$(date +%F)
xtrabackup --prepare --target-dir=/backups/full_2026-05-07
Automated script with .my.cnf
# /root/.my.cnf (chmod 600)
[client]
user = root
password = RootPassword
#!/bin/bash
mysqldump --all-databases | gzip > /backups/all_$(date +%F_%H%M).sql.gz
find /backups -name '*.sql.gz' -mtime +7 -delete