萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 程式設計 >  >> 資料庫 >> MySQL 教學

Linux/Windows 下 MySQL 服務啟動、停止、重啟命令大全

MySQL 服務管理是運維基礎技能。本文整理 Linux(Systemd、SysVinit、mysqld_safe)與 Windows(服務管理、命令列、圖形介面)下的所有啟停重方式,並補充系統服務註冊與開機自啟配置。

Linux 系統

1. Systemd(CentOS 7+/RHEL 7+/Ubuntu 16.04+)

# 啟動
sudo systemctl start mysqld
# 或
sudo systemctl start mysql

# 停止
sudo systemctl stop mysqld

# 重啟
sudo systemctl restart mysqld

# 狀態檢查
sudo systemctl status mysqld

# 開機自啟
sudo systemctl enable mysqld

# 禁用開機自啟
sudo systemctl disable mysqld

2. SysVinit 傳統腳本(CentOS 6、舊版 Ubuntu)

# service 命令
sudo service mysqld start
sudo service mysqld stop
sudo service mysqld restart
sudo service mysqld status

# 或直接呼叫 init.d 腳本
sudo /etc/init.d/mysqld start
sudo /etc/init.d/mysqld stop
sudo /etc/init.d/mysqld restart

3. mysqld_safe 手動啟動(調試/緊急恢復)

# 前台安全模式啟動(會自動重啟崩潰進程)
sudo mysqld_safe --user=mysql &

# 跳過權限表啟動(重設 root 密碼時用)
sudo mysqld_safe --skip-grant-tables --user=mysql &

4. mysqladmin 關閉服務

# 需要有效帳號密碼
mysqladmin -u root -p shutdown

5. 開機自啟註冊(傳統方式)

# CentOS/RHEL
cp /usr/share/mysql/mysql.server /etc/init.d/mysqld
chmod +x /etc/init.d/mysqld
chkconfig --add mysqld
chkconfig mysqld on

# Ubuntu/Debian
update-rc.d mysql defaults

Windows 系統

1. 服務管理器(services.msc)

  • Win+R → services.msc → 找到 MySQL / MySQL80 → 右鍵「啟動/停止/重新啟動」

2. 命令列(需管理員權限 CMD/PowerShell)

# 啟動
net start mysql
net start MySQL80

# 停止
net stop mysql

# 重啟
net stop mysql && net start mysql

# sc 命令(更底層)
sc start mysql
sc stop mysql

3. 安裝目錄 bin 下直接執行

cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"

# 啟動(前台,關閉視窗即停止)
mysqld --console

# 安全模式啟動(後台)
mysqld_safe --console &

# 關閉
mysqladmin -u root -p shutdown

4. 註冊/移除 Windows 服務

# 以管理員身份執行
# 註冊服務(安裝時通常自動完成)
mysqld --install MySQL80 --defaults-file="C:\ProgramData\MySQL\MySQL Server 8.0\my.ini"

# 移除服務
sc delete MySQL80
# 或
mysqld --remove MySQL80

常見問題排查

現象可能原因排查步驟
啟動失敗,無錯誤日誌權限、配置檔路徑、端口佔用檢查 mysqld --console 前台輸出;netstat -an | findstr 3306
Can't connect to MySQL server on 'localhost'Socket 路徑不匹配、服務未啟動改用 127.0.0.1;檢查 my.cnf socket 參數;建立軟連結
InnoDB: Unable to lock ./ibdata1另一實例正在運行、殘留進程ps aux | grep mysql → kill -9 → 刪除 .pid 檔
Access denied for user 'root'@'localhost'密碼錯誤、權限表損壞用 --skip-grant-tables 重設密碼

最佳實踐建議

  • 生產環境**統一使用 systemd/service 管理**,避免手動 mysqld_safe 導致進程孤兒。
  • 配置檔 my.cnf 中設定 pid-file、socket、datadir 絕對路徑,防止多實例衝突。
  • 重啟前執行 mysqladmin -u root -p status 確認連線正常。
  • 重要操作前備份 ibdata1、ib_logfile*、.frm/.ibd 檔案。
copyright © 萬盛學電腦網 all rights reserved