目錄
一、回退重新安裝mysql
二、innodb模組重裝
三、備份
首頁 資料庫 mysql教程 mysql innodb異常怎麼處理

mysql innodb異常怎麼處理

Apr 17, 2023 pm 09:01 PM
mysql innodb

mysql innodb異常怎麼處理

一、回退重新安裝mysql

為避免再從其他地方匯入這個資料的麻煩,先對目前庫的資料庫檔案做了個備份(/var/lib/mysql/位置)。接下來將Percona server 5.7套件進行了卸載,重新安裝原先舊的5.1.71的套件,啟動mysql服務,提示Unknown/unsupported table type: innodb,無法正常啟動。

110509 12:04:27 InnoDB: Initializing buffer pool, size = 384.0M
110509 12:04:27 InnoDB: Completed initialization of buffer pool
InnoDB: Error: log file ./ib_logfile0 is of different size 0 5242880 bytes
InnoDB: than specified in the .cnf file 0 157286400 bytes!
110509 12:04:27 [ERROR] Plugin 'InnoDB' init function returned error.
110509 12:04:27 [ERROR] Plugin 'InnoDB' registration as a STORAGE ENGINE failed.
110509 12:04:27 [ERROR] Unknown/unsupported table type: innodb
110509 12:04:27 [ERROR] Aborting
110509 12:04:27 [Note] /usr/sbin/mysqld: Shutdown complete

刪除/var/lib/mysql/目錄,重新啟動資料庫服務,並初始化,發現正常,show engines能發現有innodb引擎。再將資料庫停掉,將先前備份的/var/lib/mysql/目錄的內容覆蓋目前位置的內容,重新啟動。又發現不能進行啟動,報錯內容和剛剛一樣。

/var/lib/mysql目錄內容的結構如下:

-rw-rw---- 1 mysql mysql 10485760 2月 26 18:10 ibdata1
-rw-rw---- 1 mysql mysql 5242880 2月 26 18:10 ib_logfile0
-rw-rw---- 1 mysql mysql 5242880 2月 26 17:20 ib_logfile1
drwx------ 2 mysql mysql 4096 2月 26 17:20 mysql
drwx------ 2 mysql mysql 4096 2月 26 17:24 wiki

wiki目錄是測試資料的函式庫,ibdata1文件為資料文件,ib開頭的兩個文件為日誌文件,mysql目錄下為系統函式庫相關的東西。再次使用初始化的數據,並將wiki目錄和ibdata1檔案覆蓋到/var/lib/mysql 目錄下,可以正常啟動,也可以正常登入。

二、innodb模組重裝

不過在透過mysqldump備份時,又提示unknow table engine “Innodb” 。登入後,查看目前所有的引擎類型,發現其中果然不存在innodb類型:

mysql innodb異常怎麼處理

#透過alter指令修改其中一個表格的類型為MyISAM ,發現仍然報錯。

mysql innodb異常怎麼處理

透過 find 找出發現/usr/lib64/mysql/plugin/目錄下有ha_innodb_plugin.so檔。印像中mysql5以後的版本支援線上外掛安裝 。透過下面查看確認,果然支援:

mysql innodb異常怎麼處理

使用以下指令載入時,發現不成功:

install plugin innodb soname 'ha_innodb.so';

三、備份

在/etc/my.cnf中增加如下配置:

plugin-load=innodb=ha_innodb_plugin.so
plugin_dir=/usr/lib64/mysql/plugin/
default-storage-engine=InnoDB

發現仍啟動失敗。查看mysql-error.log發現有以下內容:

InnoDB: Database page corruption on disk or a failed
InnoDB: file read of page 7.
InnoDB: You may have to recover from a backup.
InnoDB: It is also possible that your operating
InnoDB: system has corrupted its own file cache
InnoDB: and rebooting your computer removes the
InnoDB: error.
InnoDB: If the corrupt page is an index page
InnoDB: you can also try to fix the corruption
InnoDB: by dumping, dropping, and reimporting
InnoDB: the corrupt table. You can use CHECK
InnoDB: TABLE to scan your table for corruption.
InnoDB: See also http://dev.mysql.com/doc/refman/5.1/en/forcing-innodb-recovery.html

開啟forcing-innodb-recovery官方頁面,發現可以透過指定innodb_force_recovery參數,進行強制啟動和復原。在/etc/my.cnf中增加以下內容:

innodb_force_recovery=6

重新啟動成功了。透過mysqldump備份也沒有問題,將備份資料匯入其他主機發現也正常可以測試。

這下就好搞了,將mysql徹底刪除,重新安裝Percona server 5.7,安裝完後,建庫,還原數據,程式重新連接,一切OK。

以上是mysql innodb異常怎麼處理的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

MySQL查詢性能優化的策略 MySQL查詢性能優化的策略 Jul 13, 2025 am 01:45 AM

