gpt4 book ai didi

使用虚拟 IP 在集群服务器上进行 MySQL 复制

转载 作者:行者123 更新时间:2023-11-30 22:59:23 31 4
gpt4 key购买 nike

我正在尝试设置 MySQL 复制。问题是复制必须在 2 个集群服务器之间完成,并且使用的用户必须通过服务器的虚拟 IP 连接。

配置:

  1. /etc/hosts 中添加所需的主机名 - 两台服务器

    # 10.0.1.34 - is the Virtual IP of the slave cluster
    # 10.0.1.45 - is the virtual IP of the master cluster
    10.0.1.34 mysqlslave
    10.0.1.45 mysqlmaster
  2. 创建 MySQL repl 用户并授予两台服务器的访问权限

    1. 在主服务器上:

       mysql -u root -pmy-password
      mysql> CREATE USER 'repl'@'mysqlslave' IDENTIFIED BY 'my-password';
      mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'mysqlslave';
      mysql> GRANT ALL ON *.* TO 'repl'@'mysqlslave' IDENTIFIED BY 'my-password';
      mysql> exit;
    2. 在从属服务器上:

       mysql -u root -pmy-password
      mysql> CREATE USER 'repl'@'mysqlmaster' IDENTIFIED BY 'my-password';
      mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'mysqlmaster';
      mysql> GRANT ALL ON *.* TO 'repl'@'mysqlmaster' IDENTIFIED BY 'my-password';
      mysql> exit;

现在,当我尝试通过运行命令(在主服务器上)检查是否已成功授予访问权限时:

mysql -u repl -pmy-password -h mysqlslave

我收到错误:

ERROR 1045 (28000): Access denied for user 'repl'@'10.0.1.46' (using password: YES)

其中 10.0.1.46 是主集群主节点的 IP。

为什么尝试连接时不使用虚拟 IP?

注意:如果我运行以下命令:

mysql -u repl -pmy-password -h mysqlslave --bind_address='10.0.1.45'

连接已建立,但我想默认使用此绑定(bind)。我已经尝试更改 my.cnf 中的 bind-address 参数但没有成功。

有什么想法吗?谢谢。

最佳答案

目前的解决方案是将所有集群 IP 添加到 /etc/hosts 文件中:

10.0.1.34       mysqlslave
10.0.1.35 mysqlslave
10.0.1.36 mysqlslave
10.0.1.45 mysqlmaster
10.0.1.46 mysqlmaster
10.0.1.47 mysqlmaster

如果除了我找到的解决方案之外还有任何其他解决方案,请发表评论。

关于使用虚拟 IP 在集群服务器上进行 MySQL 复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24754009/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com