MENU

mysql5.7数据恢复

September 20, 2019 • Read: 2890 • 常见报错

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

兼总条贯 知至知终

无标签
最后编辑于: September 24, 2019