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

本教程操作环境:linux5.9.8系统、mysql8版本、Dell G3电脑。
mysql socket是什么?
.socket文件介绍
socket 即 Unix 套接字文件,在类 unix 平台,客户端连接 MySQL 服务端的方式有两种,分别是 TCP/IP 方式与 socket 套接字文件方式。Unix 套接字文件连接的速度比 TCP/IP 快,但是只能连接到同一台计算机上的服务器使用。
通过设置 socket 变量可配置套接字文件路径及名称,默认值为 /tmp/mysql.sock (对于某些发行格式,目录可能有所不同)。参考配置如下:
Layx是一款网页弹窗Javript插件
Layx 是一款网页弹窗Javript插件,她将助力于互联网Web开发,提供优质的弹窗体验
32 查看详情
# my.cnf 配置文件[mysqld]socket = /data/mysql/tmp/mysql.sock[client]socket = /data/mysql/tmp/mysql.sock# 查看对应目录下的socket文件root@localhost tmp]# ls -lhtotal 8.0Ksrwxrwxrwx 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. Commands end with ; or g.Your MySQL connection id is 12Server version: 8.0.22 MySQL Community Server - GPLCopyright (c) 2000, 2020, Oracle and/or its affiliates. All rights reserved.Oracle is a registered trademark of Oracle Corporation and/or itsaffiliates. Other names may be trademarks of their respectiveowners.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: 12Current database:Current user: root@localhostSSL: Not in useCurrent pager: stdoutUsing outfile: ''Using delimiter: ;Server version: 8.0.22 MySQL Community Server - GPLProtocol version: 10Connection: Localhost via UNIX socketServer characterset: utf8mb4Db characterset: utf8mb4Client characterset: utf8mb4Conn. characterset: utf8mb4UNIX socket: /data/mysql/tmp/mysql.sockBinary data as: HexadecimalUptime: 1 hour 27 min 31 secThreads: 3 Questions: 27 Slow queries: 0 Opens: 135 Flush tables: 3 Open tables: 56 Queries per second avg: 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视频教程》
以上就是mysql socket是什么的详细内容,更多请关注创想鸟其它相关文章!
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 chuangxiangniao@163.com 举报,一经查实,本站将立刻删除。
发布者:程序猿,转转请注明出处:https://www.chuangxiangniao.com/p/278017.html
微信扫一扫
支付宝扫一扫