当我尝试在 Windows 上的 Docker 中创建双节点 MariaDB 集群时,出现以下错误:
错误 1396 (HY000) 第 8 行:'root'@'%' 的 CREATE USER 操作失败
对于第一个节点,我运行这个
docker run --network maria_db --name maria-0 -e MYSQL_INITDB_SKIP_TZINFO=yes -e MYSQL_ALLOW_EMPTY_PASSWORD=yes mariadb --wsrep-new-cluster --wsrep_cluster_address=gcomm://maria-0,maria-1 --binlog-format=ROW --wsrep-on=1 --wsrep-provider=/usr/lib/galera/libgalera_smm.so
等到它准备好连接后,我打开一个新终端并运行以下命令:
docker run --network maria_db --name maria-1 -e MYSQL_INITDB_SKIP_TZINFO=yes -e MYSQL_ALLOW_EMPTY_PASSWORD=yes mariadb --wsrep_cluster_address=gcomm://maria-0,maria-1 --binlog-format=ROW --wsrep-on=1 --wsrep-provider=/usr/lib/galera/libgalera_smm.so
我尝试设置 root 密码,但得到的输出相同。
节点二的日志非常大,因此我创建了一个 pastebin:https://pastebin.com/dp85mpPg。我曾尝试将此日志嵌入到这个问题中,但似乎无法在不换行的情况下做到这一点。
我真的不知道是什么原因造成的,但可能看起来像是镜像在同步数据库后尝试在节点二上重新创建数据库?我不知道。这对我来说是新的,
希望有人知道该怎么做。
答案1
我自己已经完成了这个工作,我称之为堆栈,https://github.com/mslot/stack. 构建 Maria 数据库映像。它使用 consul 作为发现工具。