問題簡介
1 數據庫5.0無法打開innodb的表,只能打開mysam表
2 數據庫5.0啟動異常,無法正常啟動
3 數據庫5.0崩潰,無法正常備份,無法正常導入導出
報錯提示
1 用mysql的時候出現1033-Incorrect information in file:“.\數據庫名\表名.frm”
2 InnoDB: Error: unable to create temporary file; errno:
3 InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes (本次故障未出現)
InnoDB: than specified in the .cnf file 0 67108864 bytes!
查找問題
1 通過第一個報錯觀察,只有frm的表,無法查詢,但是myisam表可以正常使用,推斷出mysql引擎可能有問題
2 mysql沒有正常啟動,只用了mysql myisam引擎啟動了,但是innodb引擎異常
3 查詢mysql引擎 show engines;show variables like '%storage_engine%';相關 可以看到innodb狀態為安裝未啟用disable
4 查詢什么原因導致innodb異常
5 通過第二個報錯,可以看出innodb表空間無法正常創建
6 查找innodb表空間位置,為C盤,C盤空間不是太多
7 修改配置文件innodb引擎臨時表空間位置 tmpdir="D:\mysqldata\" 不要再C盤 重新啟動mysql
8 修復后正常啟動mysql,可以正常查詢,但是無法正常提交相關,觀察配置文件,innodb_force_recovery 需要關閉(這個參數是用來強制修復innodb損壞數據的,再沒有備份的情況下不推薦使用)
解決問題
1 修改innodb臨時表空間位置
2 查詢innodb引擎是否正常
3 由於可能是磁盤空間滿導致的問題,所以以后所有臨時表空間不要放在C盤,實際上C盤空間並沒有滿,但是可能由於水位和釋放問題,導致mysql臨時表空間無法正常建立文件,有可能會導致日志和數據不一致等問題
4 修改配置文件臨時表空間位置 重新啟動
遇到新的問題
1 本次重啟,發現32位windows系統 啟動innodb buff 無法使用2G啟動,暫時調小1G啟動,解決釋放本機內存,重啟機器更換機器等等
2 InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 67108864 bytes!
原來是日志文件的大小與描述的不一致。
把log文件移走,再重啟mysql,問題解決
注意innodb_fast_shutdown不能為2 可以在mysql中用 show variables like '%innodb_fast_shutdown%';來查看 默認為1
3 因為沒有備份,所以導致需要更小心謹慎去操作,以后要注意異地備份