小編的世界 優質文選 資料
字體大小:
2020年8月26日 -
:
mysql創建表時ENGINE=InnoDB和MyISAM生成的數據文件是不一樣的
InnoDB生成.frm和.ibd兩個文件,直接複制到新的數據庫目錄,是找不到表的,
MyISAM生成.frm 和.MYD 還有.MYI三個文件,直接就複制就能用了。
要恢複.frm和.idb需要安裝工具。
1、mysql-utilities-1.6.5-winx64.msi
2、vcredist_x64.exe
3、phpstudy_pro 為本地測試用
4、notepad++ 編輯和替換很方便
下載、安裝。
安裝後,找到mysql-utilities 安裝的目錄
我們會用到mysqlfrm的命令,返回上層目錄,按住shift 右擊
配置mysql運行環境
把 .frm文件名提取出來,這裏我用命令提示符
在文件夾上按shift右擊,打開命令提示符
輸入:dir /t /b >1.txt
打開新生成的1.txt
用notepad++提取文件名
剪切或複制書簽行
粘貼到新的文檔
去掉擴展名備用,(可能要用三遍,保存好)
處理.frm轉換命令
mysqlfrm --server=root:root@localhost:3306 文件路徑\1.frm > 文件路徑\sql\1.sql --diagnostic --port=3307 --user=
1將被替換成表名
多條命令就好了,替換 文件路徑
全選複制,找到安裝的mysql工具的文件夾,命令符裏右擊
命令就自動執行了
生成了文件,打開看看
我們需要數據庫創建代碼已經生成
但一個表一個表的恢複比較麻煩,合成一個文件,再處理一下
還是命令提示符:copy *.sql 1.sql
打開1.sql
刪除多餘的注釋
刪除錯誤提示語句
行尾 加上 ROW_FORMAT=COMPACT;
複制表名,去phpmyadmin裏建一個數據庫
把處理好的語句粘貼進來
執行表結構就建好了
處理命令:alter table `1` discard tablespace;
執行生成的命令
執行成功,
找到數據文件夾
這裏已經有新的frm,把原有的.ibd文件張貼進來
生成命令:alter table `1` import tablespace;可以在先前的命令上直接替換
執行命令
OK,完成了看看成果吧