在Linux上进行MySQL数据恢复,可根据是否有备份及日志情况选择方法,操作前建议先备份当前数据,具体方法如下:
-
使用备份文件恢复
- 若有
mysqldump备份,执行命令:
mysql -u 用户名 -p 数据库名 < 备份文件.sql - 若用
innobackupex等物理备份工具,按工具文档恢复数据文件后重启服务。
- 若有
-
利用二进制日志(binlog)恢复
- 确认
log_bin已开启,通过SHOW BINARY LOGS;找到误操作前的日志文件。 - 使用
mysqlbinlog导出恢复SQL:
mysqlbinlog --start-datetime="YYYY-MM-DD HH:MM:SS" --stop-datetime="YYYY-MM-DD HH:MM:SS" binlog文件 > restore.sql - 执行恢复:
mysql -u 用户名 -p < restore>。
- 确认
-
使用第三方工具
- 如
Percona XtraBackup(支持热备份恢复)、MyDumper(逻辑备份恢复)等。
- 如
-
从主从复制恢复
- 停止从服务器复制,复制主服务器数据文件到从服务器,重启复制。
注意:操作前需停止MySQL服务(sudo systemctl stop mysqld),恢复后重启服务(sudo systemctl start mysqld),并验证数据完整性。