No matching clause: Could not connect to address

I have no issues connecting to my remote database through an AWS bastion with MySQL Workbench but when I try to do it with Metabase I get:

Here are the docker logs:

2022-04-24 06:53:48,725 ERROR api.database :: Cannot connect to Database
java.lang.IllegalArgumentException: No matching clause: Could not connect to address=(host=localhost)(port=41217)(type=master) : (conn=44239) Access denied for user 'user'@'10.0.0.238' (using password: YES)
Current charset is UTF-8. If password has been set using other charset, consider using option 'passwordCharacterEncoding'
        at metabase.driver.mysql$fn__80294.invokeStatic(mysql.clj:111)
        at metabase.driver.mysql$fn__80294.invoke(mysql.clj:109)
        at clojure.lang.MultiFn.invoke(MultiFn.java:234)
        at metabase.driver.util$can_connect_with_details_QMARK_.invokeStatic(util.clj:39)
        at metabase.driver.util$can_connect_with_details_QMARK_.doInvoke(util.clj:22)
        at clojure.lang.RestFn.invoke(RestFn.java:442)
        at metabase.api.database$test_database_connection.invokeStatic(database.clj:396)
        at metabase.api.database$test_database_connection.doInvoke(database.clj:386)
        at clojure.lang.RestFn.invoke(RestFn.java:464)
        at metabase.api.setup$fn__74193.invokeStatic(setup.clj:136)
        at metabase.api.setup$fn__74193.invoke(setup.clj:127)
        at compojure.core$wrap_response$fn__1996.invoke(core.clj:160)
        at compojure.core$wrap_route_middleware$fn__1980.invoke(core.clj:132)
        at compojure.core$wrap_route_info$fn__1985.invoke(core.clj:139)
        at compojure.core$wrap_route_matches$fn__1989.invoke(core.clj:151)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$wrap_route_matches$fn__1989.invoke(core.clj:152)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$wrap_route_matches$fn__1989.invoke(core.clj:153)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008.invoke(core.clj:200)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008.invoke(core.clj:200)
        at compojure.core$make_context$handler__2036.invoke(core.clj:287)
        at compojure.core$make_context$fn__2038.invoke(core.clj:296)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$make_context$fn__2038.invoke(core.clj:297)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at metabase.api.routes$fn__76032$fn__76034.invoke(routes.clj:70)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008.invoke(core.clj:200)
        at clojure.lang.AFn.applyToHelper(AFn.java:160)
        at clojure.lang.AFn.applyTo(AFn.java:144)
        at clojure.core$apply.invokeStatic(core.clj:665)
        at clojure.core$apply.invoke(core.clj:660)
        at metabase.server.routes$fn__78303$fn__78304.doInvoke(routes.clj:57)
        at clojure.lang.RestFn.invoke(RestFn.java:436)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008.invoke(core.clj:200)
        at compojure.core$make_context$handler__2036.invoke(core.clj:287)
        at compojure.core$make_context$fn__2038.invoke(core.clj:296)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$wrap_route_matches$fn__1989.invoke(core.clj:153)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$wrap_route_matches$fn__1989.invoke(core.clj:153)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at compojure.core$wrap_route_matches$fn__1989.invoke(core.clj:153)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008$f__2009$respond_SINGLEQUOTE___2010.invoke(core.clj:197)
        at metabase.server.routes$fn__78291$fn__78293.invoke(routes.clj:41)
        at compojure.core$routes$fn__2008$f__2009.invoke(core.clj:198)
        at compojure.core$routes$fn__2008.invoke(core.clj:200)
        at metabase.server.middleware.exceptions$catch_uncaught_exceptions$fn__76023.invoke(exceptions.clj:98)
        at metabase.server.middleware.exceptions$catch_api_exceptions$fn__76020.invoke(exceptions.clj:86)
        at metabase.server.middleware.log$log_api_call$fn__78219$fn__78220.invoke(log.clj:195)
        at toucan.db$_do_with_call_counting.invokeStatic(db.clj:216)
        at toucan.db$_do_with_call_counting.invoke(db.clj:209)
        at metabase.server.middleware.log$log_api_call$fn__78219.invoke(log.clj:189)
        at metabase.server.middleware.browser_cookie$ensure_browser_id_cookie$fn__77855.invoke(browser_cookie.clj:30)
        at metabase.server.middleware.security$add_security_headers$fn__75985.invoke(security.clj:142)
        at metabase.server.middleware.json$wrap_json_body$fn__78000.invoke(json.clj:62)
        at metabase.server.middleware.json$wrap_streamed_json_response$fn__78018.invoke(json.clj:98)
        at ring.middleware.keyword_params$wrap_keyword_params$fn__78560.invoke(keyword_params.clj:55)
        at ring.middleware.params$wrap_params$fn__78576.invoke(params.clj:69)
        at metabase.server.middleware.misc$maybe_set_site_url$fn__35891.invoke(misc.clj:58)
        at metabase.server.middleware.session$bind_current_user$fn__42607$fn__42608.invoke(session.clj:257)
        at metabase.server.middleware.session$do_with_current_user.invokeStatic(session.clj:238)
        at metabase.server.middleware.session$do_with_current_user.invoke(session.clj:230)
        at metabase.server.middleware.session$bind_current_user$fn__42607.invoke(session.clj:256)
        at metabase.server.middleware.session$wrap_current_user_info$fn__42594.invoke(session.clj:216)
        at metabase.server.middleware.session$wrap_session_id$fn__42580.invoke(session.clj:162)
        at metabase.server.middleware.auth$wrap_api_key$fn__75918.invoke(auth.clj:27)
        at ring.middleware.cookies$wrap_cookies$fn__78480.invoke(cookies.clj:216)
        at metabase.server.middleware.misc$add_content_type$fn__35874.invoke(misc.clj:27)
        at metabase.server.middleware.misc$disable_streaming_buffering$fn__35899.invoke(misc.clj:75)
        at ring.middleware.gzip$wrap_gzip$fn__78522.invoke(gzip.clj:86)
        at metabase.server.middleware.misc$bind_request$fn__35902.invoke(misc.clj:92)
        at metabase.server.middleware.ssl$redirect_to_https_middleware$fn__78236.invoke(ssl.clj:38)
        at metabase.server$async_proxy_handler$fn__77799.invoke(server.clj:71)
        at metabase.server.proxy$org.eclipse.jetty.server.handler.AbstractHandler$ff19274a.handle(Unknown Source)
        at org.eclipse.jetty.server.handler.HandlerWrapper.handle(HandlerWrapper.java:127)
        at org.eclipse.jetty.server.Server.handle(Server.java:516)
        at org.eclipse.jetty.server.HttpChannel.lambda$handle$1(HttpChannel.java:383)
        at org.eclipse.jetty.server.HttpChannel.dispatch(HttpChannel.java:556)
        at org.eclipse.jetty.server.HttpChannel.handle(HttpChannel.java:375)
        at org.eclipse.jetty.server.HttpConnection.onFillable(HttpConnection.java:273)
        at org.eclipse.jetty.io.AbstractConnection$ReadCallback.succeeded(AbstractConnection.java:311)
        at org.eclipse.jetty.io.FillInterest.fillable(FillInterest.java:105)
        at org.eclipse.jetty.io.ChannelEndPoint$1.run(ChannelEndPoint.java:104)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.runTask(EatWhatYouKill.java:336)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.doProduce(EatWhatYouKill.java:313)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.tryProduce(EatWhatYouKill.java:171)
        at org.eclipse.jetty.util.thread.strategy.EatWhatYouKill.run(EatWhatYouKill.java:129)
        at org.eclipse.jetty.util.thread.ReservedThreadExecutor$ReservedThread.run(ReservedThreadExecutor.java:375)
        at org.eclipse.jetty.util.thread.QueuedThreadPool.runJob(QueuedThreadPool.java:773)
        at org.eclipse.jetty.util.thread.QueuedThreadPool$Runner.run(QueuedThreadPool.java:905)
        at java.base/java.lang.Thread.run(Unknown Source)
2022-04-24 06:53:48,738 DEBUG middleware.log :: POST /api/setup/validate 400 685.0 ms (0 DB calls)
{:errors
 {:dbname
  "No matching clause: Could not connect to address=(host=localhost)(port=41217)(type=master) : (conn=44239) Access denied for user 'user'@'10.0.0.238' (using password: YES)\nCurrent charset is UTF-8. If password has been set using other charset, consider using option 'passwordCharacterEncoding'"}}

I think my setup is right:

Hi @RandomDeveloper
Have a look here: https://www.metabase.com/docs/latest/administration-guide/databases/mysql.html

Thanks for your answer @flamber I guess you're refering to this paragraph?

So I need to change the plugin used by the Metabase user to mysql_native_password . But where does the command ALTER USER 'metabase'@'%' IDENTIFIED WITH mysql_native_password BY 'thepassword'; goes?

@RandomDeveloper You need to either create a new user or edit an existing user on your MySQL database.
You need to run the query on your database (not in Metabase).