通过frm和ibd批量恢复mysql

中科白癜风医院微信 https://m-mip.39.net/man/mipso_4572203.html
mysql创建表时ENGINE=InnoDB和MyISAM生成的数据文件是不一样的InnoDB生成.frm和.ibd两个文件,直接复制到新的数据库目录,是找不到表的,MyISAM生成.frm和.MYD还有.MYI三个文件,直接就复制就能用了。要恢复.frm和.idb需要安装工具。1、mysql-utilities-1.6.5-winx64.msi2、vcredist_x64.exe3、phpstudy_pro为本地测试用4、notepad++编辑和替换很方便下载、安装。安装后,找到mysql-utilities安装的目录我们会用到mysqlfrm的命令,返回上层目录,按住shift右击配置mysql运行环境把.frm文件名提取出来,这里我用命令提示符在文件夹上按shift右击,打开命令提示符输入:dir/t/b1.txt打开新生成的1.txt用notepad++提取文件名剪切或复制书签行粘贴到新的文档去掉扩展名备用,(可能要用三遍,保存好)处理.frm转换命令mysqlfrm--server=root:root

localhost:文件路径\\\1.frm文件路径\\sql\\\1.sql--diagnostic--port=--user=\1将被替换成表名多条命令就好了,替换文件路径全选复制,找到安装的mysql工具的文件夹,命令符里右击命令就自动执行了生成了文件,打开看看我们需要数据库创建代码已经生成但一个表一个表的恢复比较麻烦,合成一个文件,再处理一下还是命令提示符:copy*.sql1.sql打开1.sql删除多余的注释删除错误提示语句行尾加上ROW_FORMAT=COMPACT;复制表名,去phpmyadmin里建一个数据库把处理好的语句粘贴进来执行表结构就建好了处理命令:altertable`\1`discardtablespace;执行生成的命令执行成功,找到数据文件夹这里已经有新的frm,把原有的.ibd文件张贴进来生成命令:altertable`\1`importtablespace;可以在先前的命令上直接替换执行命令OK,完成了看看成果吧


转载请注明:http://www.aierlanlan.com/cyrz/7299.html