0

我将 Maxscale 作为 3 个 Galera 节点的 ReadWriteSplit。节点 1 是 MASTER,其他 2 是 SLAVES。

我总是在 master 上创建我的用户:

mysql -e "CREATE DATABASE ${DB_NAME} CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;"
mysql -e "CREATE USER IF NOT EXISTS '${DB_NAME}'@'10.1.0.%' IDENTIFIED BY '${DB_PASS}';"
mysql -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_NAME}'@'10.1.0.%';"

由于没有重新启动任何点头(出于 MariaDB 升级或其他原因),一切都很好。但是如果节点重新启动,当任何查询命中 SLAVES Maxscale 声称:

error  : (2648715) [mariadbbackend] Invalid authentication message from backend 'sql3'. Error code: 1044, Msg : #42000Access denied for user '${DB_NAME}'@'10.1.0.%' to database '${DB_NAME}'
warning: (2648715) [readwritesplit] Refresh rate limit (once every 30 seconds) exceeded for load of users' table.

要修复它,在 MASTER,我需要GRANT ALL PRIVILEGES再次:

mysql -e "GRANT ALL PRIVILEGES ON ${DB_NAME}.* TO '${DB_NAME}'@'10.1.0.%';"

并且错误停止。这是一个错误还是我做事不正确?

4

1 回答 1

0

看起来数据库级别出了点问题。要对此进行测试,您可以尝试在重新启动该节点后手动连接到该节点以查看它是否有效。

于 2020-11-12T11:48:30.887 回答