Home  >  Article  >  Database  >  what is mysql socket

what is mysql socket

藏色散人
藏色散人Original
2023-04-03 15:22:492448browse

mysql socket refers to the Unix socket file; on a Unix-like platform, there are two ways for the client to connect to the MySQL server, namely the TCP/IP method and the socket socket file method; Unix socket File connections are faster than TCP/IP, but can only be used to connect to servers on the same computer.

what is mysql socket

The operating environment of this tutorial: linux5.9.8 system, mysql8 version, Dell G3 computer.

What is mysql socket?

.socket file introduction

socket is a Unix socket file. On a Unix-like platform, there are two ways for the client to connect to the MySQL server, respectively. It is the TCP/IP method and the socket file method. Unix socket file connections are faster than TCP/IP, but can only be used to connect to a server on the same computer.

The socket file path and name can be configured by setting the socket variable. The default value is /tmp/mysql.sock (for some distribution formats, the directory may be different). The reference configuration is as follows:

# 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

Copy

Checking the above connection status shows that MySQL can be connected locally through socket. When logging in locally, if the [client] part of the my.cnf configuration file does not specify the socket file path, mysql will look for /tmp/mysql.sock by default. Therefore, when the mysqld service is started, the generated socket file is not the default path. If so, an error may be reported when logging in (ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'). In fact, configuring specific paths in both the [mysqld] part and the [client] part can avoid this problem. You can also establish a soft connection under the tmp path, such as: ln -s /data/mysql/tmp/mysql.sock /tmp/mysql.sock . Similarly, the socket file directory permissions must be released to the mysql system user.

Recommended learning: "MySQL Video Tutorial"

The above is the detailed content of what is mysql socket. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn