对于MySQL 8.0.14及更高版本、5.7.25及更高版本、5.6.43及更高版本,将命名管道上的最小权限授予使用它们连接到服务器的客户端。但是,连接器/J只能在被授予对命名管道的完全访问权限时使用它们。作为一种解决方法,Connector/J想要连接的MySQL服务器必须使用系统变量启动命名的\u管道\u完全\u访问\u组
,它指定了一个Windows本地组,其中包含执行客户机应用程序JVM(以及连接器/J)的用户;有关详细信息,请参见说明命名的\u管道\u完全\u访问\u组
更多细节。
X协议连接不支持命名管道。
Connector/J还支持在具有名称管套厂
作为一个插件插座工厂。如果你不使用命名管道路径
属性,默认为'\\.\pipe\MySQL'
已使用。如果你使用名称管套厂
,则忽略JDBC URL中的主机名和端口号值。要启用此功能,请设置袜子厂
属性:
socketFactory=com.mysql.cj.protocol.NamedPipeSocketFactory
使用以下连接URL设置此属性以及命名管道的路径:
jdbc公司:mysql:///test?socketFactory=com.mysql.cj.protocol.NamedPipeSocketFactory&namedPipePath=\\管道\MySQL80
要创建自己的套接字工厂,请遵循中的示例代码com.mysql.cj.protocol.NamedPipeSocketFactory名称
或com.mysql.cj.protocol.StandardSocketFactory标准套接字工厂
.
另一种方法是在连接URL中使用以下两个属性在Windows平台上建立命名管道连接:
(协议=管道)
对于命名管道(特性的默认值为tcp协议
).(路径=
指定管道的路径。路径的默认值为管道路径
)\\管道\MySQL
.
这个“地址等于”或“关键字值”主机规格表(见单一主机详细信息)大大简化了Windows上命名管道连接的URL。例如,要使用的默认命名管道“\\管道\MySQL
,”只需指定:
jdbc公司:mysql://address=(协议=管道)/测试
使用的自定义命名管道“\\管道\MySQL80
”:
jdbc公司:mysql://address=(protocol=pipe)(路径=\\.\pipe\MySQL80)/测试
与(协议=管道)
,的名称管套厂
自动选择。
命名管道仅在连接到运行JDBC驱动程序的同一台物理计算机上的MySQL服务器时才起作用。在简单的性能测试中,命名管道访问比标准TCP/IP访问快30%-50%。但是,这会因系统而异,在许多Windows配置中,命名管道比TCP/IP慢。