在linux下面使用mysql,由于一開始建庫的時候沒有做好mysql問價的配置,結果導致所有的表使用一個表空間,導致ibdata1文件在不到半年時間里面變為30G直接導致mysql服務無法啟動,應該在/etc/my.cnf文件的[mysqld]里面添加 innodb_file_per_table=1即mysql的表使用單獨的表空間。
innodb_file_per_table=1
innodb_file_per_table=0
值為1時表示使用單獨的表空間,值為0是表示使用共享的表空間。
由于樓主在發現這個問題的時候mysql服務已經起不起來了,所以在配置文件里面添加了innodb_force_recovery=6命令。然后啟動起來mysql服務,后來備份了數據庫,然后從新建庫,現在ibdata1文件只有10幾M。
## innodb_force_recovery
## 可以設置為6個非零值:1~6。大的數字包含了前面所有小數字的影響,具體情況如下。
#1(SRV_FORCE_IGNORE_CORRUPT):忽略檢查到的corrupt頁。
#2(SRV_FORCE_NO_BACKGROUND):阻止主線程的運行,如主線程需要執行full purge操作,會導致crash。
#3(SRV_FORCE_NO_TRX_UNDO):不執行事務回滾操作。
#4(SRV_FORCE_NO_IBUF_MERGE):不執行插入緩沖的合并操作。
#5(SRV_FORCE_NO_UNDO_LOG_SCAN):不查看撤銷日志(Undo Log),InnoDB存儲引擎會將未提交的事務視為已提交。
#6(SRV_FORCE_NO_LOG_REDO):不執行前滾的操作
聲明:本網頁內容旨在傳播知識,若有侵權等問題請及時與本網聯系,我們將在第一時間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com