CentOS下MySQL数据库恢复方法主要有以下几种:
-
逻辑备份恢复(推荐)
- 使用
mysqldump工具恢复:- 备份时:
mysqldump -u root -p [数据库名] > backup.sql - 恢复时:
mysql -u root -p [数据库名] < backup>
(适用于全库、单库或单表备份,需提前有备份文件)
- 备份时:
- 使用
-
物理备份恢复(适合大规模数据)
- 使用Percona XtraBackup工具:
- 备份:
innobackupex --user=root --password=密码 --backup /备份路径 - 恢复:先
--prepare准备备份,再--copy-back还原数据文件,最后重启MySQL。
- 备份:
- 使用Percona XtraBackup工具:
-
二进制日志(binlog)恢复
- 适用于误操作或数据损坏,需提前启用binlog:
- 查看binlog文件:
mysqlbinlog /var/lib/mysql/mysql-bin.00000* - 恢复到指定时间点:
mysqlbinlog --start-datetime="YYYY-MM-DD HH:MM:SS" /var/lib/mysql/mysql-bin.000001 | mysql -u root -p
- 查看binlog文件:
- 适用于误操作或数据损坏,需提前启用binlog:
-
非正常关闭修复
- 若MySQL因异常关闭损坏,可通过设置
innodb_force_recovery参数(1-6,数值越大恢复越激进)尝试修复,需修改/etc/my.cnf后重启服务。
- 若MySQL因异常关闭损坏,可通过设置
注意事项:
- 恢复前务必备份当前数据,避免二次损坏。
- 生产环境建议先在测试环境验证恢复流程。
- 若无备份且数据重要,可尝试专业数据恢复工具(如Percona Data Recovery Tool)。