1. 程式人生 > >mysql1033錯誤 InnoDB臨時表空間報錯

mysql1033錯誤 InnoDB臨時表空間報錯

問題簡介

1 資料庫5.0無法開啟innodb的表,只能開啟mysam表

2 資料庫5.0啟動異常,無法正常啟動

3 資料庫5.0崩潰,無法正常備份,無法正常匯入匯出

報錯提示

用mysql的時候出現1033-Incorrect information in file:“.\資料庫名\表名.frm”

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  因為沒有備份,所以導致需要更小心謹慎去操作,以後要注意異地備份