Rumah > Artikel > pangkalan data > apakah soket mysql
soket mysql merujuk kepada fail soket Unix pada platform seperti Unix, terdapat dua cara untuk klien menyambung ke pelayan MySQL, iaitu kaedah TCP/IP dan kaedah fail soket Unix; lebih pantas daripada TCP/IP, tetapi ia hanya boleh disambungkan ke pelayan pada komputer yang sama.
Persekitaran pengendalian tutorial ini: sistem linux5.9.8, versi mysql8, komputer Dell G3.
Apakah soket mysql?
.pengenalan fail soket
soket ialah fail soket Unix Pada platform seperti Unix, terdapat dua cara untuk pelanggan menyambung ke Pelayan MySQL, masing-masing Ia adalah kaedah TCP/IP dan kaedah fail soket. Sambungan fail soket Unix lebih pantas daripada TCP/IP, tetapi hanya boleh digunakan untuk menyambung ke pelayan pada komputer yang sama.
Laluan dan nama fail soket boleh dikonfigurasikan dengan menetapkan pembolehubah soket Nilai lalai ialah /tmp/mysql.sock (direktori mungkin berbeza untuk beberapa format pengedaran). Konfigurasi rujukan adalah seperti berikut:
# 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
Salin
Melihat status sambungan di atas, dapat dilihat bahawa MySQL boleh disambungkan secara setempat melalui soket. Apabila log masuk secara tempatan, jika bahagian [klien] fail konfigurasi my.cnf tidak menyatakan laluan fail soket, mysql akan mencari /tmp/mysql.sock secara lalai, oleh itu, apabila perkhidmatan mysqld dimulakan, yang dijana fail soket bukan laluan lalai. Jika ya, ralat mungkin dilaporkan semasa log masuk (ERROR 2002 (HY000): Tidak dapat menyambung ke pelayan MySQL tempatan melalui soket '/tmp/mysql.sock'). Malah, mengkonfigurasi laluan tertentu dalam kedua-dua bahagian [mysqld] dan bahagian [klien] boleh mengelakkan masalah ini Anda juga boleh mewujudkan sambungan lembut di bawah laluan tmp, seperti: ln -s /data/mysql/tmp/mysql. .sock /tmp/mysql.sock . Begitu juga, kebenaran direktori fail soket mesti dikeluarkan kepada pengguna sistem mysql.
Pembelajaran yang disyorkan: "Tutorial Video MySQL"
Atas ialah kandungan terperinci apakah soket mysql. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!