ERROR 2002 (HY000): Can't connect to local MySQL

ERROR 2002 (HY000): Can't connect to local MySQL server through socket /tmp/mysql.sock
是因爲不能通過socket文件連接mysql服務器,先說解決方案,有兩種:

1、執行 sudo ln -s /var/lib/mysql/mysql.sock /tmp/mysql.sock
2、將連接mysql的語句改成 mysql -h 127.0.0.1 -u root -p

再來分析爲什麼出現這種錯誤以及這麼解決的原因:

mysql使用unix socket或者tcp來連接數據庫進行通訊,默認不加 -h選項時使用的就是localhost即unixsocket,此時會通過/tmp/mysql.sock來通訊,但是在配置文件中默認生成的socket文件是在/var/lib/mysql/mysql.sock(不同安裝可能不同,建議查看/etc/my.cnf確認),所以要想mysql使用這個文件通訊,最簡單的方法就是建立軟鏈接,一勞永逸,此爲方法一

方法二就是強制mysql使用tcp通訊,因爲127.0.0.1對於mysql來說走的是tcp協議而非unixsocket,這種方法的弊端就是每次都要指明本地地址127.0.0.1

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章