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?排查與修復完整流程

編輯:關於 Linux

安裝 MySQL 後無法登入,常見原因包括:設定檔遺失、Socket 檔案不存在、殘留進程衝突、服務未正常啟動等。本文以 CentOS 為例,提供系統化的排查與修復步驟。

現象確認

嘗試登入時出現錯誤:

ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock'

或服務狀態顯示:

/etc/init.d/mysql status
ERROR! MySQL is running but PID file could not be found

修復步驟

1. 補齊設定檔

若 /etc/my.cnf 不存在,從範例目錄複製一份:

cp /usr/share/doc/MySQL-server-5.5.24/my-medium.cnf /etc/my.cnf

注意:版本號需與實際安裝版本對應;若找不到 my-medium.cnf,可用 my-default.cnf 替代。

2. 建立 Socket 檔案

手動建立缺失的 socket 檔:

touch /var/lib/mysql/mysql.sock
chown mysql:mysql /var/lib/mysql/mysql.sock

3. 清理殘留進程並重啟服務

# 查看 MySQL 進程
ps aux | grep mysql
# 強制終止所有 mysql 進程 (PID 替換為實際值)
kill -9 PID1 PID2 ...
# 重啟服務
/etc/init.d/mysql start

4. 驗證服務狀態

/etc/init.d/mysql status

應顯示 SUCCESS! MySQL running (PID: xxxx)。

核心原理解析

  • TCP vs Socket:MySQL 支援 TCP/IP 與 Unix Socket 兩種連線方式。本機連線預設走 Socket,若 socket 檔遺失或權限錯誤即無法連線;TCP 連線(-h 127.0.0.1)通常不受影響。
  • PID 檔遺失:多為先前異常關機或進程被強制殺掉導致,重啟服務通常能自動重建。

避坑指南:修改 my.cnf 後務必重啟服務生效;生產環境建議設定 bind-address = 0.0.0.0 並配置防火牆,而非依賴 Socket 單機連線。

Copyright © Windows教程網 All Rights Reserved