Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Linux 系統教學 >> 關於 Linux

Linux 禁止 MySQL 開機自動啟動完整指南:Upstart 與 System V 相容模式雙重封鎖

編輯:關於 Linux

Ubuntu 透過 Upstart 管理服務,MySQL 安裝後預設開機自啟。單純修改 /etc/rc*.d/ 連結 (System V 相容層) 無效,必須修改 Upstart 設定檔 /etc/init/mysql.conf。本文提供雙重封鎖方案,確保 MySQL 完全不隨系統啟動。

MySQL 服務管理架構圖

核心概念:Upstart vs System V 相容層

  • Ubuntu 核心服務管理採用 Upstart (舊版) 或 systemd (新版),設定檔位於 /etc/init/
  • /etc/rc*.d/ 為 System V 相容層,update-rc.d 僅操作此層
  • 若 Upstart 設定檔存在 start on 條件,相容層設定會被覆蓋

完整封鎖步驟

第一層:清除 System V 相容層啟動連結

# 方法一:標準指令
sudo update-rc.d -f mysql remove

# 方法二:手動改名 (S→K)
# mv /etc/rc2.d/S20mysql /etc/rc2.d/K20mysql  (依實際編號調整)

# 方法三:使用圖形工具 bum (Boot-Up Manager)
sudo apt-get install bum
sudo bum

第二層:修改 Upstart 設定檔 (關鍵)

sudo vim /etc/init/mysql.conf

找到 start on 區塊:

start on (net-device-up
          and local-filesystems
          and runlevel [2345])
stop on runlevel [016]

修改為以下任一種:

策略修改內容效果
僅禁止 runlevel 2 (預設圖形介面) runlevel [345] 文字模式 (runlevel 3/4/5) 仍可啟動
完全禁止所有 runlevel runlevel [!0123456] 無任何 runlevel 符合,開機不啟動
註解整個 start on 區塊 # start on ... 移除所有啟動條件,最徹底

建議採用 完全禁止 或 註解 策略。

儲存並驗證

# 重新載入 Upstart 設定
sudo initctl reload-configuration

# 檢查服務狀態
sudo initctl list | grep mysql
# 應顯示 stop/waiting

# 重開機驗證
sudo reboot
systemctl status mysql  # 或 service mysql status
# 應為 inactive (dead)

systemd 版本 (Ubuntu 15.04+) 對應指令

# 禁止開機自啟
sudo systemctl disable mysql

# 立即停止
sudo systemctl stop mysql

# 檢查狀態
sudo systemctl status mysql
# 輸出應含 Loaded: loaded (/lib/systemd/system/mysql.service; disabled)

恢復自動啟動 (如需重新啟用)

# Upstart
sudo sed -i 's/^# start on/start on/' /etc/init/mysql.conf
sudo initctl reload-configuration

# systemd
sudo systemctl enable mysql

雙重封鎖策略確保 MySQL 在任何啟動管理機制下均不會自動啟動,適合資源受限環境、手動控管資料庫啟動時機的生產部署場景。

Copyright © Windows教程網 All Rights Reserved