Maison  >  Article  >  base de données  >  qu'est-ce que le socket MySQL

qu'est-ce que le socket MySQL

藏色散人
藏色散人original
2023-04-03 15:22:492468parcourir

le socket mysql fait référence au fichier socket Unix ; sur les plates-formes de type Unix, il existe deux façons pour le client de se connecter au serveur MySQL, à savoir la méthode TCP/IP et la méthode du fichier socket ; Plus rapide que TCP/IP, mais ne peut être utilisé que pour se connecter à un serveur sur le même ordinateur.

qu'est-ce que le socket MySQL

L'environnement d'exploitation de ce tutoriel : système linux5.9.8, version mysql8, ordinateur Dell G3.

Qu'est-ce que le socket MySQL ?

.socket introduction au fichier

socket est un fichier socket Unix. Sur une plate-forme de type Unix, le client dispose de deux manières de se connecter au serveur MySQL, à savoir la méthode TCP/IP et la méthode du fichier socket. Les connexions de fichiers socket Unix sont plus rapides que TCP/IP, mais ne peuvent être utilisées que pour se connecter à un serveur sur le même ordinateur.

Le chemin et le nom du fichier socket peuvent être configurés en définissant la variable socket. La valeur par défaut est /tmp/mysql.sock (pour certains formats de distribution, le répertoire peut être différent). La configuration de référence est la suivante :

# 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

Copie

En regardant l'état de connexion ci-dessus, nous pouvons voir que MySQL peut être connecté localement via socket. Lors de la connexion locale, si la partie [client] du fichier de configuration my.cnf ne spécifie pas le chemin du fichier socket, mysql recherchera /tmp/mysql.sock par défaut. Par conséquent, lorsque le service mysqld est démarré, le fichier généré. Le fichier socket n'est pas le chemin par défaut. Si tel est le cas, une erreur peut être signalée lors de la connexion (ERREUR 2002 (HY000) : impossible de se connecter au serveur MySQL local via le socket '/tmp/mysql.sock'). En fait, la configuration de chemins spécifiques à la fois dans la partie [mysqld] et dans la partie [client] peut éviter ce problème. Vous pouvez également établir une connexion logicielle sous le chemin tmp, telle que : ln -s /data/mysql/tmp/mysql. .chaussette /tmp/mysql.sock . De même, les autorisations du répertoire de fichiers socket doivent être accordées à l'utilisateur du système MySQL.

Apprentissage recommandé : "Tutoriel vidéo MySQL"

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn