场景引入
凌晨三点,你的手机突然响起——是运维同事打来的紧急电话:"生产环境的MySQL数据库出问题了,需要立刻恢复上周的订单数据!" 这时候如果你能淡定地说"别急,我有完整的备份",那绝对能成为团队里的"救世主"。
在Linux服务器上管理MySQL数据库时,定期备份就像买保险——平时觉得多余,出事时才知道它的价值,今天我们就来手把手教你几种实用的MySQL数据导出方法,让你关键时刻不抓瞎。
这是MySQL自带的"瑞士军刀",适合大多数备份场景。
mysqldump -u 用户名 -p 数据库名 > 备份文件名.sql
示例:把名为order_system
的库备份到文件
mysqldump -u root -p order_system > order_backup_20250715.sql
系统会提示输入密码,执行后当前目录就会生成.sql文件。
mysqldump -u 用户名 -p 数据库名 表1 表2 > 部分备份.sql
比如只备份用户表和订单表:
mysqldump -u root -p order_system users orders > critical_tables.sql
直接结合gzip减少空间占用:
mysqldump -u root -p order_system | gzip > order_backup_20250715.sql.gz
新建/home/backup_script.sh
如下:
#!/bin/bash DATE=$(date +%Y%m%d) mysqldump -u root -p你的密码 order_system | gzip > /backup/order_$DATE.sql.gz # 保留最近7天备份 find /backup -name "*.sql.gz" -mtime +7 -delete
记得给执行权限:
chmod +x /home/backup_script.sh
通过crontab实现每天凌晨自动备份:
crontab -e
添加一行(每天3点执行):
0 3 * * * /home/backup_script.sh
如果数据库超过10GB,建议添加--single-transaction
参数避免锁表:
mysqldump -u root -p --single-transaction --quick order_system > huge_db_backup.sql
mysqldump -u root -p -d order_system > only_structure.sql
mysqldump -h 192.168.1.100 -u remote_user -p remote_db > remote_backup.sql
当需要还原数据时(假设备份文件为order_backup.sql
):
mysql -u root -p order_system < order_backup.sql
如果是压缩备份:
gunzip < order_backup.sql.gz | mysql -u root -p order_system
最后的小贴士
FLUSH TABLES WITH READ LOCK;
确保数据一致性 没测试过的备份等于没备份,现在就去检查你的数据库备份方案吧!
(本文操作基于MySQL 8.0及主流Linux发行版,2025年7月验证通过)
本文由 蒲柔雅 于2025-07-30发表在【云服务器提供商】,文中图片由(蒲柔雅)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/482276.html
发表评论