我将Maxscale作为3个Galera节点的ReadWriteSplit。节点1是主节点,其他2是从节点。
我总是使用以下命令在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.%';"因为没有重启任何nod (由于MariaDB升级或其他原因),所以一切正常。但如果节点重新启动,当任何查询命中从节点时,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.%';"错误就会停止。这是一个bug,还是我没有做正确的事情?
发布于 2020-11-12 19:48:31
这看起来像是在数据库级别出了问题。要测试这一点,您可以尝试在重新启动该节点后手动连接到该节点,以查看它是否工作。
https://stackoverflow.com/questions/64800656
复制相似问题