MariaDB 和 HAProxy(集群)的连接问题

Connection issue with MariaDB and HAProxy (cluster)

我的 haproxy 运行 虚拟机和集群的连接有问题。让我解释一下这个问题。 我用 MariaDB(IP 192.168.0.1 和 192.168.0.2)和 haproxy 主机(IP 192.168.0.3)设置了 2 个 galera 集群机器。我几乎遵循了我在互联网上找到的所有教程,但我总是遇到同样的问题:我无法连接并从 haproxy 执行任何查询

实际状态:

当我尝试在 haproxy 中执行查询时,我得到以下结果:

mysql -u root -pPASSWORD --host=192.168.0.3 --port=3306
ERROR 2003 (HY000): Can't connect to MySQL server on '192.168.0.3' (111 "Connection refused")

正如我所写的那样,我遵循了几个教程,但问题总是一样的。谁能帮帮我?

您正在使用的命令正在尝试连接到 HAProxy 服务器上的数据库服务。据我从您的描述中可以看出,此服务器(192.168.0.3)上没有数据库服务运行。

如果您想连接到数据库服务,则需要使用 Galera 集群中其中一台服务器的 IP 地址或主机名 - 例如192.168.0.1 或 192.168.0.2.

您必须在数据库服务中创建一个用户来授权这种访问(从阅读您的 post 来看,您似乎没有这样做)。其次,不建议启用任何远程访问 'root' 。 您可以在数据库集群中创建一个远程用户并授予一些权限。登录到集群中的一台服务器并以root身份登录到数据库:

# mysql -u root -p

然后创建具有远程访问权限的用户并授予一些权限;

MariaDB [(none)]> create user 'haproxy'@'192.168.0.3'identified by 'aPassword';
MariaDB [(none)]> GRANT USAGE,REPLICATION CLIENT,PROCESS,SHOW DATABASES,SHOW VIEW ON *.* TO 'haproxy'@'192.168.0.3';
MariaDB [(none)]> FLUSH PRIVILEGES;

然后尝试使用来自 HAProxy 服务器的帐户 'haproxy':

# mysql -u haproxy --host 192.168.0.1 -p

现在应该可以了。我还注意到的一件事是,在集群的 my.cnf 中,集群服务器的行包含实际服务器地址以外的地址:

wsrep_cluster_address=gcomm://192.168.0.94,192.168.0.93

如果这实际上不是复制粘贴的产物,请确保这些与您的配置一致。

祝你好运!