mysql.sock這個文件有什麼用?mysql
鏈接localhost一般經過一個Unix域套接字文件進行,通常是/tmp/mysql.sock。若是套接字文件被刪除了或者路徑以及配置不對,本地客戶識別不到此文件就不能鏈接。
若是你由於丟失套接字文件而不能鏈接,你能夠簡單地經過重啓服務器從新建立獲得它,由於服務器在啓動時從新建立它。sql
出現ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2) 報錯這是因爲當使用host參數爲「localhost」鏈接Mysql服務時,會優先使用「sock文件」進行鏈接,而不是使用「IP:端口」進行鏈接,而mysql嘗試使用「sock文件」進行鏈接時,卻沒法獲取「sock文件」的位置。服務器
]# mysql -uroot -p Enter password: ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock' (2)
解決此報錯兩種方法:
一、能夠運行socket
]# find / -name mysql.sock /tmp/mysql.sock
查找mysql.sock文件路徑,而後經過下述命令登陸測試正常是能夠的ide
]# mysql -uroot -p -s /tmp/mysql.sock
二、此緣由是mysql.sock配置在 [client] 前,會報錯'/tmp/mysql.sock' (2),配置在 [client] 後,重啓 mysql服務正常便可,樣例:測試
[client] port=3306 socket=/tmp/mysql.sock
重啓MySQL後在mysql -uroot -p登陸便可。
配置後重啓正常
code