当前位置: 首页 > news >正文

【MySQL】如何使用Named Pipe协议(Windows)连接MySQL数据库

文章目录

  • 【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连接方法

  1. 打开配置文件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```
  1. 重新启动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数据库的方法。

http://www.lryc.cn/news/131691.html

相关文章:

  • 【c++】c++的一些技术操作
  • JS中对象数组深拷贝方法
  • 2022数学建模国赛C题官网展示论文C155论文复现
  • 阿里云 K8s PVC 绑定 StorageClass 申领 PV 失败
  • php数组
  • 构造不包含字母和数字的webshell
  • 中国大学生服务外包创新创业大赛丨借 AI 之力,助“记账”难题
  • MacOS 安装Redis并设置密码
  • 函数的参数作为引用
  • 【文化课学习笔记】【化学】非金属及其化合物
  • Unity进阶–通过PhotonServer实现联网登录注册功能(客户端)–PhotonServer(三)
  • 步步向前,曙光已现:百度的大模型之路
  • 常见的 Python 错误及其解决方案
  • 文章评论以及回复评论邮件通知(Go 搭建 qiucode.cn 之八)
  • java面试基础 -- ArrayList 和 LinkedList有什么区别, ArrayList和Vector呢?
  • matlab 点云最小二乘拟合空间直线(方法一)
  • 详解junit
  • Nginx的安装及负载均衡搭建
  • JVM学习笔记(一)
  • fastjson 序列化问题:Comparison method violates its general contract
  • Angular安全专辑之二——‘unsafe-eval’不是以下内容安全策略中允许的脚本源
  • 十一、Linux用户及用户组的权限信息如何查看?如何修改?什么是权限的数字序号?
  • ahooks.js:一款强大的React Hooks库及其API使用教程(二)
  • ARM 配置晶振频率
  • 最强自动化测试框架Playwright(37)-网络
  • Ant Design Pro 前端脚手架 配置混合导航
  • tcl学习之路(五)(Vivado时序约束)
  • Hlang-中英双语言编程语言使用手册
  • centos 7 安装docker
  • Spring环境搭建、SpringIOC容器基础、SpringDI基础