1. 程式人生 > >重灌作業系統-mysql資料庫還原

重灌作業系統-mysql資料庫還原

  • 背景

 由於電腦跑起來越來越慢,所以上面講硬碟換成ssd(固態硬碟),以增加讀寫速度。於是得重灌作業系統,心裡一萬個不願意。(因為不想裝那麼多的軟體)

  • 問題

晚上忙了幾個小時把一些軟體裝好了之後接下來是安裝mysql資料庫,擦,由於大意之前忘記備份了。導致本地資料都沒了。

  • mysql資料恢復

但是幸運的是我換了硬碟,以前的檔案都還在的,所以/mysql/data/還在,目的:講以前的mysql資料庫中的資料還原到現在的作業系統上面

  1. 安裝好mysql(這個不多說,都懂得)
  2. 找到你以前的系統盤(如C:)中的 \ProgramData\MySQL\MySQL Server 5.5\data\ , mysql所有的表結構都在這裡
  3. 講2中的檔案複製(注意不要複製ib_logfile0,ib_logfile1這兩個檔案)
  4. 講3中的檔案貼上到你現在系統盤(如C:)中的 C:\ProgramData\MySQL\MySQL Server 5.5\data\下面 (貼上的時候講mysql服務stop)
  5. 接下來就是講INNODB的資料檔案複製過來
  6. 在你安裝mysql的時候會引導你innodb檔案放置在哪裡,你就找到這個檔案,複製ibdata1 檔案,我的資料夾中只有這一個檔案,一般比較大。我的(H:\MySQL Datafiles\)
  7. 講6的檔案貼上到你新安裝mysql的innodb檔案位置 。我的(D:\ProgramData\mysql\),貼上好之後就可以了
  8. 啟動mysqld服務,完成
  • 反思

以後裝系統前切記:先備份資料庫檔案,尤其是系統預設盤下面的C:\ProgramData\MySQL\MySQL Server 5.5\data\的表結構檔案(ib_logfile0,ib_logfile1除外)和資料檔案ibdata1(路徑是你安裝mysql時候制定的,我現在的路徑是D:\ProgramData\mysql\)

ps: 開啟mysqld服務後,navicat登陸上去查詢出來的都不是亂碼,我設定了 mysql 的預設編碼為 utf-8 ; 但是當我用windows的dos去mysql -u -p的時候它查出的中文是亂碼。估計應該是客戶端dos的問題,只需執行        

mysql> set character_set_results='gbk';即可,只是每次都得執行一次,但是有修改mysql的編碼方法(不建議)。因為mysql上面的資料不是你一個人在用。

console的預設是 936(ANSI/OEM-簡體中文GBK),用dos的命令 chcp即可修改和檢視代號,但是我修改為utf-8( 代號為65001 )後沒有解決mysql顯示亂碼的問題。