Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

can't load emqx_auth_mysql #202

Closed
mttbx opened this issue Feb 4, 2020 · 2 comments
Closed

can't load emqx_auth_mysql #202

mttbx opened this issue Feb 4, 2020 · 2 comments

Comments

@mttbx
Copy link

mttbx commented Feb 4, 2020

My mysql version is 5.7.29
Here's the log. I don't know what's wrong.

emqx_client_test | 2020-02-04 18:40:42.070 [error] crasher:
emqx_client_test |     initial call: mysql_conn:init/1
emqx_client_test |     pid: <0.1840.0>
emqx_client_test |     registered_name: []
emqx_client_test |     exception error: no match of right hand side value {error,econnrefused}
emqx_client_test |       in function  mysql_conn:init/1 (src/mysql_conn.erl, line 87)
emqx_client_test |       in call from gen_server:init_it/2 (gen_server.erl, line 374)
emqx_client_test |       in call from gen_server:init_it/6 (gen_server.erl, line 342)
emqx_client_test |     ancestors: [<0.1839.0>,<0.1838.0>,<0.1836.0>,emqx_auth_mysql_sup,
emqx_client_test |                   <0.1834.0>]
emqx_client_test |     message_queue_len: 0
emqx_client_test |     messages: []
emqx_client_test |     links: [<0.1839.0>]
emqx_client_test |     dictionary: []
emqx_client_test |     trap_exit: false
emqx_client_test |     status: running
emqx_client_test |     heap_size: 376
emqx_client_test |     stack_size: 27
emqx_client_test |     reductions: 1129
emqx_client_test |   neighbours:
emqx_client_test | 2020-02-04 18:40:42.070 [error] supervisor: {<0.1838.0>,ecpool_worker_sup}
emqx_client_test |     errorContext: start_error
emqx_client_test |     reason: {{badmatch,{error,econnrefused}},
emqx_client_test |              [{mysql_conn,init,1,[{file,"src/mysql_conn.erl"},{line,87}]},
emqx_client_test |               {gen_server,init_it,2,[{file,"gen_server.erl"},{line,374}]},
emqx_client_test |               {gen_server,init_it,6,[{file,"gen_server.erl"},{line,342}]},
emqx_client_test |               {proc_lib,init_p_do_apply,3,
emqx_client_test |                         [{file,"proc_lib.erl"},{line,249}]}]}
emqx_client_test |     offender: [{pid,undefined},
emqx_client_test |                {id,{worker,1}},
emqx_client_test |                {mfargs,{ecpool_worker,start_link,
emqx_client_test |                                       [emqx_auth_mysql,1,emqx_auth_mysql_cli,
emqx_client_test |                                        [{pool_size,8},
emqx_client_test |                                         {auto_reconnect,1},
emqx_client_test |                                         {host,"127.0.0.1"},
emqx_client_test |                                         {port,3306},
emqx_client_test |                                         {user,"mqtt_u"},
emqx_client_test |                                         {password,"mqtt_p"},
emqx_client_test |                                         {database,"mqtt"},
emqx_client_test |                                         {encoding,utf8},
emqx_client_test |                                         {keep_alive,true}]]}},
emqx_client_test |                {restart_type,transient},
emqx_client_test |                {shutdown,5000},
emqx_client_test |                {child_type,worker}]
emqx_client_test | 2020-02-04 18:40:42.071 [error] crasher:
emqx_client_test |     initial call: ecpool_worker:init/1
emqx_client_test |     pid: <0.1839.0>
emqx_client_test |     registered_name: []
emqx_client_test |     exception exit: {{badmatch,{error,econnrefused}},
emqx_client_test |                      [{mysql_conn,init,1,
emqx_client_test |                                   [{file,"src/mysql_conn.erl"},{line,87}]},
emqx_client_test |                       {gen_server,init_it,2,
emqx_client_test |                                   [{file,"gen_server.erl"},{line,374}]},
emqx_client_test |                       {gen_server,init_it,6,
emqx_client_test |                                   [{file,"gen_server.erl"},{line,342}]},
emqx_client_test |                       {proc_lib,init_p_do_apply,3,
emqx_client_test |                                 [{file,"proc_lib.erl"},{line,249}]}]}
emqx_client_test |       in function  gen_server:init_it/6 (gen_server.erl, line 358)
emqx_client_test |     ancestors: [<0.1838.0>,<0.1836.0>,emqx_auth_mysql_sup,<0.1834.0>]
emqx_client_test |     message_queue_len: 0
emqx_client_test |     messages: []
emqx_client_test |     links: [<0.1838.0>,<0.1840.0>]
emqx_client_test |     dictionary: []
emqx_client_test |     trap_exit: true
emqx_client_test |     status: running
emqx_client_test |     heap_size: 610
emqx_client_test |     stack_size: 27
emqx_client_test |     reductions: 275
emqx_client_test |   neighbours:
emqx_client_test | 2020-02-04 18:40:42.072 [error] supervisor: {<0.1836.0>,ecpool_pool_sup}
emqx_client_test |     errorContext: start_error
emqx_client_test |     reason: {shutdown,
emqx_client_test |                 {failed_to_start_child,
emqx_client_test |                     {worker,1},
emqx_client_test |                     {{badmatch,{error,econnrefused}},
emqx_client_test |                      [{mysql_conn,init,1,
emqx_client_test |                           [{file,"src/mysql_conn.erl"},{line,87}]},
emqx_client_test |                       {gen_server,init_it,2,
emqx_client_test |                           [{file,"gen_server.erl"},{line,374}]},
emqx_client_test |                       {gen_server,init_it,6,
emqx_client_test |                           [{file,"gen_server.erl"},{line,342}]},
emqx_client_test |                       {proc_lib,init_p_do_apply,3,
emqx_client_test |                           [{file,"proc_lib.erl"},{line,249}]}]}}}
emqx_client_test |     offender: [{pid,undefined},
emqx_client_test |                {id,worker_sup},
emqx_client_test |                {mfargs,
emqx_client_test |                    {ecpool_worker_sup,start_link,
emqx_client_test |                        [emqx_auth_mysql,emqx_auth_mysql_cli,
emqx_client_test |                         [{pool_size,8},
emqx_client_test |                          {auto_reconnect,1},
emqx_client_test |                          {host,"127.0.0.1"},
emqx_client_test |                          {port,3306},
emqx_client_test |                          {user,"mqtt_u"},
emqx_client_test |                          {password,"mqtt_p"},
emqx_client_test |                          {database,"mqtt"},
emqx_client_test |                          {encoding,utf8},
emqx_client_test |                          {keep_alive,true}]]}},
emqx_client_test |                {restart_type,transient},
emqx_client_test |                {shutdown,infinity},
emqx_client_test |                {child_type,supervisor}]
emqx_client_test | 2020-02-04 18:40:42.074 [error] supervisor: {local,emqx_auth_mysql_sup}
emqx_client_test |     errorContext: start_error
emqx_client_test |     reason: {shutdown,
emqx_client_test |                 {failed_to_start_child,worker_sup,
emqx_client_test |                     {shutdown,
emqx_client_test |                         {failed_to_start_child,
emqx_client_test |                             {worker,1},
emqx_client_test |                             {{badmatch,{error,econnrefused}},
emqx_client_test |                              [{mysql_conn,init,1,
emqx_client_test |                                   [{file,"src/mysql_conn.erl"},{line,87}]},
emqx_client_test |                               {gen_server,init_it,2,
emqx_client_test |                                   [{file,"gen_server.erl"},{line,374}]},
emqx_client_test |                               {gen_server,init_it,6,
emqx_client_test |                                   [{file,"gen_server.erl"},{line,342}]},
emqx_client_test |                               {proc_lib,init_p_do_apply,3,
emqx_client_test |                                   [{file,"proc_lib.erl"},{line,249}]}]}}}}}
emqx_client_test |     offender: [{pid,undefined},
emqx_client_test |                {id,emqx_auth_mysql},
emqx_client_test |                {mfargs,{ecpool,start_pool,
emqx_client_test |                                [emqx_auth_mysql,emqx_auth_mysql_cli,
emqx_client_test |                                 [{pool_size,8},
emqx_client_test |                                  {auto_reconnect,1},
emqx_client_test |                                  {host,"127.0.0.1"},
emqx_client_test |                                  {port,3306},
emqx_client_test |                                  {user,"mqtt_u"},
emqx_client_test |                                  {password,"mqtt_p"},
emqx_client_test |                                  {database,"mqtt"},
emqx_client_test |                                  {encoding,utf8},
emqx_client_test |                                  {keep_alive,true}]]}},
emqx_client_test |                {restart_type,permanent},
emqx_client_test |                {shutdown,5000},
emqx_client_test |                {child_type,supervisor}]
emqx_client_test | 2020-02-04 18:40:42.076 [error] crasher:
emqx_client_test |     initial call: application_master:init/4
emqx_client_test |     pid: <0.1833.0>
emqx_client_test |     registered_name: []
emqx_client_test |     exception exit: {bad_return,
emqx_client_test |                      {{emqx_auth_mysql_app,start,[normal,[]]},
emqx_client_test |                       {'EXIT',
emqx_client_test |                        {{badmatch,
emqx_client_test |                          {error,
emqx_client_test |                           {shutdown,
emqx_client_test |                            {failed_to_start_child,emqx_auth_mysql,
emqx_client_test |                             {shutdown,
emqx_client_test |                              {failed_to_start_child,worker_sup,
emqx_client_test |                               {shutdown,
emqx_client_test |                                {failed_to_start_child,
emqx_client_test |                                 {worker,1},
emqx_client_test |                                 {{badmatch,{error,econnrefused}},
emqx_client_test |                                  [{mysql_conn,init,1,
emqx_client_test |                                    [{file,"src/mysql_conn.erl"},{line,87}]},
emqx_client_test |                                   {gen_server,init_it,2,
emqx_client_test |                                    [{file,"gen_server.erl"},{line,374}]},
emqx_client_test |                                   {gen_server,init_it,6,
emqx_client_test |                                    [{file,"gen_server.erl"},{line,342}]},
emqx_client_test |                                   {proc_lib,init_p_do_apply,3,
emqx_client_test |                                    [{file,"proc_lib.erl"},
emqx_client_test |                                     {line,249}]}]}}}}}}}}},
emqx_client_test |                         [{emqx_auth_mysql_app,start,2,
emqx_client_test |                           [{file,"src/emqx_auth_mysql_app.erl"},{line,36}]},
emqx_client_test |                          {application_master,start_it_old,4,
emqx_client_test |                           [{file,"application_master.erl"},{line,277}]}]}}}}
emqx_client_test |       in function  application_master:init/4 (application_master.erl, line 138)
emqx_client_test |     ancestors: [<0.1832.0>]
emqx_client_test |     message_queue_len: 1
emqx_client_test |     messages: [{'EXIT',<0.1834.0>,normal}]
emqx_client_test |     links: [<0.1832.0>,<0.1249.0>]
emqx_client_test |     dictionary: []
emqx_client_test |     trap_exit: true
emqx_client_test |     status: running
emqx_client_test |     heap_size: 987
emqx_client_test |     stack_size: 27
emqx_client_test |     reductions: 237
emqx_client_test |   neighbours:
emqx_client_test | 2020-02-04 18:40:42.077 [error] [Plugins] Load plugin emqx_auth_mysql failed, cannot start plugin emqx_auth_mysql for {bad_return,
emqx_client_test |                                                                                        {{emqx_auth_mysql_app,
emqx_client_test |                                                                                          start,
emqx_client_test |                                                                                          [normal,
emqx_client_test |                                                                                           []]},
emqx_client_test |                                                                                         {'EXIT',
emqx_client_test |                                                                                          {{badmatch,
emqx_client_test |                                                                                            {error,
emqx_client_test |                                                                                             {shutdown,
emqx_client_test |                                                                                              {failed_to_start_child,
emqx_client_test |                                                                                               emqx_auth_mysql,
emqx_client_test |                                                                                               {shutdown,
emqx_client_test |                                                                                                {failed_to_start_child,
emqx_client_test |                                                                                                 worker_sup,
emqx_client_test |                                                                                                 {shutdown,
emqx_client_test |                                                                                                  {failed_to_start_child,
emqx_client_test |                                                                                                   {worker,
emqx_client_test |                                                                                                    1},
emqx_client_test |                                                                                                   {{badmatch,
emqx_client_test |                                                                                                     {error,
emqx_client_test |                                                                                                      econnrefused}},
emqx_client_test |                                                                                                    [{mysql_conn,
emqx_client_test |                                                                                                      init,
emqx_client_test |                                                                                                      1,
emqx_client_test |                                                                                                      [{file,
emqx_client_test |                                                                                                        "src/mysql_conn.erl"},
emqx_client_test |                                                                                                       {line,
emqx_client_test |                                                                                                        87}]},
emqx_client_test |                                                                                                     {gen_server,
emqx_client_test |                                                                                                      init_it,
emqx_client_test |                                                                                                      2,
emqx_client_test |                                                                                                      [{file,
emqx_client_test |                                                                                                        "gen_server.erl"},
emqx_client_test |                                                                                                       {line,
emqx_client_test |                                                                                                        374}]},
emqx_client_test |                                                                                                     {gen_server,
emqx_client_test |                                                                                                      init_it,
emqx_client_test |                                                                                                      6,
emqx_client_test |                                                                                                      [{file,
emqx_client_test |                                                                                                        "gen_server.erl"},
emqx_client_test |                                                                                                       {line,
emqx_client_test |                                                                                                        342}]},
emqx_client_test |                                                                                                     {proc_lib,
emqx_client_test |                                                                                                      init_p_do_apply,
emqx_client_test |                                                                                                      3,
emqx_client_test |                                                                                                      [{file,
emqx_client_test |                                                                                                        "proc_lib.erl"},
emqx_client_test |                                                                                                       {line,
emqx_client_test |                                                                                                        249}]}]}}}}}}}}},
emqx_client_test |                                                                                           [{emqx_auth_mysql_app,
emqx_client_test |                                                                                             start,
emqx_client_test |                                                                                             2,
emqx_client_test |                                                                                             [{file,
emqx_client_test |                                                                                               "src/emqx_auth_mysql_app.erl"},
emqx_client_test |                                                                                              {line,
emqx_client_test |                                                                                               36}]},
emqx_client_test |                                                                                            {application_master,
emqx_client_test |                                                                                             start_it_old,
emqx_client_test |                                                                                             4,
emqx_client_test |                                                                                             [{file,
emqx_client_test |                                                                                               "application_master.erl"},
emqx_client_test |                                                                                              {line,
emqx_client_test |                                                                                               277}]}]}}}}
emqx_client_test | 2020-02-04 18:40:42.108 [error] PUT /api/v3/nodes/6ee1467027b6@172.19.0.3/plugins/emqx_auth_mysql/load error: badarg, stacktrace:
emqx_client_test | [{jsx_parser,value,4,[{file,"src/jsx_parser.erl"},{line,163}]},
emqx_client_test |  {minirest_handler,jsonify,4,[{file,"src/minirest_handler.erl"},{line,152}]},
emqx_client_test |  {minirest,handle_request,2,[{file,"src/minirest.erl"},{line,91}]},
emqx_client_test |  {minirest,init,2,[{file,"src/minirest.erl"},{line,83}]},
emqx_client_test |  {cowboy_handler,execute,2,[{file,"src/cowboy_handler.erl"},{line,41}]},
emqx_client_test |  {cowboy_stream_h,execute,3,[{file,"src/cowboy_stream_h.erl"},{line,296}]},
emqx_client_test |  {cowboy_stream_h,request_process,3,
emqx_client_test |                   [{file,"src/cowboy_stream_h.erl"},{line,274}]},
emqx_client_test |  {proc_lib,init_p_do_apply,3,[{file,"proc_lib.erl"},{line,249}]}]


