Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> 電腦軟體教學 >> 伺服器技術 >> 關於伺服器

解決 MySQL 啟動錯誤:ERROR 2002 Can't connect to local MySQL server through socket '/tmp/mysql.sock'

編輯:關於伺服器

錯誤現象

安裝 LAMP 環境時,MySQL 服務啟動失敗,終端顯示:

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

檢查發現 /tmp/mysql.sock 檔案確實不存在。

根本原因分析

MySQL 啟動腳本預期在 /tmp/mysql.sock 建立 Unix socket 檔供本地客戶端連線,但實際配置檔 /etc/my.cnf 中 [mysqld] 區段的 socket 參數指向錯誤路徑,或配置檔缺失導致預設值不匹配。許多網路教程只說「建立軟連結」或「修改權限」,治標不治本。

徹底解決方案:重建標準配置檔並初始化資料目錄

  1. 進入 MySQL 原始碼解壓目錄:
    cd mysql-<版本號>  # 例如 mysql-5.5.60
  2. 複製官方提供的中型配置範本覆蓋系統配置:
    cp support-files/my-medium.cnf /etc/my.cnf

    此範本已正確設定 socket=/tmp/mysql.sock、datadir、innodb 等關鍵參數。

  3. 初始化資料目錄與授權表(以 mysql 使用者身分):
    bin/mysql_install_db --user=mysql
  4. 以安全模式啟動 MySQL 服務(背景執行):
    bin/mysqld_safe --user=mysql &
  5. 驗證連線:
    bin/mysql -u root -p
    # 輸入密碼(初始無密碼直接 Enter)即可進入 MySQL Shell

關鍵點總結

  • 配置檔為核心: /etc/my.cnf 必須存在且 socket 路徑與客戶端預期一致。
  • 資料目錄初始化: mysql_install_db 建立 mysql 系統資料庫與 ibdata1 等檔案,缺少此步驟服務無法啟動。
  • 權限與擁有者: 全程使用 --user=mysql,確保資料目錄與 socket 檔擁有者正確,避免權限拒絕。
  • 避免臨時方案: 手動 touch /tmp/mysql.sock 或 ln -s 只能暫時繞過,服務重啟後失效。

後續建議

  • 將 mysqld_safe 加入系統服務(Systemd/OpenRC)實現開機自啟。
  • 設定 root 密碼:mysqladmin -u root password '新密碼'。
  • 調整 /etc/my.cnf 中 innodb_buffer_pool_size 等參數適應實體記憶體。
Copyright © Windows教程網 All Rights Reserved