原文鏈接:https://blog.csdn.net/weixin_43423781/article/details/105396230
錯誤信息:
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
————————————————
版權聲明:本文為CSDN博主「AbigailCui」的原創文章,遵循CC 4.0 BY-SA版權協議,轉載請附上原文出處鏈接及本聲明。
原文鏈接:https://blog.csdn.net/weixin_43423781/article/details/105396230