寶塔面板MySQL自動停止、無法啟動的原因與解決方案【2025最新】
本文有1260個文字,大小約為6KB,預計閱讀時間4分鐘
原文標題:寶塔面板MySQL自動停止、無法啟動的原因與解決方案【2025最新】
寶塔面板是一款簡單好用的Linux/Windows服務器運維管理面板,被外貿獨立站建站用戶廣泛用于配置服務器環境,包括:LAMP/LNMP、網站、數據庫、FTP、SSL等,這樣可以通過Web端輕松管理服務器。

在外貿建站過程中,有使用寶塔面板運維獨立服務器的用戶反饋會遇到出現“Error establishing a database connection”數據庫連接錯誤,導致網站無法正常訪問的情況。這種錯誤主要出現在騰訊云等一些輕量型服務器上,因為某些原因(比如:惡意攻擊、服務器配置較低等)導致某個時間節點出現了內存不足或者CPU占用100%,服務器負載過高而導致MySQL數據庫服務意外停止。經過WPPOP技術人員的耐心排查,我們發現,其服務器環境中的 MySQL 服務自動關閉,停止運行了。可在寶塔面板的【 軟件商店 – 已安裝 】的應用分類列表中查看 MySQL 運行狀態,如下圖所示:

解決方法 1:手動重啟 MySQL 服務
直接在寶塔面板的【 軟件商店 – 已安裝 】的應用分類列表中找到 MySQL 軟件,點擊右側對應的 設置 項,在彈出操作窗口中,點擊 啟動 ,重新打開 MySQL 服務,如下圖所示:

但是,這種方法治標不治本,無法保證后面不再出現 MySQL 服務自動停止的問題。
解決方法 2:開啟數據庫“守護進程”開關
在寶塔面板的【 數據庫 】中找到“高級設置”,點擊下拉打開 守護進程 開關,如下圖所示:

守護進程 可以在MySQL數據庫服務停止后自動啟動,保證MySQL服務一直運行。
解決方法 3:安裝寶塔面板里的 Linux工具箱
在寶塔面板的【 應用商店 】中搜索“Linux工具箱”,點擊 安裝 按鈕,如下圖所示:

安裝好 Linux工具箱 后,在 Linux工具箱 的彈窗設置中,找到 Swap/虛擬內存 設置項,根據使用的服務器配置來進行虛擬內存的設置,如下圖所示:

不管網站使用的服務器內存多大,都建議添加 Swap。
swap是Linux下的虛擬內存,設置適當的swap可增加服務器穩定性
建議swap容量在真實內存容量的1.5倍左右,若您的服務器內存大于4GB,可設1-2GB的固定值
swap文件默認保存在/www/swap,設置前請確保磁盤空間夠用
若您不需要swap,請將容量設為0
OVZ虛擬架構機器不可用此功能
Swap/虛擬內存 推薦值:
2G 和 2G 以下內存的服務器,建議設置成和物理內存相同容量的 SWAP;
2G 以上的內存的服務器,建議設置為 2G。如果網站程序特別耗內存,2G 內存以上的 Swap 也可以設置與內存相同容量。
解決方法 4:安裝 PHP 緩存加速擴展
出現“MySQL 服務自動關閉”問題的一大原因就是服務器過載,所以,可以優化服務器中的 PHP 和緩存環境來優化配置,從而,增加服務器的穩定性。
在寶塔面板的【 軟件商店 – 已安裝 】的應用分類列表中找到當前網站運行使用的 PHP 版本,點擊右側對應的 設置 項,在彈出操作窗口中,切換到 安裝擴展,在擴展列表中找到 opcache 和 memcached 并安裝,如下圖所示:

安裝好 opcache 和 memcached 之后,可以明顯地提升服務器運行效率,很大程度上降低服務器的負載,減少 CPU 和 內存的占用。
如果以上方法執行后,效果都不夠理想,那很可能就是你當前使用的服務器配置過低了,建議升級服務器配置,主要是CPU和內存。
解決方法 5:添加 MySQL 服務自動重啟的 Shell 腳本
在寶塔面板中的計劃任務中,添加 MySQL 數據庫自動重啟的 shell 腳本,定時自動重啟運行中的 MySQL 數據庫,緩減 MySQL 數據庫的壓力。
pgrep -x mysqld &> /dev/null
if [ $? -ne 0 ];then
bash /www/server/panel/script/rememory.sh
/etc/init.d/mysqld start
fi
把上面的 Shell 腳本,添加到下圖位置:

MySQL進程守護的執行周期不建議設置的過小,可以是1小時30分鐘;如果該腳本的執行周期時間設置的過短,當你在網站后臺更新發布文章或者升級網站程序時,可能會造成不必要的錯誤!
如果 MySQL 數據庫已經停止,通過添加下面的 shell 腳本自動檢測 MySQL 數據庫是否為停止狀態,如果檢測到 MySQL 數據庫停止,則自動重啟。相關 shell 腳本代碼如下:
#!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH pgrep -x mysqld /dev/null if [ $? -ne 0 ] echo At time:$(date) :MySQL is stop . /var/log/mysql_messages service mysqld start fi
把上面的 Shell 腳本,添加到下圖位置:

MySQL監控重啟的執行周期,可以設置為1分鐘檢測一次,也就當你 MySQL 數據庫停止后,1分鐘內就會自動重啟,確保網站可以正常訪問!
原文鏈接:https://www.wppop.com/how-to-fix-bt-mysql-auto-stop.html
本文來源:http://www.kyotomoriagedaisakusen.com/tutorials/425.html
版權聲明:本文為向前網絡工作室,未經站長允許不得轉載。

獲得更多外貿訂單