ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock'
錯誤資訊:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
出現問題原因:
有可能是 my.cnf 配置檔案中設定了 [mysqld] 的引數 socket ,而沒有設定[client]的引數socket
mysql.sock 檔案有什麼用:
mysql 支援 socket 和 TCP/IP 連線。那麼 mysql.sock 這個檔案有什麼用呢?連線localhost通常通過一個Unix域套接字檔案進行,一般是/tmp/mysql.sock。如果套接字檔案被刪除了,本地客戶就不能連線。/tmp 資料夾屬於臨時檔案,隨時可能被刪除。
1.TCP 連線(如果報錯 /tmp/mysql.sock,你可以嘗試這種方式連線)
mysql -uroot-h 127.0.0.1-p
2.socket 連線
mysql -uroot -p
解決方式:
新增 [client] 配置項,如下所示
配置前:(配置 [client] 前,會報錯'/tmp/mysql.sock' (2))
[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/var/lib/mysql/mysql.sock
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid
配置後:(配置 [client] 後,重啟 mysql服務)
[mysqld]
datadir=/usr/local/mysql/data
basedir=/usr/local/mysql
socket=/var/lib/mysql/mysql.sock(跟這個socket路徑一樣)
user=mysql
# Disabling symbolic-links is recommended to prevent assorted security risks
symbolic-links=0[mysqld_safe]
log-error=/var/log/mysqld.log
pid-file=/var/run/mysqld/mysqld.pid[client]
port=3306
socket=/var/lib/mysql/mysql.sock
轉自:ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'_Mysql_指令碼之家 (jb51.net)