无法使用PAM、Java连接到MariaDB
我已经使用了Java8、MariaDB和Percona提供的PAM模块无法使用PAM、Java连接到MariaDB,java,mysql,mariadb,mysql-connector,pam,Java,Mysql,Mariadb,Mysql Connector,Pam,我已经使用了Java8、MariaDB和Percona提供的PAM模块 $ java -version java version "1.8.0_112" Java(TM) SE Runtime Environment (build 1.8.0_112-b15) Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode) Welcome to the MariaDB monitor. Commands end with ;
$ java -version
java version "1.8.0_112"
Java(TM) SE Runtime Environment (build 1.8.0_112-b15)
Java HotSpot(TM) 64-Bit Server VM (build 25.112-b15, mixed mode)
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MariaDB connection id is 117218
Server version: 10.3.9-MariaDB-log MariaDB Server
我可以从命令行连接。但是当我尝试使用mysql-connector-Java-8.0.15.jar从Java连接时,失败了
java.sql.SQLException: Unable to load authentication plugin 'dialog'.
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:85)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:455)
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
at java.sql.DriverManager.getConnection(DriverManager.java:664)
at java.sql.DriverManager.getConnection(DriverManager.java:208)
... 10 more
Caused by: com.mysql.cj.exceptions.WrongArgumentException: Unable to load authentication plugin 'dialog'.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:85)
at com.mysql.cj.protocol.a.NativeAuthenticationProvider.proceedHandshakeWithPluggableAuthentication(NativeAuthenticationProvider.java:572)
at com.mysql.cj.protocol.a.NativeAuthenticationProvider.connect(NativeAuthenticationProvider.java:202)
at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1449)
at com.mysql.cj.NativeSession.connect(NativeSession.java:165)
at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:955)
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:825)
... 14 more
java.sql.SQLException:无法加载身份验证插件'dialog'。
位于com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:129)
位于com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)
位于com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89)
位于com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63)
位于com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73)
位于com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:85)
位于com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:835)
位于com.mysql.cj.jdbc.ConnectionImpl.(ConnectionImpl.java:455)
位于com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240)
位于com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:199)
位于java.sql.DriverManager.getConnection(DriverManager.java:664)
位于java.sql.DriverManager.getConnection(DriverManager.java:208)
... 10多
原因:com.mysql.cj.exceptions.ErrorArgumentException:无法加载身份验证插件'dialog'。
位于sun.reflect.NativeConstructorAccessorImpl.newInstance0(本机方法)
位于sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
在sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
位于java.lang.reflect.Constructor.newInstance(Constructor.java:423)
在com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61)上
在com.mysql.cj.exceptions.ExceptionFactory.createException上(ExceptionFactory.java:85)
在com.mysql.cj.protocol.a.NativeAuthenticationProvider.proceedHandshakeWithPluggableAuthentication(NativeAuthenticationProvider.java:572)上
位于com.mysql.cj.protocol.a.NativeAuthenticationProvider.connect(NativeAuthenticationProvider.java:202)
位于com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1449)
位于com.mysql.cj.NativeSession.connect(NativeSession.java:165)
位于com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:955)
位于com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:825)
... 14多