Fanly

Fanly

一个摸爬打滚于 IT 互联网的追梦人!

如何解決寶塔面板MySQL資料庫無法啟動的問題

如果你也使用宝塔面板,並且恰好遇到 MySQL 無法啟動的情況,那麼我猜你大概率是使用了寶塔面板中 MySQL 管理中的 “性能調整” 功能,因為子凡我已經在這裡栽跟頭好幾次了,今天就簡單的給大家分享一下解決辦法。

eff48a14d671310c348850bbd9aa721b_MySQL-8

寶塔面板 MySQL 資料庫無法啟動或重啟失敗的主要問題就是由於 query_cache_type、query_cache_size 參數導致,MySQL 5.6 預設關閉 Query Cache,但仍支持配置。MySQL 5.7 繼續支持 Query Cache,但預設值設為關閉狀態。MySQL 從 8.0.0 版本開始移除了 query_cache_type、query_cache_size 以及整個 Query Cache 功能。也就是說從 MySQL 8.0 起,Query Cache 被徹底廢棄。

所以如果你的 MySQL 數據版本為 8.x.x 及以上,並且使用寶塔面板的 MySQL 管理中的優化方案進行過調整切換,那麼大概率就是 MySQL 無法啟動的原因了,所以解決辦法就是將 query_cache_size 設置為 0、query_cache_type 相關的配置註釋掉。

ea98222f33bdd557a59cdb8c20b40214_MySQL-query_cache_size

首先通過性能調整將 query_cache_size 設置為 0,然後在配置修改中將 query_cache_type 前面加上井號註釋掉,其實刪除也可以,為了保險起見可以搜索查找一下 “query_cache” 開頭的都可以註釋掉。最後在服務裡面啟動大概率應該就可以了。

f071767661ae677d1b15656b5a3f2fcd_MySQL-query_cache_type

Query Cache 是一種用於緩存查詢結果的機制,可以提高讀取性能。但隨著資料庫的現代化發展和其他緩存策略(如應用層緩存、Redis、Memcached)的普及,Query Cache 的局限性逐漸顯現,Query Cache 的實現依賴全局鎖,每次寫操作會使緩存失效,導致並發性能下降;資料表的每次更新都會導致相關緩存被清除,頻繁更新的表可能讓 Query Cache 得不償失。

如果項目升級到 MySQL 8.0 或更高版本,並且原來依賴 Query Cache,可以考慮使用 RedisMemcached 或其他內存資料庫緩存查詢結果,或在代碼中管理緩存的更新和失效邏輯,添和優化加索引,使用適當的查詢重寫技術,以及在應用程序中保存特定的查詢結果到內存中,這些方法可以更好地適應現代資料庫的需求,同時避免 Query Cache 的弊端。

除非注明,否則均為泪雪博客原創文章,禁止任何形式轉載

本文鏈接:https://zhangzifan.com/bt-mysql-restart.html

載入中......
此文章數據所有權由區塊鏈加密技術和智能合約保障僅歸創作者所有。