共計(jì) 2393 個(gè)字符,預(yù)計(jì)需要花費(fèi) 6 分鐘才能閱讀完成。
這篇“mysql socket 指的是什么”文章的知識(shí)點(diǎn)大部分人都不太理解,所以丸趣 TV 小編給大家總結(jié)了以下內(nèi)容,內(nèi)容詳細(xì),步驟清晰,具有一定的借鑒價(jià)值,希望大家閱讀完這篇文章能有所收獲,下面我們一起來(lái)看看這篇“mysql socket 指的是什么”文章吧。
mysql socket 是指 Unix 套接字文件;在類 unix 平臺(tái),客戶端連接 MySQL 服務(wù)端的方式有兩種,分別是 TCP/IP 方式與 socket 套接字文件方式;Unix 套接字文件連接的速度比 TCP/IP 快,但是只能連接到同一臺(tái)計(jì)算機(jī)上的服務(wù)器使用。
.socket 文件介紹
socket 即 Unix 套接字文件,在類 unix 平臺(tái),客戶端連接 MySQL 服務(wù)端的方式有兩種,分別是 TCP/IP 方式與 socket 套接字文件方式。Unix 套接字文件連接的速度比 TCP/IP 快,但是只能連接到同一臺(tái)計(jì)算機(jī)上的服務(wù)器使用。
通過(guò)設(shè)置 socket 變量可配置套接字文件路徑及名稱,默認(rèn)值為 /tmp/mysql.sock (對(duì)于某些發(fā)行格式,目錄可能有所不同)。參考配置如下:
# my.cnf 配置文件
[mysqld]
socket = /data/mysql/tmp/mysql.sock
[client]
socket = /data/mysql/tmp/mysql.sock
# 查看對(duì)應(yīng)目錄下的 socket 文件
root@localhost tmp]# ls -lh
total 8.0K
srwxrwxrwx 1 mysql mysql 0 Jun 10 15:19 mysql.sock
-rw------- 1 mysql mysql 6 Jun 10 15:19 mysql.sock.lock
# 通過(guò) -S 命令指定 socket 登錄
[root@localhost ~]# mysql -uroot -pxxxx -S /data/mysql/tmp/mysql.sock
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 12
Server version: 8.0.22 MySQL Community Server - GPL
Copyright (c) 2000, 2020, 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 status
--------------
mysql Ver 8.0.22 for Linux on x86_64 (MySQL Community Server - GPL)
Connection id: 12
Current database:
Current user: root@localhost
SSL: Not in use
Current pager: stdout
Using outfile:
Using delimiter: ;
Server version: 8.0.22 MySQL Community Server - GPL
Protocol version: 10
Connection: Localhost via UNIX socket
Server characterset: utf8mb4
Db characterset: utf8mb4
Client characterset: utf8mb4
Conn. characterset: utf8mb4
UNIX socket: /data/mysql/tmp/mysql.sock
Binary data as: Hexadecimal
Uptime: 1 hour 27 min 31 sec
Threads: 3 Questions: 27 Slow queries: 0 Opens: 135 Flush tables: 3 Open tables: 56 Queries per second avg: 0.005
復(fù)制
查看上述連接狀態(tài)可知,MySQL 在本地可以通過(guò) socket 方式連接。在本地登錄時(shí),如果 my.cnf 配置文件中的 [client] 部分沒(méi)有指定 socket 文件路徑,mysql 默認(rèn)會(huì)去尋找 /tmp/mysql.sock,所以如果 mysqld 服務(wù)啟動(dòng)的時(shí)候,生成的 socket 文件不是默認(rèn)路徑的話,登陸可能會(huì)報(bào)錯(cuò)(ERROR 2002 (HY000): Can t connect to local MySQL server through socket /tmp/mysql.sock)。其實(shí) [mysqld] 部分及 [client] 部分都配置具體路徑可避免此問(wèn)題,也可以在 tmp 路徑下建立軟連接,如:ln -s /data/mysql/tmp/mysql.sock /tmp/mysql.sock。同樣的,socket 文件目錄權(quán)限要對(duì) mysql 系統(tǒng)用戶放開(kāi)。
以上就是關(guān)于“mysql socket 指的是什么”這篇文章的內(nèi)容,相信大家都有了一定的了解,希望丸趣 TV 小編分享的內(nèi)容對(duì)大家有幫助,若想了解更多相關(guān)的知識(shí)內(nèi)容,請(qǐng)關(guān)注丸趣 TV 行業(yè)資訊頻道。