用复制mysql/data 文件夹 下面的数据库的形式来复制数据库出现的问题
用復制mysql/data 文件夾 下面的數據庫的形式來復制數據庫出現的問題
?
提示找不到表,我去看了一下,丟失了很多個表;
問題:
直接拷貝data下的數據庫數據進行備份 , 發現部分數據表不見了。
?
原因 :
以表“Table”為例: 如類型是MyISAM,?數據文件則以”Table.frm”,”Table.MYD”,”Table.MYI”三個文件存儲于”/data/databasename/”目錄中. 如類型是InnoDB,?數據文件則存儲在”/data/″中的ibdata1文件中(一般情況),結構文件存在于Table.frm中. MySQL的數據庫文件直接復制便可以使用,但是那是指“MyISAM”類型的表。 而使用MySQL-Front直接創建表,默認是“InnoDB”類型,這種類型的一個表在磁盤上只對應一個“*.frm”文件,不像MyISAM那樣還“*.MYD,*.MYI”文件。 MyISAM類型的表直接拷到另一個數據庫就可以直接使用,但是InnoDB類型的表卻不行。
?
解決方法就是:
同時拷貝innodb數據庫表“*.frm”文件和innodb數據“ibdata1”文件到合適的位置。啟動MySQL的Windows服務 由于MySQL這樣數據混雜的形式,?往往很容易讓使用者在備份時忘記了備份InnoDB,?從而導致了上述錯誤。
如果還是有問題,停止mysql服務,將目錄下的ib_logfile*文件全部刪除掉,重新啟動mysql服務。
?
總結:
1,在進行mysql數據庫備份的或遷移的時候,盡量備份完成所需要的數據;
2,如果直接拷貝原有數據庫文件"*.frm"、"*.MYD"、"*.MYI"等文件時候,如果原數據庫引擎是InnoDB,切記還需拷貝ibdata1文件
3,備份數據庫的時候,最好是用相關的工具進行備份或是導出sql文件,以免浪費時間在數據庫恢復上
4,msyql版本或是備份工具的版本不同,也可能引起數據恢復有問題。
posted on 2013-07-10 17:42 方維二次開發 閱讀(...) 評論(...) 編輯 收藏轉載于:https://www.cnblogs.com/wangtongphp/p/3182566.html
創作挑戰賽新人創作獎勵來咯,堅持創作打卡瓜分現金大獎總結
以上是生活随笔為你收集整理的用复制mysql/data 文件夹 下面的数据库的形式来复制数据库出现的问题的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: jquery判断元素是否包含某class
- 下一篇: linux cmake编译源码,linu