二級考試MySQL數據庫怎麼用?mysql拷貝數據庫庫文件,複製還原後顯示錶不存在怎麼辦

 

     問題環境,最近準備mysql考試,用的  **教育的題庫,做操作題的時候發現把題庫給的數據庫文件複製data目錄,能顯示錶,但是不能操作表

  1 查看mysql存放數據庫文件的目錄

 

 

2 將題庫給的數據庫文件複製到data目錄下面,記得複製文件的時候應該退出mysql控制檯,把MySQL服務關閉掉,複製之後,再開啓mysql服務,

 

   Ps 可以在 我的電腦 -> 管理 –> 服務和應用程序,找到MySQL服務,也可在cmd控制檯快速關閉和開啓,在Windows左下角點擊搜索輸入cmd然後,右擊選擇用管理員身份打開

     

 

   然後輸入,注意方框中是服務名稱,有可能你給我的不一樣,因爲MySQL的版本可能不一樣

 

 

   3 複製後發現有表卻不能操作表,顯示錶不存在,明明上面顯示有表呢

 

 

  4 但是我們去data目錄卻發現data目錄多了幾個文件

 

 

  5 錯誤提示文件 .err,前面是主機名,不同的主機文件名不一樣,但後綴是一樣的,,查看主機名,ipconfig/all

  

 

  6 我們用記事本打開,以err結尾的錯誤日誌文件,提示的錯誤,其實也給出你解決的辦法,提示說 innodb引擎不見了

 部分截圖

 

 

  7 查看當前數據庫的引擎

 

  

  8 發現默認的數據庫引擎是innodb,當你建立表時若不指明數據庫的引擎,那麼他的默認引擎就是InnoDB,而錯誤裏面提示了innodb不見了是什麼了,百度了一下說,InnoDB與ibdata1文件有關,再百度了一下ibdata1是什麼  http://blog.csdn.net/anljf/article/details/6653282

 

 

  9 對頭,複製的數據庫文件文件,裏面只是數據庫和表的結構,所示show的時候還是能看見的,但是select的時候就出問題了,因爲數據存儲在另外一個文件裏面,就是ibdata1,所以當你備份數據庫的時候不能只拷貝數據庫文件,還得把ibdata1這個文件拷貝上,而當你恢復數據庫的時候,也得把這兩個文件都複製在data目錄裏面,當提示的時候選擇替換掉原來的ibdata1文件

 

 

   Ps 非常重要的一點,作爲IT人員最重要的就是備份,備份,再備份,但是今天還是失蹄了,練習寫了一個小網頁,用的就是mysql,最近也比較忙,所以做題庫也就沒有去虛擬機裏面搞,就在物理機上面做,當我點擊替換的時候,瞬間就醒悟了,有點gg思密達的感覺,雖然不知道錯在哪裏了,但是有種不祥的預感,回頭去cmd控制檯,select一看,我原來創建的表全都不能操作了,欲哭無淚,因爲我們替換的ibdata1,文件是別人創建的表,保存的只是別人表的數據,並沒有保存我們自己的數據,所以無論怎樣,當要替換的時候,是不是應該把這個文件備份一下呢?

 

  11 知道怎麼解決了把,就是把ibdatadb1文件複製到data目錄替換,記得備份喲!!! 但是奇怪的是複製過去之後還是顯示不存在

 

 

  12 當然是因爲這三個文件了,這三個文件是在啓動mysql服務和登錄mysql的時候生成的,記錄了一些重要的配置和信息,所以啊得把三個文件刪掉,刪掉之前應該把MySQL服務關閉掉,可以在 我的電腦 -> 管理 –> 服務和應用程序,找到MySQL服務

 

 

  13 然後重新啓動,再操作 數據庫就可以了

 

  學習之路漫長!

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章