在 Ubuntu 上备份 MySQL,常见、实用的方式如下,按使用频率从简单到进阶给你说明。
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 --no-data dbname > struct.sql
# 只数据
mysqldump -u root -p --no-create-info dbname > data.sql
mysql -u root -p dbname < dbname.sql
如果是 .gz:
gunzip < dbname.sql.gz | mysql -u root -p dbname
crontab -e
添加:
0 2 * * * mysqldump -u root -p'密码' dbname | gzip > /backup/dbname_$(date +\%F).sql.gz
⚠️ 生产环境不建议明文写密码,可用:
~/.my.cnf
[client]
user=root
password=你的密码
然后:
chmod 600 ~/.my.cnf
mysqlbackup(企业版)或 Percona XtraBackup适合:
# Percona 示例
xtrabackup --backup --target-dir=/backup/mysql
systemctl stop mysql
cp -r /var/lib/mysql /backup/mysql
systemctl start mysql
✅ 简单但必须停服,不适合生产
mysqldump如果你愿意,可以告诉我:
我可以帮你写一套完整备份脚本 + 自动清理策略。