解決ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'方法及其原理


原文鏈接: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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM