mysql5.7数据恢复
2019-9-20 17:47:13 昨天需要手动追数据,一波骚操作后数据库起不来,切记不要在数据库启动时期手动删除数据库文件!数据库死了,但是数据文件还保存着,文件格式为idb和frm两种格式,位置一般在data里其中frm文件为数据库结构文件,idb为数据库数据文件
如果结构有备份,文件丢了好搞,直接运行以下命令
#释放空间
ALTER TABLE gk_task DISCARD TABLESPACE;
#将源数据移动到目标数据
cp /date/gass/gk_task.ibd ./
更改目标库的用户组,权限给640就行
chown -R mysql:mysql gass/
重新加载数据
ALTER TABLE gk_task IMPORT TABLESPACE;
如果不行数据结构也丢了,有款神器mysqlfrm
支持windows和linux点击下载
1、mysqlfrm 是一个恢复性质的工具,用来读取.frm文件并从该文件中找到表定义数据生成CREATE语句。
下载链接:https://downloads.mysql.com/archives/utilities/
由于mysqlfrm是mysql-utilities工具一部分,我们在Windows里面安装mysql-utilities即可;在安装目录下,会有各种命令;
centos7安装:
(1) rpm -ivh mysql-connector-python-2.1.7-1.el7.x86_64 #这里用mysql-connector-python-2.1.7
链接地址:https://downloads.mysql.com/archives/get/file/mysql-connector-python-2.1.7-1.el7.x86_64.rpm
(2) rpm -ivh mysql-utilities-1.6.5-1.el7.noarch.rpm
链接地址:https://downloads.mysql.com/archives/get/file/mysql-utilities-1.6.5-1.el7.noarch.rpm
注意: 尽量不要通过yum来安装mysql-utilities;而且mysql-utilities 1.6.5和mysql-connector-python 8.0.12在一起有问题!
windows 使用语法
mysqlfrm --server=root:root@127.0.0.1:3306 d:\gass\gk_crawl_site_product.frm --port=3434 --user=mysql --diagnostic
linux使用语法
/date/gass
mysqlfrm --server=root:30b65ef5307e5e45@127.0.0.1:13307 ./gk_template_ext.frm --port=3434 --user=mysql --diagnostic
参考链接
https://www.cnblogs.com/ivictor/p/9302069.html
https://blog.csdn.net/wearegouest/article/details/79538618
https://www.longlong.asia/2015/11/21/mysql-restore-ibd.html
https://dev.mysql.com/doc/refman/5.6/en/innodb-troubleshooting-datadict.html