MySQL Connector/J 8.0版本说明
Connector/J本身不支持使用Unix域套接字连接到MySQL服务器。但是,可以使用通过可插入套接字工厂提供函数的第三方库。这样的自定义工厂应该实现com.mysql.cj.protocol.SocketFactory
接口或遗留com.mysql.jdbc.SocketFactory
接口连接器/ J。当您为Unix套接字使用这种自定义套接字工厂时,请遵循以下要求:
MySQL Server必须配置system变量
——套接字
(对于使用JDBC API的本机协议连接)或——mysqlx-socket
(对于使用X DevAPI的X协议连接),它必须包含Unix套接字文件的文件路径。自定义工厂的完全限定类名应该通过connection属性传递给Connector/J
socketFactory
.例如,对于junixsocket库,设置:socketFactory = org.newsclub.net.mysql.AFUNIXDatabaseSocketFactory
您可能还需要将其他参数作为连接属性传递给自定义工厂。例如,对于junixsocket库,使用该属性提供套接字文件的文件路径
junixsocket.file
:junixsocket.file =path_to_socket_file
8.0.21及之前版本:当使用X协议时,设置连接属性
xdevapi.useAsyncProtocol = false
(这是Connector/J 8.0.12及以后版本的默认设置)。异步套接字通道不支持Unix套接字。当xdevapi.useAsyncProtocol = true
,socketFactory
属性被忽略(连接属性xdevapi.useAsyncProtocol
自8.0.22版本以来已弃用)。
请注意
对于X协议连接,Unix套接字连接使用自定义套接字工厂的规定只适用于Connector/J 8.0.12及以后版本。