1. 程式人生 > >MYSQL-重做系統恢復MYSQL過程

MYSQL-重做系統恢復MYSQL過程

inno apt b- 重做 最後一行 sql star 執行 server

記筆記是好習慣,記筆記是好習慣,記筆記是好習慣!

重要的事情說三遍。

說多了都是淚。第一次裝MYSQL時候就遇到了很多問題,當時解決了忘記記錄了。家裏硬盤滿了,於是買了個4T的硬盤重裝系統。重裝系統後開始了開發環境重裝。Anaconda3,pycharm,mongodb,pycharm... 到了mysql時候就遇到各種問題。

1、先把mysql-5.7.18-win32從H盤挪到D:\Program Files\mysql-5.7.18-win32。

2、建立配置文件D:\Program Files\mysql-5.7.18-win32\my.ini,內容為

[mysqld]
basedir=D:\Program Files\mysql-5.7.18-win32
datadir=D:\Program Files\mysql-5.7.18-win32\data
tmpdir=D:\Program Files\mysql-5.7.18-win32\MySqltemp
innodb_buffer_pool_size=64M
3、建立tmpdir。必須按照配置中的臨時目錄配置建立這個臨時目錄,不然後面啟動會報錯!!!

4、添加環境變量PATH=D:\Program Files\mysql-5.7.18-win32\bin

5、打開cmd,進入D:\Program Files\mysql-5.7.18-win32\bin,執行mysqld --initialize

6、把D:\Program Files\mysql-5.7.18-win32\data移到D:\Program Files\mysql-5.7.18-win32\data1,執行mysqld --install。成功後,就可以在系統的服務裏看到mysql開頭的服務了。

7、上一步成功後,把生成的data文件夾移為data2文件夾,把剛才的data1移到data。恢復原來數據,如果不備份啟動會報錯,data文件夾不為空。

8、執行net start mysql,報錯無法啟動,那麽嘗試mysqld --remove,反復執行幾次。

9、後面終於成功啟動了。卻連接成功後執行對原數據的一個select後服務瞬間停止。查看日誌D:\Program Files\mysql-5.7.18-win32\data\ZGC-20170506NQH.err 最後一行為:

2017-05-06T15:44:39.138589Z 3 [ERROR] InnoDB: Trying to access page number 1784129 in space 31, space name samp_db/dd_chaptername, which is outside the tablespace bounds. Byte offset 0, len 16384, i/o type read. If you get this error at mysqld startup, please check that your my.cnf matches the ibdata files that you have in the MySQL server.

多查了下,發現是日誌和數據不匹配。參看:https://dev.mysql.com/doc/refman/5.7/en/forcing-innodb-recovery.html

10、於是在my.ini中添加innodb_force_recovery = 6 重啟服務,再連進去查詢,終於恢復了!!!

特意寫了這篇日誌記錄下解決過程。

MYSQL-重做系統恢復MYSQL過程