@mttbx
Copy link
Author

mttbx commented Feb 4, 2020

this is my sql script:


drop database if exists mqtt;

create database mqtt;

use mqtt;

grant select, insert, update, delete on mqtt.* to 'mqtt_u'@'%' identified by 'mqtt_p';

CREATE TABLE `mqtt_user` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `username` varchar(100) DEFAULT NULL,
  `password` varchar(100) DEFAULT NULL,
  `salt` varchar(35) DEFAULT NULL,
  `is_superuser` tinyint(1) DEFAULT 0,
  `created` datetime DEFAULT NULL,
  PRIMARY KEY (`id`),
  UNIQUE KEY `mqtt_username` (`username`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;

CREATE TABLE `mqtt_acl` (
  `id` int(11) unsigned NOT NULL AUTO_INCREMENT,
  `allow` int(1) DEFAULT NULL COMMENT '0: deny, 1: allow',
  `ipaddr` varchar(60) DEFAULT NULL COMMENT 'IpAddress',
  `username` varchar(100) DEFAULT NULL COMMENT 'Username',
  `clientid` varchar(100) DEFAULT NULL COMMENT 'ClientId',
  `access` int(2) NOT NULL COMMENT '1: subscribe, 2: publish, 3: pubsub',
  `topic` varchar(100) NOT NULL DEFAULT '' COMMENT 'Topic Filter',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

INSERT INTO `mqtt_acl` (`id`, `allow`, `ipaddr`, `username`, `clientid`, `access`, `topic`)
VALUES
    (1,1,NULL,'$all',NULL,2,'#'),
    (2,0,NULL,'$all',NULL,1,'$SYS/#'),
    (3,0,NULL,'$all',NULL,1,'eq #'),
    (5,1,'127.0.0.1',NULL,NULL,2,'$SYS/#'),
    (6,1,'127.0.0.1',NULL,NULL,2,'#'),
    (7,1,NULL,'dashboard',NULL,1,'$SYS/#');

@mttbx
Copy link
Author

mttbx commented Feb 5, 2020

It's worked now, but I don't know why...

@mttbx mttbx closed this as completed Feb 5, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant