首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

Linux/Windows MySQL 服務啟動停止重啟完整指令速查:systemd、SysVinit、mysqld_safe 多種管理方式

     編輯:MySQL 資料庫相關知識

MySQL 服務管理命令全景表

Linux 現代系統 (systemd:CentOS 7+/RHEL 7+/Ubuntu 16.04+/Debian 8+)

# 服務名通常為 mysqld (官方 RPM) 或 mysql (Ubuntu/Debian 套件)
systemctl start mysqld      # 啟動
systemctl stop mysqld       # 停止
systemctl restart mysqld    # 重啟
systemctl status mysqld     # 狀態
systemctl enable mysqld     # 開機自啟
systemctl disable mysqld    # 取消開機自啟

# 查看服務名
systemctl list-units | grep -i mysql

Linux 傳統系統 (SysVinit:CentOS 6、舊版)

/etc/init.d/mysqld start
/etc/init.d/mysqld stop
/etc/init.d/mysqld restart
/etc/init.d/mysqld status

# 或 service 指令 (紅帽系支援)
service mysqld start
service mysqld stop
service mysqld restart
service mysqld status

Debian/Ubuntu 套件管理安裝 (SysVinit 風格服務腳本)

/etc/init.d/mysql start
/etc/init.d/mysql stop
/etc/init.d/mysql restart
/etc/init.d/mysql status

# service 指令通用
service mysql start
service mysql stop
service mysql restart
service mysql status

原始碼編譯/通用二進制安裝 (mysqld_safe / mysql.server)

# 啟動 (後台執行)
# 假設安裝路徑 /usr/local/mysql
/usr/local/mysql/bin/mysqld_safe --user=mysql &

# 或使用 mysql.server 腳本
/usr/local/mysql/support-files/mysql.server start

# 停止
/usr/local/mysql/bin/mysqladmin -u root -p shutdown

# 重啟 (停止後啟動)
/usr/local/mysql/bin/mysqladmin -u root -p shutdown
/usr/local/mysql/bin/mysqld_safe --user=mysql &

Windows 系統

# 命令提示字元 (需管理員權限)
net start mysql      # 啟動
net stop mysql       # 停止
# Windows 無直接 restart,需停止後啟動

# PowerShell
Start-Service mysql
Stop-Service mysql
Restart-Service mysql

# 服務管理器 (services.msc) 圖形介面操作

# 手動啟動 (除錯/前景模式)
"C:\Program Files\MySQL\MySQL Server 8.0\bin\mysqld" --console

強制終止 (緊急情況,慎用)

# Linux
killall mysql          # 發送 SIGTERM
killall -9 mysql       # 強制 SIGKILL (極度不推薦,易損壞資料)

# Windows
taskkill /F /IM mysqld.exe

警告:強制殺死進程會導致 InnoDB 崩潰恢復、資料頁損壞、雙寫緩衝不一致。僅在服務完全無響應、正常停止無效時作為最後手段,重啟後必須檢查錯誤日誌並驗證資料完整性。

啟動腳本與配置檔關鍵路徑

安裝方式配置檔啟動腳本PID 檔Socket錯誤日誌
官方 RPM (CentOS/RHEL) /etc/my.cnf /usr/lib/systemd/system/mysqld.service /var/run/mysqld/mysqld.pid /var/lib/mysql/mysql.sock /var/log/mysqld.log
Ubuntu/Debian 套件 /etc/mysql/mysql.conf.d/mysqld.cnf /etc/init.d/mysql /var/run/mysqld/mysqld.pid /var/run/mysqld/mysqld.sock /var/log/mysql/error.log
原始碼編譯 (prefix=/usr/local/mysql) /usr/local/mysql/my.cnf 或 /etc/my.cnf /usr/local/mysql/support-files/mysql.server /usr/local/mysql/var/hostname.pid /usr/local/mysql/var/mysql.sock /usr/local/mysql/var/hostname.err
Windows (MSI) C:\ProgramData\MySQL\MySQL Server 8.0\my.ini Windows Service: MySQL80 C:\ProgramData\MySQL\MySQL Server 8.0\Data\hostname.pid Named Pipe / TCP C:\ProgramData\MySQL\MySQL Server 8.0\Data\*.err

常見啟動失敗排查步驟

  1. 檢查錯誤日誌:tail -f /var/log/mysqld.log 或對應路徑
  2. 檢查配置檔語法:mysqld --help --verbose 2>&1 | head -20 (若報錯則配置有誤)
  3. 檢查資料目錄權限:ls -ld /var/lib/mysql 擁有者應為 mysql:mysql
  4. 檢查端口佔用:netstat -tlnp | grep 3306 / ss -tlnp | grep 3306
  5. 檢查磁碟空間:df -h /var/lib/mysql
  6. 檢查 SELinux/AppArmor:ausearch -m avc -ts recent / aa-status
  7. 前景模式除錯:mysqld --user=mysql --console 直接看輸出

跨平台統一管理建議

  • 生產環境**統一使用 systemd** 管理,納入基礎設施即代碼
  • Docker 部署:docker run -d --restart=unless-stopped --name mysql ... 由容器引擎管理生命週期
  • 編排系統:Kubernetes 用 StatefulSet + livenessProbe/readinessProbe
  • 監控整合:Prometheus mysqld_exporter + Grafana 儀表板,告警規則覆蓋服務狀態、連線數、慢查詢、磁碟空間

MySQL 服務管理命令雖因安裝方式、作業系統而異,但核心邏輯一致:**systemd 為現代標準、mysqld_safe 為通用備選、Windows 用服務管理器**。建立標準化運維手冊,記錄專案實際路徑與命令,配合自動化部署與監控,實現零觸運維。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved