“mysql.sock”是mysql的套接字文件,是mysql的主機(jī)和客戶機(jī)在同一host上的時候,使用unix socket做為通訊協(xié)議的載體。在UNIX系列系統(tǒng)下本地連接MySQL可以采用TCP連接和UNIX域套接字兩種方式;其中UNIX域套接字方式需要一個套接字文件,可用“show variables like ‘socket’G;”命令來查看本地socket文件位置。
本教程操作環(huán)境:linux7.3系統(tǒng)、mysql8版本、Dell G3電腦。
“mysql.sock”是mysql的套接字文件。
在UNIX系統(tǒng)下本地連接MySQL可以采用UNIX域套接字方式,這種方式需要一個套接字文件
套接字文件可由參數(shù)socket控制,可使用以下命令查看文件的位置:
show?variables?like?'socket'G;
mysql.sock是mysql的主機(jī)和客戶機(jī)在同一host上的時候,使用unix domain socket做為通訊協(xié)議的載體,它比tcp快。
MySQL有兩種主要的連接方式:
(1)TCP/IP?
(2)socket?
常用的還是TCP連接:
[root@mysql8?data]#?mysql?-h?192.168.103.67?-uroot?-p Enter?password:? Welcome?to?the?MySQL?monitor.??Commands?end?with?;?or?g. Your?MySQL?connection?id?is?14 Server?version:?8.0.15?MySQL?Community?Server?-?GPL Copyright?(c)?2000,?2019,?Oracle?and/or?its?affiliates.?All?rights?reserved. Oracle?is?a?registered?trademark?of?Oracle?Corporation?and/or?its affiliates.?Other?names?may?be?trademarks?of?their?respective owners. Type?'help;'?or?'h'?for?help.?Type?'c'?to?clear?the?current?input?statement. mysql>
另外的一種方式就是這種unix socket的連接。在速度上比用tcp的方式更快,但只適用于mysql和應(yīng)用同在一臺PC上,依靠本地的.sock文件。如果不在同一臺PC上,就沒有辦法連接了。
對mysql.sock來說,其作用是程序與MySQL Server處于同一臺機(jī)器,發(fā)起本地連接時可用。?
例如你無須定義連接host的具體IP得,只要為空或localhost就可以。?
在此種情況下,即使你改變MySQLl的外部port也是一樣可能正常連接。?
因為你在my.ini中或my.cnf中改變端口后,mysql.sock是隨每一次 MySQL Server啟動生成的。已經(jīng)根據(jù)你在更改完my.cnf后重啟mysql時重新生成了一次,信息已跟著變更。
那么對于外部連接,必須是要變更port才能連接的。?
Linux下安裝MySQL連接的時候經(jīng)?;靥崾菊f找不到mysql.sock文件,解決辦法很簡單:?
如果是新安裝的MySQL,提示找不到文件,就搜索下,指定正確的位置。?
如果mysql.sock文件誤刪的話,就需要重啟MySQL服務(wù),如果重啟成功的話會在datadir目錄下面生成mysql.sock 到時候指定即可。
如果還不行就選擇用TCP連接方式連接就行了,其實windows下還支持管道連接方式。
【相關(guān)推薦:mysql視頻教程】