解决mysql.sock连接不上问题:Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2)
Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2)
-
知其所以然
??????這是個(gè)本人之前遇到過多次的問題,今天在實(shí)驗(yàn)室做數(shù)據(jù)庫測(cè)驗(yàn),沒帶充電器只好用實(shí)驗(yàn)室的舊主機(jī)通過遠(yuǎn)程連接云服務(wù)器上linux下安裝的數(shù)據(jù)庫,再次遇到。而本人有時(shí)會(huì)突然有強(qiáng)迫癥,花了大量時(shí)間來解決這個(gè)問題,但是測(cè)驗(yàn)只能延期完成了。
??????該錯(cuò)誤提示的意思:無法通過socket /tmp/MySQL.sock連接到本地MySQL服務(wù)器
??????該錯(cuò)誤會(huì)導(dǎo)致的問題:無法通過socket連接數(shù)據(jù)庫,有些同學(xué)例如我之前使用軟連接link的方式暫時(shí)解決了問題,但是沒有從根源的配置文件my.cnf上去修改,導(dǎo)致了數(shù)據(jù)庫重啟時(shí)軟連接失效,而重復(fù)多次出現(xiàn)該問題。 -
如果你只是想暫時(shí)登錄,用下面的方法即可
暫時(shí)登錄
1.使用TCP/IP登錄
??????使用TCP/IP登錄暫時(shí)登錄到數(shù)據(jù)庫,但是如果設(shè)置了外部地址登錄用戶權(quán)限,可能會(huì)被限制權(quán)限。
2.如果你知道服務(wù)器啟動(dòng)時(shí)創(chuàng)建sock的路徑,一般為/var/lib/mysql/mysql.sock(安裝目錄)與/tmp/mysql.sock,使用指定sock路徑登錄
mysql -u -root(用戶名) -p -s sock路徑3.設(shè)置軟連接,主要的思路是設(shè)置/var/lib/mysql/mysql.sock(安裝目錄)與/tmp/mysql.sock的軟連接。
??????因?yàn)樵跀?shù)據(jù)庫重啟即失效,不推薦,還不如用第二個(gè)方法。
修改my.cnf配置文件,解決根源問題
?????? 首先,mysql8.0.17版本默認(rèn)登錄時(shí)連接的mysql.sock文件路徑:
????????????/tmp/mysql.sock
??????(如果你不了解mysql的連接方式,文章后面有詳細(xì)解釋)
??????這時(shí)我們需要用vim命令將my.cnf配置中,mysqld服務(wù)器啟動(dòng)時(shí)創(chuàng)建的mysql.sock修改成與連接路徑匹配。
???????或者將mysql默認(rèn)登錄時(shí)連接的sock文件改為/var/lib/mysql/mysql.sock(安裝目錄),在my.cnf里面寫上[client]的相關(guān)配置,并將socket路徑寫在[client]下方的配置里,否則登陸時(shí),mysql只會(huì)去默認(rèn)的/tmp下尋找mysql.sock
mysql的連接方式有什么?
1. Socket(本地連接)
登錄本地?cái)?shù)據(jù)庫默認(rèn)方式是使用socket連接,即當(dāng)server和client在同一臺(tái)服務(wù)器上的時(shí)候,我們可以直接用mysql命令登陸。連接的代碼:
2. TCP/IP(協(xié)議連接)
通過協(xié)議連接mysql,mysql登陸的時(shí)候,指定參數(shù)-h,會(huì)使用tcp/ip的方式連接,如果沒有指定端口的話,默認(rèn)是使用3306端口。代碼為:
我們平時(shí)使用的數(shù)據(jù)庫管理工具如navicat,workbench等可以使用TCP/IP連接,這樣可以實(shí)現(xiàn)遠(yuǎn)程連接,當(dāng)然在本機(jī)上也可以使用TCP/IP協(xié)議并將主機(jī)地址改為localhost連接本地?cái)?shù)據(jù)庫,但是我認(rèn)為在使用本機(jī)端口還多使用了TCP/IP端口,這樣效率自然不如socket高。
總結(jié)
以上是生活随笔為你收集整理的解决mysql.sock连接不上问题:Can 't connect to local MySQL server through socket '/tmp/mysql.sock '(2)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: linux下数学公式的编辑器,如何利用开
- 下一篇: SQL创建数据库与写入数据的全过程