diff --git a/apps/emqx_authn/test/emqx_authn_mysql_SUITE.erl b/apps/emqx_authn/test/emqx_authn_mysql_SUITE.erl index 57c5dee16..b6ae6d514 100644 --- a/apps/emqx_authn/test/emqx_authn_mysql_SUITE.erl +++ b/apps/emqx_authn/test/emqx_authn_mysql_SUITE.erl @@ -24,8 +24,7 @@ -include_lib("eunit/include/eunit.hrl"). -include_lib("common_test/include/ct.hrl"). --define(MYSQL_HOST, "192.168.1.234"). -% -define(MYSQL_HOST, "mysql"). +-define(MYSQL_HOST, "mysql"). -define(MYSQL_RESOURCE, <<"emqx_authn_mysql_SUITE">>). -define(PATH, [authentication]). diff --git a/apps/emqx_connector/src/emqx_connector_mysql.erl b/apps/emqx_connector/src/emqx_connector_mysql.erl index f44e92413..7a5ff9130 100644 --- a/apps/emqx_connector/src/emqx_connector_mysql.erl +++ b/apps/emqx_connector/src/emqx_connector_mysql.erl @@ -86,7 +86,6 @@ on_start(InstId, #{server := {Host, Port}, {pool_size, PoolSize}], PoolName = emqx_plugin_libs_pool:pool_name(InstId), Prepares = maps:get(prepare_statement, Config, #{}), - io:format("Prepares ~p~n", [Prepares]), State = init_prepare(#{poolname => PoolName, prepare_statement => Prepares}), case emqx_plugin_libs_pool:start_pool(PoolName, ?MODULE, Options ++ SslOpts) of ok -> {ok, State}; @@ -116,26 +115,30 @@ on_query(InstId, {Type, SQLOrKey, Params, Timeout}, AfterQuery, LogMeta#{msg => "mysql_connector_do_sql_query_failed", reason => disconnected}), %% kill the poll worker to trigger reconnection _ = exit(Conn, restart), - emqx_resource:query_failed(AfterQuery); + emqx_resource:query_failed(AfterQuery), + Result; {error, not_prepared} -> ?SLOG(warning, - LogMeta#{msg => "mysql_connector_do_sql_query_failed", reason => not_prepared}), + LogMeta#{msg => "mysql_connector_prepare_query_failed", reason => not_prepared}), case prepare_sql(Prepares, PoolName) of ok -> + %% not return result, next loop will try again on_query(InstId, {Type, SQLOrKey, Params, Timeout}, AfterQuery, State); {error, Reason} -> ?SLOG(error, - LogMeta#{msg => "mysql_connector_do_sql_query_failed", reason => Reason}), - emqx_resource:query_failed(AfterQuery) + LogMeta#{msg => "mysql_connector_do_prepare_failed", reason => Reason}), + emqx_resource:query_failed(AfterQuery), + {error, Reason} end; {error, Reason} -> ?SLOG(error, LogMeta#{msg => "mysql_connector_do_sql_query_failed", reason => Reason}), - emqx_resource:query_failed(AfterQuery); + emqx_resource:query_failed(AfterQuery), + Result; _ -> - emqx_resource:query_success(AfterQuery) - end, - Result. + emqx_resource:query_success(AfterQuery), + Result + end. mysql_function(sql) -> query; mysql_function(prepared_query) -> execute.