通过文件恢复MySQL数据

记一次脚本跑错需要恢复数据的事故...

1.我这里已经有了备份数据,首先download下来,然后准备一个版本和恢复数据库一致的数据库,我这里是MySQL5.6

2.查看数据库文件位置

mysql> show variables like '%dir%';

找到这一行

| datadir                                 | /var/lib/mysql/            |

说明数据库数据都在/var/lib/mysql/下,所以直接把备份数据拷贝到这里,每个数据库都是一个文件夹,拷贝需要恢复的数据就可以了

3.复制之后需要修改文件夹的权限为mysql

chown  mysql:mysql  -R database_name

4.这时候我们去看一下会发现数据库成功建立了,但打开表时可能会有table xxx doesn't exist的错误,出现这种问题一般是因为MySQL数据库使用的是InnoDB引擎,解决方法:

停止MySQL服务
将原MySQL目录下,data文件夹下的ibdata1文件拷贝粘贴到新date文件夹下
启动MySQL服务

done.