这篇“mysql socket指的是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“mysql socket指的是什么”文章吧。

mysql socket是指Unix套接字文件;在类unix平台,客户端连接MySQL服务端的方式有两种,分别是TCP/IP方式与socket套接字文件方式;Unix套接字文件连接的速度比TCP/IP快,但是只能连接到同一台计算机上的服务器使用。

.socket文件介绍

socket 即 Unix 套接字文件,在类 unix 平台,客户端连接 MySQL 服务端的方式有两种,分别是 TCP/IP 方式与 socket 套接字文件方式。Unix 套接字文件连接的速度比 TCP/IP 快,但是只能连接到同一台计算机上的服务器使用。

通过设置 socket 变量可配置套接字文件路径及名称,默认值为 /tmp/mysql.sock (对于某些发行格式,目录可能有所不同)。参考配置如下:

#my.cnf配置文件[mysqld]socket=/data/mysql/tmp/mysql.sock[client]socket=/data/mysql/tmp/mysql.sock#查看对应目录下的socket文件root@localhosttmp]#ls-lhtotal8.0Ksrwxrwxrwx1mysqlmysql0Jun1015:19mysql.sock-rw-------1mysqlmysql6Jun1015:19mysql.sock.lock#通过-S命令指定socket登录[root@localhost~]#mysql-uroot-pxxxx-S/data/mysql/tmp/mysql.sockmysql:[Warning]Usingapasswordonthecommandlineinterfacecanbeinsecure.WelcometotheMySQLmonitor.Commandsendwith;or\g.YourMySQLconnectionidis12Serverversion:8.0.22MySQLCommunityServer-GPLCopyright(c)2000,2020,Oracleand/oritsaffiliates.Allrightsreserved.OracleisaregisteredtrademarkofOracleCorporationand/oritsaffiliates.Othernamesmaybetrademarksoftheirrespectiveowners.Type'help;'or'\h'forhelp.Type'\c'toclearthecurrentinputstatement.mysql>status--------------mysqlVer8.0.22forLinuxonx86_64(MySQLCommunityServer-GPL)Connectionid:12Currentdatabase:Currentuser:root@localhostSSL:NotinuseCurrentpager:stdoutUsingoutfile:''Usingdelimiter:;Serverversion:8.0.22MySQLCommunityServer-GPLProtocolversion:10Connection:LocalhostviaUNIXsocketServercharacterset:utf8mb4Dbcharacterset:utf8mb4Clientcharacterset:utf8mb4Conn.characterset:utf8mb4UNIXsocket:/data/mysql/tmp/mysql.sockBinarydataas:HexadecimalUptime:1hour27min31secThreads:3Questions:27Slowqueries:0Opens:135Flushtables:3Opentables:56Queriespersecondavg:0.005

复制

查看上述连接状态可知,MySQL 在本地可以通过 socket 方式连接。在本地登录时,如果 my.cnf 配置文件中的 [client] 部分没有指定 socket 文件路径,mysql 默认会去寻找 /tmp/mysql.sock ,所以如果 mysqld 服务启动的时候,生成的 socket 文件不是默认路径的话,登陆可能会报错(ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock')。其实 [mysqld] 部分及 [client] 部分都配置具体路径可避免此问题,也可以在 tmp 路径下建立软连接,如:ln -s /data/mysql/tmp/mysql.sock /tmp/mysql.sock 。同样的,socket 文件目录权限要对 mysql 系统用户放开。

以上就是关于“mysql socket指的是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注亿速云行业资讯频道。