一、SQL语句误操作导致数据丢失
1、首先需要停止mysql服务器的运行
/etc/init.d/mysql stop
2、备份原来的数据
cd /var/lib/mysql
tar zcvf mysql-backup.tar.gz * --exclude ib*
mv mysql-backup.tar.gz /root/
3、找到最新的备份文件并解压缩
cd /root/
tar zxvf mysql-backup.tar.gz
4、把数据库文件夹复制到当前的mysql的数据目录
cp -Rf /root/var/lib/mysql/* /var/lib/mysql/
5、启动mysql服务器
/etc/init.d/mysql start
二、误删数据表
1、使用mysqldump将整个数据库备份到本地
mysqldump -u root -p database > database.sql
2、使用mysql命令登录到服务器
mysql -u root -p
3、选择需要恢复的数据库
use database
4、还原刚才备份的数据表
source /path/to/database.sql
三、文件损坏或数据库无法启动
1、使用mysqlcheck命令检查数据库的所有表
mysqlcheck -u username -p --check --all-databases
2、如果有问题,则使用mysqlcheck命令修复数据库
mysqlcheck -u username -p --repair --all-databases
3、如果数据库仍然无法正常启动,则可以删除所有日志文件并重启mysql:
cd /var/lib/mysql
rm -rf *.log
/etc/init.d/mysql restart
四、recovery模式恢复数据
1、关闭MySQL服务
systemctl stop mysql
2、使用以下命令查看binlog日志文件
ls -l /var/log/mysql/bin*
3、使用mysqlbinlog将binlog文件导出
mysqlbinlog --start-position=4 --verbose /var/log/mysql/binlog.000001 > /root/mysql_recovery.sql
4、编辑mysql_recovery.sql文件,删除所有的“SET”语句
5、使用mysql命令将导出的sql文件导入数据库
mysql -u root -p < /root/mysql_recovery.sql
五、数据库迁移
1、使用mysqldump备份原数据库
mysqldump -u root -p database > /root/database.sql
2、将备份的sql文件拷贝到新服务器
scp /root/database.sql username@newserver:/root/
3、在新服务器上使用mysql命令导入sql文件
mysql -u root -p < /root/database.sql
以上这些方法可以帮助你解决MySQL数据恢复的常见问题,让你的数据库得以快速恢复。