📢 最新消息(2025年7月)
近期某知名企业因未定期备份数据库,遭遇勒索软件攻击,导致核心业务瘫痪48小时!💥 数据安全专家再次强调:“没有备份的数据库,就像没上锁的保险箱”,别等悲剧发生才后悔——今天就用这篇指南武装你的MySQL!
DELETE FROM users;
按回车才想起没加WHERE…😱 # 备份整个数据库(含数据+结构) mysqldump -u 用户名 -p 数据库名 > 备份文件.sql # 只备份结构(不要数据) mysqldump -u 用户名 -p --no-data 数据库名 > 纯结构.sql # 大招:压缩备份(省空间神器) mysqldump -u 用户名 -p 数据库名 | gzip > 备份文件.sql.gz
💡 小技巧:用--single-transaction
参数备份InnoDB表,不影响业务运行!
# 先锁表再拷贝(适合MyISAM引擎) FLUSH TABLES WITH READ LOCK; cp -R /var/lib/mysql /备份目录/ UNLOCK TABLES;
⚠️ 注意:恢复时要确保MySQL服务已停止,否则可能文件损坏!
-- 查看当前binlog状态 SHOW MASTER STATUS; -- 恢复时重放binlog(精确到秒级恢复) mysqlbinlog --start-datetime="2025-07-01 14:00:00" /var/log/mysql/mysql-bin.000123 | mysql -u root -p
🎯 适用场景:误删数据后,只想恢复下午2点到2点半的数据?Binlog能办到!
# 方法1:直接导入(适合小数据库) mysql -u 用户名 -p 数据库名 < 备份文件.sql # 方法2:先建空库再导入(更稳妥) mysql -u 用户名 -p -e "CREATE DATABASE 新库名;" mysql -u 用户名 -p 新库名 < 备份文件.sql
-- 步骤1:从备份中提取单表数据 sed -n '/^-- Table structure for table `表名`/,/^-- Table structure for table/p' 备份文件.sql > 单表.sql -- 步骤2:导入目标表 mysql -u 用户名 -p 数据库名 < 单表.sql
0 3 * * * /usr/bin/mysqldump -u 备份账号 -p密码 数据库 | gzip > /备份路径/$(date +\%Y\%m\%d).sql.gz
--force
参数测试SQL文件是否完整 .sql.gz
上传到异地OSS/对象存储,防地震火灾🌋 🚨 没验证过的备份≈没备份!今天下班前,马上跑一次恢复演练吧!
(注:所有命令基于MySQL 8.0+环境测试,2025年7月验证有效)
本文由 方悦可 于2025-07-30发表在【云服务器提供商】,文中图片由(方悦可)上传,本平台仅提供信息存储服务;作者观点、意见不代表本站立场,如有侵权,请联系我们删除;若有图片侵权,请您准备原始证明材料和公证书后联系我方删除!
本文链接:https://vps.7tqx.com/wenda/481083.html
发表评论