萬盛學電腦網

您现在的位置: 萬盛學電腦網 >> 作業系統 >  >> Linux 教學

Linux MySQL 服務啟動、停止、重啟完整指令集與常見故障排查

標準服務管理指令(System V init / systemd 通用)

啟動 MySQL

service mysqld start
# 或
/etc/init.d/mysqld start
# 或(舊版安全模式)
safe_mysqld &

停止 MySQL

service mysqld stop
# 或
/etc/init.d/mysqld stop
# 或
mysqladmin shutdown

重啟 MySQL

service mysqld restart
# 或
/etc/init.d/mysqld restart

systemd 系統(CentOS 7+/RHEL 7+/Ubuntu 16.04+)

systemctl start mysqld      # 啟動
systemctl stop mysqld       # 停止
systemctl restart mysqld    # 重啟
systemctl status mysqld     # 查看狀態
systemctl enable mysqld     # 開機自啟
systemctl disable mysqld    # 取消開機自啟

原始碼編譯安裝/自定義路徑啟動方式

假設安裝於 /usr/local/mysql:

# 使用 mysqld_safe 啟動(推薦)
/usr/local/mysql/bin/mysqld_safe --user=mysql &

# 或直接啟動 mysqld
/usr/local/mysql/bin/mysqld --user=mysql &

# 以 root 啟動(不建議生產環境)
/usr/local/mysql/bin/mysqld --user=root &

常見故障:ERROR 2002 - Can't connect to local MySQL server through socket

原因分析

  • MySQL 未啟動
  • Socket 檔案路徑不匹配(客戶端找 /tmp/mysql.sock,伺服器建立在 /var/lib/mysql/mysql.sock)
  • 權限問題導致無法建立 socket

解決方案

  1. 確認服務已啟動: ps aux | grep mysqld
  2. 建立軟連結統一路徑:
    ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
  3. 指定 socket 連線:
    mysql -u root -p -S /var/lib/mysql/mysql.sock
  4. 修改客戶端配置 /etc/my.cnf:
    [client]
    socket = /var/lib/mysql/mysql.sock
  5. 重設 root 密碼(若為首次啟動):
    /usr/local/mysql/bin/mysqladmin -u root -S /var/lib/mysql/mysql.sock password 'newpass'

啟動前檢查清單

  • df -h 確認磁碟空間充足
  • free -m 確認記憶體足夠
  • netstat -tlnp | grep 3306 確認端口未被佔用
  • cat /var/log/mysqld.log 查看錯誤日誌

生產環境建議

  • 使用系統包管理器安裝,獲得 systemd 整合與安全更新
  • 配置 systemd 服務單元管理自定義安裝路徑
  • 啟用 mysqladmin ping 或 mysqladmin status 健康檢查
  • 設定慢查詢日誌、錯誤日誌輪轉

熟悉多種啟動方式與 Socket 故障排查,能在 MySQL 服務異常時快速恢復業務。

copyright © 萬盛學電腦網 all rights reserved