After updating to Metabase 0.39.3 at the start of this month we are struggling to connect to one of our application DB's using MySQL 8, which we move our application to from MySQL 5.6 about a month ago. The problem did not present itself before this update. The error we are seeing is:
Could not connect to address=(host=******)(port=)(type=master) : Client does not support authentication protocol requested by server. plugin type was = 'mysql_native_password'.
We have tried the following to try and resolve the issue, with non of them working:
- Set up a new username
- We have specified auth type of both caching_sha2_password and Standard
- We have flushed host
- We have tried
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password'
and derivative fixes.
SERVER LOGS FOR ERROR:
[76c16446-a328-4335-a366-48773da97837] 2021-06-15T16:20:47+01:00 ERROR
metabase.driver.util Database connection error
java.sql.SQLNonTransientConnectionException: Could not connect to address=.
(host=***.***.**.**)(port=****)(type=master) : Client does not support authentication
protocol requested by server. plugin type was = 'mysql_native_password'
at
org.mariadb.jdbc.internal.util.exceptions.ExceptionFactory.createException(ExceptionFactory.java:73)
at
org.mariadb.jdbc.internal.util.exceptions.ExceptionFactory.create(ExceptionFactory.java:192)
at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1372)
at org.mariadb.jdbc.internal.util.Utils.retrieveProxy(Utils.java:635)
at org.mariadb.jdbc.MariaDbConnection.newConnection(MariaDbConnection.java:150)
at org.mariadb.jdbc.Driver.connect(Driver.java:89)
at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
at java.sql/java.sql.DriverManager.getConnection(Unknown Source)
at clojure.java.jdbc$get_driver_connection.invokeStatic(jdbc.clj:271)
at clojure.java.jdbc$get_driver_connection.invoke(jdbc.clj:250)
at clojure.java.jdbc$get_connection.invokeStatic(jdbc.clj:411)
at clojure.java.jdbc$get_connection.invoke(jdbc.clj:274)
at clojure.java.jdbc$db_query_with_resultset_STAR_.invokeStatic(jdbc.clj:1111)
at clojure.java.jdbc$db_query_with_resultset_STAR_.invoke(jdbc.clj:1093)
at clojure.java.jdbc$query.invokeStatic(jdbc.clj:1182)
at clojure.java.jdbc$query.invoke(jdbc.clj:1144)
at clojure.java.jdbc$query.invokeStatic(jdbc.clj:1160)
at clojure.java.jdbc$query.invoke(jdbc.clj:1144)
at metabase.driver.sql_jdbc.connection$can_connect_with_spec_QMARK_.invokeStatic(connection.clj:199)
at metabase.driver.sql_jdbc.connection$can_connect_with_spec_QMARK_.invoke(connection.clj:196)
at metabase.driver.sql_jdbc.connection$can_connect_QMARK_.invokeStatic(connection.clj:207)
at metabase.driver.sql_jdbc.connection$can_connect_QMARK_.invoke(connection.clj:203)
at metabase.driver.sql_jdbc$fn__81176.invokeStatic(sql_jdbc.clj:35)
at metabase.driver.sql_jdbc$fn__81176.invoke(sql_jdbc.clj:33)
at metabase.driver.mysql$fn__80284.invokeStatic(mysql.clj:72)
at metabase.driver.mysql$fn__80284.invoke(mysql.clj:68)
at clojure.lang.MultiFn.invoke(MultiFn.java:234)
at metabase.driver.util$can_connect_with_details_QMARK_$fn__29712.invoke(util.clj:34)
at metabase.util$do_with_timeout$fn__15624.invoke(util.clj:346)
at clojure.core$binding_conveyor_fn$fn__5754.invoke(core.clj:2030)
at clojure.lang.AFn.call(AFn.java:18)
at java.base/java.util.concurrent.FutureTask.run(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.base/java.lang.Thread.run(Unknown Source)
Caused by: java.sql.SQLException: Client does not support authentication protocol requested by server. plugin type was = 'mysql_native_password'
at org.mariadb.jdbc.authentication.AuthenticationPluginLoader.get(AuthenticationPluginLoader.java:52)
at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.authenticationHandler(AbstractConnectProtocol.java:727)
at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.createConnection(AbstractConnectProtocol.java:546)
at org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol.connectWithoutProxy(AbstractConnectProtocol.java:1367)
... 32 more
None of these have worked and we continue to have