Linux 下連接 MySQL 報 ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock',通常是服務未啟動、Socket 文件權限錯、數據目錄擁有者錯。標準修復三步走。
/etc/rc.d/init.d/mysqld status
# 或
systemctl status mysqld
# 若未運行 → 直接啟動
systemctl start mysqld
# 1. 停止服務
systemctl stop mysqld
# 2. 修正數據目錄擁有者(必須是 mysql:mysql)
chown -R mysql:mysql /var/lib/mysql
# 3. 啟動
systemctl start mysqld
# 設定 root 密碼
mysqladmin -u root password '123456'
# 登錄驗證
mysql -u root -p
# 輸入 123456
# Welcome to the MySQL monitor...
| 現象 | 原因 | 處理 |
|---|---|---|
| Socket 文件不存在 | 服務未啟動/數據目錄錯誤 | 檢查 my.cnf socket 路徑、datadir 權限 |
| Access denied for user 'root'@'localhost' | 密碼錯誤/權限表異常 | 參考 skip-grant-tables 重置密碼 |
| Can't connect to MySQL server on 'host' (111) | 遠程連接:bind-address/防火牆/賬號宿主 | my.cnf bind-address=0.0.0.0、開放 3306、GRANT ... @'%' |
mysql:mysqlsystemctl enable mysqldsocket 路徑與客戶端一致/var/lib/mysql 防誤刪權限修復 + 服務重啟 + 密碼初始化,解決 90% Linux MySQL 2002 錯誤。