After upgrading from 4.2.3 to 4.3.0 connection to MySQL database fails with the exception below.
Reverting back to 4.2.3 lets openfire connect to MySQL without problems.
I assume that the problem is caused by the upgraded mysql driver (8.0.12) in openfire 4.3.0, which might not be compatible with older MySQL versions?
However, the changelog does not mention anything about database versions not being supported anymore.
On the contrary, the openfire installation instructions for mysql state:
Make sure that you are using MySQL 4.1.18 or later (5.x recommended).
I would like to report this as an issue but the Openfire Jira does not allow me to create issues.
Exception:
ERROR org.jivesoftware.database.DbConnectionManager - CLIENT_PLUGIN_AUTH is required
java.sql.SQLNonTransientConnectionException: CLIENT_PLUGIN_AUTH is required
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:110) ~[mysql-connector-java-8.0.12.jar:8.0.12]
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97) ~[mysql-connector-java-8.0.12.jar:8.0.12]
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:89) ~[mysql-connector-java-8.0.12.jar:8.0.12]
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:63) ~[mysql-connector-java-8.0.12.jar:8.0.12]
at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:73) ~[mysql-connector-java-8.0.12.jar:8.0.12]
at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:79) ~[mysql-connector-java-8.0.12.jar:8.0.12]
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:832) ~[mysql-connector-java-8.0.12.jar:8.0.12]
at com.mysql.cj.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:456) ~[mysql-connector-java-8.0.12.jar:8.0.12]
at com.mysql.cj.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:240) ~[mysql-connector-java-8.0.12.jar:8.0.12]
at com.mysql.cj.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:207) ~[mysql-connector-java-8.0.12.jar:8.0.12]
at java.sql.DriverManager.getConnection(DriverManager.java:664) ~[?:1.8.0_112]
at java.sql.DriverManager.getConnection(DriverManager.java:247) ~[?:1.8.0_112]
at org.apache.commons.dbcp2.DriverManagerConnectionFactory.createConnection(DriverManagerConnectionFactory.java:90) ~[commons-dbcp2-2.5.0.jar:2.5.0]
at org.apache.commons.dbcp2.PoolableConnectionFactory.makeObject(PoolableConnectionFactory.java:291) ~[commons-dbcp2-2.5.0.jar:2.5.0]
at org.apache.commons.pool2.impl.GenericObjectPool.create(GenericObjectPool.java:883) ~[commons-pool2-2.6.0.jar:2.6.0]
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:436) ~[commons-pool2-2.6.0.jar:2.6.0]
at org.apache.commons.pool2.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:365) ~[commons-pool2-2.6.0.jar:2.6.0]
at org.apache.commons.dbcp2.PoolingDataSource.getConnection(PoolingDataSource.java:134) ~[commons-dbcp2-2.5.0.jar:2.5.0]
at org.jivesoftware.database.DefaultConnectionProvider.getConnection(DefaultConnectionProvider.java:91) ~[xmppserver-4.3.0.jar:4.3.0]
at org.jivesoftware.database.DbConnectionManager.setConnectionProvider(DbConnectionManager.java:602) [xmppserver-4.3.0.jar:4.3.0]
at org.jivesoftware.database.DbConnectionManager.ensureConnectionProvider(DbConnectionManager.java:99) [xmppserver-4.3.0.jar:4.3.0]
at org.jivesoftware.database.DbConnectionManager.getConnection(DbConnectionManager.java:121) [xmppserver-4.3.0.jar:4.3.0]
at org.jivesoftware.util.JiveProperties.loadProperties(JiveProperties.java:438) [xmppserver-4.3.0.jar:4.3.0]
at org.jivesoftware.util.JiveProperties.init(JiveProperties.java:90) [xmppserver-4.3.0.jar:4.3.0]
at org.jivesoftware.util.JiveProperties.getInstance(JiveProperties.java:66) [xmppserver-4.3.0.jar:4.3.0]
at org.jivesoftware.util.JiveGlobals.getProperty(JiveGlobals.java:556) [xmppserver-4.3.0.jar:4.3.0]
at org.jivesoftware.util.cache.CacheFactory.<clinit>(CacheFactory.java:88) [xmppserver-4.3.0.jar:4.3.0]
at org.jivesoftware.openfire.XMPPServer.initialize(XMPPServer.java:394) [xmppserver-4.3.0.jar:4.3.0]
at org.jivesoftware.openfire.XMPPServer.start(XMPPServer.java:639) [xmppserver-4.3.0.jar:4.3.0]
at org.jivesoftware.openfire.XMPPServer.<init>(XMPPServer.java:236) [xmppserver-4.3.0.jar:4.3.0]
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) [?:1.8.0_112]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) [?:1.8.0_112]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) [?:1.8.0_112]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) [?:1.8.0_112]
at java.lang.Class.newInstance(Class.java:442) [?:1.8.0_112]
at org.jivesoftware.openfire.starter.ServerStarter.start(ServerStarter.java:92) [startup.jar:4.3.0]
at org.jivesoftware.openfire.starter.ServerStarter.main(ServerStarter.java:56) [startup.jar:4.3.0]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_112]
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) ~[?:1.8.0_112]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:1.8.0_112]
at java.lang.reflect.Method.invoke(Method.java:498) ~[?:1.8.0_112]
at com.exe4j.runtime.LauncherEngine.launch(LauncherEngine.java:85) [i4jruntime.jar:?]
at com.install4j.runtime.launcher.UnixLauncher.main(UnixLauncher.java:65) [i4jruntime.jar:?]
Caused by: com.mysql.cj.exceptions.UnableToConnectException: CLIENT_PLUGIN_AUTH is required
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_112]
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) ~[?:1.8.0_112]
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) ~[?:1.8.0_112]
at java.lang.reflect.Constructor.newInstance(Constructor.java:423) ~[?:1.8.0_112]
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:61) ~[mysql-connector-java-8.0.12.jar:8.0.12]
at com.mysql.cj.exceptions.ExceptionFactory.createException(ExceptionFactory.java:85) ~[mysql-connector-java-8.0.12.jar:8.0.12]
at com.mysql.cj.protocol.a.NativeAuthenticationProvider.connect(NativeAuthenticationProvider.java:223) ~[mysql-connector-java-8.0.12.jar:8.0.12]
at com.mysql.cj.protocol.a.NativeProtocol.connect(NativeProtocol.java:1443) ~[mysql-connector-java-8.0.12.jar:8.0.12]
at com.mysql.cj.NativeSession.connect(NativeSession.java:165) ~[mysql-connector-java-8.0.12.jar:8.0.12]
at com.mysql.cj.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:952) ~[mysql-connector-java-8.0.12.jar:8.0.12]
at com.mysql.cj.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:822) ~[mysql-connector-java-8.0.12.jar:8.0.12]
... 36 more