MySQL查詢性能優化需從核心點入手,包括合理使用索引、優化SQL語句、表結構設計與分區策略、利用緩存及監控工具。 1.合理使用索引:在常用查詢字段上建索引,避免全表掃描,注意組合索引順序,不低選擇性字段加索引,避免冗餘索引。 2.優化SQL查詢:避免SELECT*,不在WHERE中用函數,減少子查詢嵌套,優化分頁查詢方式。 3.表結構設計與分區:根據讀寫場景選擇範式或反範式,選用合適字段類型,定期清理數據,大表考慮水平分錶或按時間分區。 4.利用緩存與監控:使用Redis緩存減輕數據庫壓力,開啟慢查詢

為MySQL表中的列選擇適當的數據類型 為MySQL表中的列選擇適當的數據類型 Jul 15, 2025 am 02:25 AM

insetTingUpmysqltables,選擇theStherightDatatatPesisionCrucialForeffifeffifeffifeffificeFifeffifeFrifeFifeScalible

如何用PHP開發問答社區平台 PHP互動社區變現模式詳解 如何用PHP開發問答社區平台 PHP互動社區變現模式詳解 Jul 23, 2025 pm 07:21 PM

1.PHP開發問答社區首選Laravel MySQL Vue/React組合,因生態成熟、開發效率高;2.高性能需依賴緩存(Redis)、數據庫優化、CDN和異步隊列;3.安全性必須做好輸入過濾、CSRF防護、HTTPS、密碼加密及權限控制;4.變現可選廣告、會員訂閱、打賞、佣金、知識付費等模式,核心是匹配社區調性和用戶需求。

mysql公共表表達式(CTE)示例 mysql公共表表達式(CTE)示例 Jul 14, 2025 am 02:28 AM

CTE是MySQL中用於簡化複雜查詢的臨時結果集。它在當前查詢中可多次引用,提升代碼可讀性和維護性。例如,在orders表中查找每個用戶的最新訂單時,可通過CTE先獲取每個用戶的最新訂單日期,再與原表關聯獲取完整記錄。相比子查詢,CTE結構更清晰,邏輯更易調試。使用技巧包括明確別名、串聯多個CTE以及利用遞歸CTE處理樹形數據。掌握CTE能使SQL更優雅高效。

mysql臨時表與內存表 mysql臨時表與內存表 Jul 13, 2025 am 02:23 AM

臨時表是作用範圍有限的表,內存表是存儲方式不同的表。臨時表在當前會話中可見,連接斷開後自動刪除,可使用多種存儲引擎,適合保存中間結果、避免重複計算;1.臨時表支持索引,多個會話可創建同名表且互不影響;2.內存表使用MEMORY引擎,數據存儲在內存中,重啟丟失,適合緩存高頻訪問的小數據集;3.內存表支持哈希索引,不支持BLOB和TEXT類型,需注意內存佔用;4.臨時表生命週期限於當前會話,內存表為所有連接共享。選擇時應根據數據是否私有、是否需要高速訪問及能否容忍丟失來決定。

在MySQL中設置半同步複製 在MySQL中設置半同步複製 Jul 15, 2025 am 02:35 AM

MySQL半同步複製設置步驟如下:1.確認版本支持並加載插件;2.開啟並啟用半同步模式;3.檢查狀態和運行情況;4.注意超時設置、多從庫配置及主從切換處理。需確保MySQL5.5及以上版本,安裝rpl_semi_sync_master和rpl_semi_sync_slave插件,分別在主從庫啟用對應參數,並在my.cnf中配置自動加載,設置完成後重啟服務,通過SHOWSTATUS檢查狀態,合理調整超時時間並監控插件運行情況。

將MySQL部署自動化為代碼 將MySQL部署自動化為代碼 Jul 20, 2025 am 01:49 AM

要實現MySQL部署自動化,關鍵在於選用Terraform定義資源、Ansible管理配置、Git進行版本控制,並強化安全與權限管理。 1.使用Terraform定義MySQL實例,如AWSRDS的版本、類型、訪問控制等資源屬性;2.通過AnsiblePlaybook實現數據庫用戶創建、權限設置等細節配置;3.所有配置文件納入Git管理,支持變更追踪與協作開發;4.避免硬編碼敏感信息,使用Vault或AnsibleVault管理密碼,並設置訪問控制與最小權限原則。

列的mysql不正確的字符串值 列的mysql不正確的字符串值 Jul 15, 2025 am 02:40 AM

MySQL報錯“incorrectstringvalueforcolumn”通常是因為字段字符集不支持四字節字符如emoji。 1.錯誤原因:MySQL的utf8字符集僅支持三字節字符,無法存儲四字節的emoji;2.解決方法:將數據庫、表、字段及連接統一改為utf8mb4字符集;3.還需檢查:配置文件、臨時表、應用層編碼及客戶端驅動是否均支持utf8mb4;4.替代方案:若無需支持四字節字符,可在應用層過濾emoji等特殊字符。

See all articles