0

When I start maxscale, I get the following error:

...
2017-01-17 20:26:05   debug  : qc_sqlite: Token 34 not handled explicitly.
2017-01-17 20:26:05   debug  : qc_sqlite: Token 103 not handled explicitly.
2017-01-17 20:26:05   debug  : qc_sqlite: Token 216 not handled explicitly.
2017-01-17 20:26:05   notice : Loaded module maxscaled: V2.0.0 from /usr/lib64/maxscale/libmaxscaled.so
2017-01-17 20:26:05   notice : Listening connections at /tmp/maxadmin.sock with protocol MaxScale Admin
2017-01-17 20:26:05   debug  : 140414757828672 [poll_add_dcb] Added dcb 0x1ad27f0 in state DCB_STATE_LISTENING to poll set.
2017-01-17 20:26:05   notice : Using encrypted passwords. Encryption key: '/var/lib/maxscale/.secrets'.
2017-01-17 20:26:05   error  : Failed to retrieve database names:
2017-01-17 20:26:05   error  : Shard Router: Unable to load database grant information, MaxScale authentication will proceed without including database permissions. See earlier error messages for user '*******' for more information.
2017-01-17 20:26:05   error  : Failed to retrieve database names:
2017-01-17 20:26:05   error  : Shard Router: Unable to load database grant information, MaxScale authentication will proceed without including database permissions. See earlier error messages for user '*******' for more information.

I enabled debug, and still can't see what the "earlier" message is!! I can connect to the servers using the configured account, and I run a show databases without any issues.

The databases are in RDS.

Any idea?

Thanks

Younes
  • 375
  • 4
  • 16

2 Answers2

0

It didn't matter that the maxscale was able to run "show databases", it needs an explicit grant for show databases as it runs:

SELECT * 
FROM   ( 
   ( 
          SELECT Count(1) AS ndbs 
          FROM   information_schema.schemata) AS tbl1, 
   ( 
          SELECT grantee, 
                 privilege_type 
          FROM   information_schema.user_privileges 
          WHERE  privilege_type='SHOW DATABASES' 
          AND    REPLACE(grantee, '\'','')=CURRENT_USER()) AS tbl2);

So, without specifically grant that priv, the query will return nothing.

Younes
  • 375
  • 4
  • 16
0

The grant requirements for the MaxScale users are described in the MaxScale Tutorial.

The required grants for the maxuser@% user are:

GRANT SELECT ON mysql.user TO 'maxuser'@'%';
GRANT SELECT ON mysql.db TO 'maxuser'@'%';
GRANT SELECT ON mysql.tables_priv TO 'maxuser'@'%';
GRANT SHOW DATABASES ON *.* TO 'maxuser'@'%';
GRANT REPLICATION CLIENT ON *.* TO 'maxuser'@'%';
markusjm
  • 2,358
  • 1
  • 11
  • 23