mysql?sock文件存儲了什么信息
mysql.sock到底存儲了什么東西?
mysql.sock
作為mysql
的套接字一般用于本地連接數(shù)據(jù)庫,在速度上優(yōu)于TCP/IP
連接。一般放置在/tmp/mysql.sock
目錄下,我們先查看下它的內容:
[root@ tmp]# ll -i | grep mysql 85 srwxrwxrwx 1 mysql mysql 0 Apr 18 15:03 mysql.sock
可以看到它的內容大小為0,即沒有存儲任何的內容,此時我們通過mysql -uroot -p
來訪問(即默認的-h localhost
)可以訪問成功數(shù)據(jù)庫。
但當我們新建一個相似的mysql.sock
的時候,卻無法替代原有的空文件:
mv mysql.sock mysql.sock.bak # 創(chuàng)建新的mysql socket文件 mksock mysql.sock chown mysql:mysql mysql.sock chmod 777 mysql.sock # 展示對比兩個mysql.sock [root@ tmp]# ll -i | grep mysql 85 srwxrwxrwx 1 mysql mysql 0 Apr 18 15:03 mysql.sock.bak 37 srwxrwxrwx 1 mysql mysql 0 Aug 20 20:35 mysql.sock
再次訪問本地數(shù)據(jù)庫:
[root@ tmp]# mysql -uroot -p -hlocalhost ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
兩者內容除了inode
號不一樣外,完全一樣,但卻不能使用mysql
訪問本地數(shù)據(jù)庫了,新的socket
為什么不能代替原有的socket
文件,這個文件到底存儲了什么,又是怎么跟數(shù)據(jù)庫互相認證的?
思考良久,有了自己的解釋,但由于沒有看linux對socket的具體設計和實現(xiàn)代碼,不一定正確,詳情查看:
http://www.dbjr.com.cn/article/255511.htm
想要看具體實現(xiàn)的可以參考linux源碼:
https://man7.org/linux/man-pages/man7/socket.7.html
以上就是mysql sock文件存儲了什么信息的詳細內容,更多關于mysql sock文件存儲信息的資料請關注腳本之家其它相關文章!
相關文章
淺談MySQL數(shù)據(jù)庫中日期中包含零值的問題
下面小編就為大家?guī)硪黄獪\談MySQL數(shù)據(jù)庫中日期中包含零值的問題。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-03-03ubuntu mysql 5.6版本的刪除/安裝/編碼配置文件配置
這篇文章主要介紹了ubuntu mysql 5.6版本的刪除,安裝,編碼配置文件配置,需要的朋友可以參考下2017-06-06詳解MySQL數(shù)據(jù)庫優(yōu)化的八種方式(經(jīng)典必看)
關于數(shù)據(jù)庫優(yōu)化,網(wǎng)上有不少資料和方法,但是不少質量參差不齊,有些總結的不夠到位,內容冗雜。今天給大家分享一篇文章關于mysql數(shù)據(jù)庫優(yōu)化的八種方式,非常經(jīng)典,需要的的朋友參考下2017-03-03深入mysql "ON DUPLICATE KEY UPDATE" 語法的分析
本篇文章是對mysql "ON DUPLICATE KEY UPDATE"語法進行了詳細的分析介紹,需要的朋友參考下2013-06-06