无法使用PAM、Java连接到MariaDB

无法使用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 ;

我已经使用了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 ; 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多