浦口区教育局网站集约化建设宁波网站优化建站公司
文章目录
- 【MySQL】如何使用Named Pipe协议(Windows)连接MySQL数据库
 - 连接MySQL的协议
 - 使用Named Pipe协议(Windows)连接MySQL
 - 步骤1:确认MySQL服务器已启用Named Pipe连接
 - 启动Named Pipe连接方法
 
- 步骤2:客户端使用Named Pipe连接MySQL服务器。
 - 例1:客户端使用Named Pipe连接MySQL服务器
 - 例2:客户端指定Socket使用Named Pipe连接MySQL服务器
 
- 常见错误
 
- 小结
 
MySQL入门02:关于MySQL连接的ABC
【MySQL】如何使用Named Pipe协议(Windows)连接MySQL数据库
【MySQL】如何使用Shared-memory协议(Windows)连接MySQL数据库
【MySQL】如何使用Unix Sockets 协议连接MySQL数据库
【MySQL】如何使用Named Pipe协议(Windows)连接MySQL数据库
连接MySQL的协议
在MySQL中可以通过指定 --protocol参数,选择连接MySQL的协议。
连接协议(Connection Protocals):
--protocol={TCP|SOCKET|PIPE|MEMORY}TCP/IP  (ALL)  -Transmission Control Protocal/Internet Protocal-Connection:local & remote-Supports Clasic & X protocol
Socket  file (Unix including Linux/Mac) -Connection:local -Supports Clasic & X protocol
Named Pipe    (Win)  -Connection:local -Supports Clasic
Shared Memory (Win)  -Connection:local -Supports Clasic
 
参考:
 https://dev.mysql.com/doc/refman/8.0/en/connection-options.html#option_general_protocol
 >4.2.3 Command Options for Connecting to the Server
使用Named Pipe协议(Windows)连接MySQL
在Windows环境中,和Unix Sockets连接MySQL相似,可以用Named Pipe协议连接MySQL。
 下面介绍如何使用Named Pipe连接MySQL的步骤。
步骤1:确认MySQL服务器已启用Named Pipe连接
查看是否启用Named Pipe连接。
mysql> SHOW GLOBAL VARIABLES LIKE 'named_pipe';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| named_pipe    | OFF   |
+---------------+-------+
1 row in set, 1 warning (0.04 sec)mysql>
 
如果值是ON,则表示启用;OFF表示禁用状态。
启动Named Pipe连接方法
- 打开配置文件my.ini,将enable-named-pipe变量和socket变量前的注释去掉并保存。
 
例:
# The next three options are mutually exclusive to SERVER_PORT below.
# skip-networking
enable-named-pipe
# shared-memory# shared-memory-base-name=MYSQL# The Pipe the MySQL Server will use.
socket=MYSQL
 
※ my.ini文件的位置可以通过【mysql --help】命令中的Default options内容查看。
 例:
Default options are read from the following files in the given order:
C:\windows\my.ini C:\windows\my.cnf C:\my.ini C:\my.cnf E:\Soft\MySQL8.0\my.ini E:\Soft\MySQL8.0\my.cnf```
 
- 重新启动MySQL服务器。
 
net stop <MySQL服务名>
net start <MySQL服务名>
 
例:
C:\Users\Administrator>net stop mysql80
MySQL80 服务正在停止.
MySQL80 服务已成功停止。C:\Users\Administrator>net start mysql80
MySQL80 服务正在启动 ..
MySQL80 服务已经启动成功。
 
3.查看Named Pipe连接启用状态。
C:\Users\Administrator>mysql  -u root -p
Enter password: ********
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 8
Server version: 8.0.28 MySQL Community Server - GPLCopyright (c) 2000, 2022, Oracle and/or its affiliates.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> SHOW GLOBAL VARIABLES LIKE 'named_pipe';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| named_pipe    | ON    |
+---------------+-------+
1 row in set, 1 warning (0.01 sec)mysql> SHOW  VARIABLES LIKE 'socket';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| socket        | MYSQL |
+---------------+-------+
1 row in set, 1 warning (0.01 sec)mysql> exit
Bye
 
步骤2:客户端使用Named Pipe连接MySQL服务器。
例1:客户端使用Named Pipe连接MySQL服务器
通过指定–protocol=pipe,客户端可以使用Named Pipe连接MySQL服务器。
C:\Users\Administrator>mysql --protocol=pipe -u root -p
Enter password: ********
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 10
Server version: 8.0.28 MySQL Community Server - GPLCopyright (c) 2000, 2022, Oracle and/or its affiliates.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> \s
--------------
mysql  Ver 8.0.28 for Win64 on x86_64 (MySQL Community Server - GPL)Connection id:          10
Current database:
Current user:           root@localhost
SSL:                    Not in use
Using delimiter:        ;
Server version:         8.0.28 MySQL Community Server - GPL
Protocol version:       10
Connection:             Named pipe: MySQL
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    gbk
Conn.  characterset:    gbk
UNIX socket:            MySQL
Binary data as:         Hexadecimal
Uptime:                 7 min 22 secThreads: 2  Questions: 16  Slow queries: 0  Opens: 137  Flush tables: 3  Open tables: 56  Queries per second avg: 0.036
--------------mysql>
 
不指定Socket的时候,会使用默认的Named pipe: MySQL。
例2:客户端指定Socket使用Named Pipe连接MySQL服务器
C:\Users\Administrator>mysql --protocol=pipe -u root -p --socket=MYSQL
Enter password: ********
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 11
Server version: 8.0.28 MySQL Community Server - GPLCopyright (c) 2000, 2022, Oracle and/or its affiliates.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> \s
--------------
mysql  Ver 8.0.28 for Win64 on x86_64 (MySQL Community Server - GPL)Connection id:          11
Current database:
Current user:           root@localhost
SSL:                    Not in use
Using delimiter:        ;
Server version:         8.0.28 MySQL Community Server - GPL
Protocol version:       10
Connection:             Named pipe: MYSQL
Server characterset:    utf8mb4
Db     characterset:    utf8mb4
Client characterset:    gbk
Conn.  characterset:    gbk
UNIX socket:            MYSQL
Binary data as:         Hexadecimal
Uptime:                 13 min 4 secThreads: 2  Questions: 25  Slow queries: 0  Opens: 138  Flush tables: 3  Open tables: 57  Queries per second avg: 0.031
--------------mysql> exit
Bye
 
常见错误
当服务器Named Pipe连接未启用的时候,使用Named Pipe连接会报如下的错误:
C:\Users\Administrator>mysql --protocol=pipe -u root -prootroot
mysql: [Warning] Using a password on the command line interface can be insecure.
ERROR 2017 (HY000): Can't open named pipe to host: .  pipe: MySQL (2)
 
可参考如上的方法在服务器端进行相应的配置。
小结
本文介绍了在Windows环境中,如何使用Named Pipe协议连接MySQL数据库的方法。
