在 Linux 上备份 MySQL(或 MariaDB)常见、稳妥的做法如下,按使用频率 from 最常用到进阶说明。
mysqldump(逻辑备份)mysqldump -u root -p dbname > dbname_$(date +%F).sql
mysqldump -u root -p --all-databases > all_db_$(date +%F).sql
mysqldump -u root -p dbname | gzip > dbname_$(date +%F).sql.gz
mysqldump -u root -p \
--single-transaction \
--routines \
--triggers \
--events \
dbname > dbname.sql
✅ 适合 InnoDB
✅ 不锁表
mysql -u root -p dbname < dbname.sql
gunzip < dbname.sql.gz | mysql -u root -p dbname
mysqlbackup(企业版)yum install percona-xtrabackup
xtrabackup --backup --target-dir=/backup/mysql
xtrabackup --prepare --target-dir=/backup/mysql
xtrabackup --copy-back --target-dir=/backup/mysql
⚠️ 需停止 MySQL 服务
crontab -e
0 2 * * * mysqldump -u root -p'password' dbname | gzip > /backup/db_$(date +\%F).sql.gz
⚠️ 密码写脚本有安全风险,建议用 ~/.my.cnf
~/.my.cnf[client]
user=root
password=yourpassword
chmod 600 ~/.my.cnf
✅ 每日增量 / 全量
✅ 本地 + 异地(云存储)
✅ 定期恢复演练
✅ 大库用 XtraBackup
如果你告诉我:
我可以帮你定制一套备份方案 + 脚本。