加入收藏 | 设为首页 | 会员中心 | 我要投稿 聊城站长网 (https://www.0635zz.com/)- 智能语音交互、行业智能、AI应用、云计算、5G!
当前位置: 首页 > 站长学院 > MySql教程 > 正文

mysql socket代表什么

发布时间:2023-07-10 14:58:26 所属栏目:MySql教程 来源:
导读:这篇“mysql socket指的是什么”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇&l
这篇“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 -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
 
# 通过 -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
 
复制
 
查看上述连接状态可知,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 系统用户放开。
 
 

(编辑:聊城站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章