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

MySQL 啟動、關閉與連接故障排查完整指南 (Linux/Windows)

     編輯:MySQL 資料庫相關知識

MySQL 啟動、關閉與連接故障排查完整指南

MySQL 服務的啟停方式在 Linux 與 Windows 平台差異較大,且套接字遺失、Root 密碼遺忘等常見故障讓初學者手足無措。本文系統梳理跨平台操作流程與故障恢復步驟,並附最佳實踐建議。

一、服務啟動與關閉

Linux 平台

# 建議:專用 mysql 用戶/組運行,避免 root 權限風險
groupadd mysql
useradd -g mysql mysql
chown -R mysql:mysql /usr/local/mysql /data/mysql

# 啟動 (推薦 mysqld_safe 守護進程)
cd /usr/local/mysql
bin/mysqld_safe --user=mysql &

# 或使用 systemd / SysVinit
systemctl start mysqld
# 或
service mysqld start
/etc/init.d/mysqld start

# 關閉
mysqladmin -u root -p shutdown
# 或
systemctl stop mysqld

開機自啟配置:編輯 /etc/my.cnf [mysqld] 區段加入 user=mysql,並將啟動腳本加入 chkconfig 或 systemctl enable。

Windows 平台

# 手動啟動 (控制台模式)
cd "C:\Program Files\MySQL\MySQL Server 8.0\bin"
mysqld --console

# 作為 Windows 服務安裝/移除 (需管理員權限)
mysqld --install MySQL80          # 服務名可自定
mysqld --remove MySQL80

# 服務啟停
net start MySQL80
net stop MySQL80

# 或使用 sc 命令
sc start MySQL80
sc stop MySQL80

二、連接故障排查

1. 套接字遺失 (/tmp/mysql.sock)

現象:Can't connect to local MySQL server through socket '/tmp/mysql.sock'

原因:mysql.sock 被誤刪、/tmp 定期清理、多實例衝突。

解決:

# 臨時方案:強制走 TCP/IP (127.0.0.1 ≠ localhost)
mysql -h 127.0.0.1 -u root -p
mysqladmin -h 127.0.0.1 -u root -p shutdown  # 關閉後重啟自動重建

# 根治:my.cnf 固定 socket 路徑避開 /tmp
[mysqld]
socket = /var/lib/mysql/mysql.sock
[client]
socket = /var/lib/mysql/mysql.sock

2. Root 密碼遺忘重置

# 1. 停止服務 (優雅關閉刷盤)
kill -TERM $(cat /var/run/mysqld/mysqld.pid)
# 若用 mysqld_safe 需先殺掉守護進程再殺 mysqld

# 2. 跳過權限表啟動
mysqld_safe --skip-grant-tables --skip-networking &

# 3. 無密碼登入並重置
mysql -u root
FLUSH PRIVILEGES;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPass123!';
# 或 5.7 以下
UPDATE mysql.user SET authentication_string=PASSWORD('NewPass123!') WHERE User='root' AND Host='localhost';
FLUSH PRIVILEGES;

# 4. 正常重啟
mysqladmin -u root -p shutdown
systemctl start mysqld

三、最佳實踐清單

  1. 專用用戶運行:Linux 必須用非 root 用戶 (mysql),數據目錄權限 750、屬主 mysql:mysql。
  2. 固定 Socket 路徑:避開 /tmp,配置 [mysqld] 與 [client] 同一路徑。
  3. 配置文件版本控制:my.cnf 納入 Git 管理,變更留痕。
  4. 監控啟動狀態:systemctl status mysqld、錯誤日誌 tail -f /var/log/mysqld.log。
  5. 定期演練密碼重置:納入應急預案,確保關鍵時刻 5 分鐘內恢復。

四、常用診斷命令速查

# 檢查進程
ps -ef | grep mysqld
# 檢查端口
netstat -tlnp | grep 3306
ss -tlnp | grep 3306
# 檢查 Socket
ls -l /var/lib/mysql/mysql.sock
# 測試連接
mysqladmin -u root -p ping
mysql -u root -p -e "SELECT VERSION();"
# 查看錯誤日誌
tail -100 /var/log/mysqld.log

掌握標準化啟停流程與故障恢復 SOP,是 DBA 與運維人員的基本功。建議將上述步驟製成操作手冊,新員工入職必考。

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