mysql Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)

錯誤緣由:/var/lib/mysql目錄中socket文件不存在。
鏈接mysql服務器有兩種方式:tcp鏈接,經過socket文件鏈接。經過socket文件,啓動mysql服務,mysql服務會自動生成一個sock文件,生成的sock文件默認放在 --datadir=/var/lib/mysql,mysql默認從/var/lib/mysql目錄讀取sock文件。mysql

解決辦法:
一、看看/var/lib/mysql/mysql 有沒有mysql.sock文件
二、沒有mysql.sock,重啓mysql服務,看看有沒有。
三、沒有的話,ps aux|grep mysql|grep -v 'grep' 查看mysql服務生成的sock在哪一個目錄,看看這個目錄有沒有。
四、若是mysql服務生成在其餘目錄,解決辦法有:
方法1、修改mysql服務生成的目錄,在my.cnf 中[mysqld] socket
方法2、mysql從/var/lib/mysql/讀取sock文件,創建一個軟鏈接,或者copy過來
方法3、修改mysql讀取的目錄,在my.cnf 中[mysql] socket
方法4、啓動指定socket,mysql -uroot -p123456 --socket='/var/lib/mysql/mysql.sock'

注意:
一、經過socket,只能在本地機器上鍊接。
二、使用-hlocalhost就是通過socket,不通過網絡,經過netstat 看不到tcp鏈接,能夠認爲mysql與mysql.sock文件交互,向裏面寫數據,從裏面讀取數據。
三、使用-h127.0.0.1就是通過tcp,經過netstat 能夠看到鏈接。sql

相關文章
相關標籤/搜索