mysql socket指的是什么

网友投稿 833 2023-10-31

mysql socket指的是什么

这篇“mysql socket指的是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“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@localhost tmp]# ls -lhtotal 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 # 通过 -S 命令指定socket登录 [root@localhost ~]# mysql -uroot -pxxxx -S /data/mysql/tmp/mysql.sockmysql: [Warning] Using a password on the command line interface can be insecure. Welcome to the MySQL monitor.  Commandsend with; or \g. Your MySQL connection id is 12 Server version: 8.0.22 MySQL Community Server - GPL Copyright (c) 2000, 2020, *** and/or its affiliates. All rights reserved. *** is a registered trademark of *** Corporation and/or its affiliates. Other names may be trademarks of their respective owners. Typehelp; or \h for help. Type \c to clear the current input statement. mysql> status -------------- mysql  Ver 8.0.22 for Linux onx86_64 (MySQL CommunityServer - GPL) Connection id:          12 Current database: Current user:           root@localhost SSL:Not in use Current pager:          stdout Using outfile:           Usingdelimiter:        ; 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: 135Flush tables3  Open tables56  Queries per second avg0.005

复制

查看上述连接状态可知,MySQL 在本地可以通过 socket 方式连接。在本地登录时,如果 my.cnf 配置文件中的 [client] 部分没有指定 socket 文件路径,mysql 默认会去寻找 /tmp/mysql.sock ,所以如果 mysqld 服务启动的时候,生成的 socket 文件不是默认路径的话,登陆可能会报错(ERROR 2002 (HY000): Cant 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指的是什么”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注行业资讯频道。

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:mysql binlog指的是什么
下一篇:mysql之数据库常用脚本有哪些
相关文章