在 Linux 下备份 MySQL 数据,常用且推荐的方式是使用 mysqldump,也可以使用 物理备份(如 xtrabackup) 或 二进制日志。下面按常见场景给你说明。
mysqldump -u root -p dbname > dbname_$(date +%F).sql
mysqldump -u root -p --databases db1 db2 > multi_db.sql
mysqldump -u root -p --all-databases > all_db_$(date +%F).sql
mysqldump -u root -p \
--single-transaction \
--routines \
--triggers \
--events \
--all-databases > all_db.sql
说明:
--single-transaction:对 InnoDB 不锁表--routines:存储过程--triggers:触发器--events:事件mysqldump -u root -p dbname | gzip > dbname.sql.gz
恢复时:
gunzip < dbname.sql.gz | mysql -u root -p dbname
编辑定时任务:
crontab -e
每天凌晨 2 点备份:
0 2 * * * mysqldump -u root -p'password' --all-databases | gzip > /backup/mysql_$(date +\%F).sql.gz
⚠️ 注意:
~/.my.cnf[client]
user=root
password=你的密码
适合:
示例:
xtrabackup --backup --target-dir=/backup/mysql
mysql -u root -p dbname < dbname.sql
mysql -u root -p < all_db.sql
ls -lh /backup/
mysql -e "SHOW DATABASES;"
如果你愿意,可以告诉我:
我可以帮你写一套完整备份 + 自动清理脚本。