MaxScale: не удалось получить имена баз данных
Когда я запускаю maxscale, я получаю следующую ошибку:
...
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.
Я включил отладку и до сих пор не вижу, что это за "раннее" сообщение!! Я могу подключиться к серверам, используя настроенную учетную запись, и я запускаю шоу баз данных без каких-либо проблем.
Базы данных находятся в RDS.
Любая идея?
Спасибо
2 ответа
Это не имело значения, что maxscale смог запустить "show database", ему нужно явное разрешение для show database во время работы:
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);
Таким образом, без предоставления этой привилегии запрос ничего не даст.
Требования к грантам для пользователей MaxScale описаны в учебном пособии по MaxScale.
Требуемые гранты для maxuser@%
пользователь:
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'@'%';