【问题标题】:pt-table-sync, Strange Issues regarding Hostnamept-table-sync,关于主机名的奇怪问题
【发布时间】:2012-02-18 04:34:29
【问题描述】:

我正在尝试运行 pt-table-sync 以重新同步 MYSQL 主从复制。 我有两个运行 Debian 5 的 VPS 系统,并且复制运行没有任何问题。

我遇到的问题是,当我在 MASTER 服务器上运行 pt-table-sync 时,它一直无法连接到 SLAVE 服务器。我正在运行以下命令:
pt-table-sync --dry-run --sync-to-master h='从服务器的ip',u='user',p='password'
返回:
主机“我的网站地址”不允许连接到此 MySQL 服务器...

但是,如果我尝试从主服务器远程连接到从属 mysql 服务器:
mysql -h '从服务器的ip' -u '用户' -p'密码'

那我就没有问题了,可以正常访问数据库了。

在我的从服务器上,我尝试调整 MASTER 连接时使用的 mysql 用户帐户,调整主机,甚至暂时将它们设置为“任何”以查看它是否可以工作。

我还发现奇怪的是,根据我发出的确切 pt-table-sync 命令,机器的主机名似乎发生了变化。例如:

pt-table-sync --dry-run --sync-to-master h='从服务器的ip',u='user',p='password'
--> Host 'my website address' is not allowed to connect to this MySQL server at ...

pt-table-sync --dry-run --sync-to-master '从服务器的ip'
--> 用户 'root'@''my VPS name'' 的访问被拒绝(使用密码:NO)

我不确定为什么它会根据两个命令提供不同的“主机”名称?当我可以远程直接连接到 mysql 时,任何想法为什么会失败?

【问题讨论】:

    标签: mysql replication percona


    【解决方案1】:

    我遇到了类似的问题,原因是两台服务器上的 MySQL root 用户的密码不同。在我在两端设置相同的密码后,一切都开始工作了。

    【讨论】:

      【解决方案2】:

      是的,正如你所说的user3207102,我已经解决了问题。

      这就是我所做的。

      1. 首先我检查了我的用户是否可以简单地从slave登录到master。

        $ mysql -uroot -pmypassword123 -h master.ip.addr
        ERROR 1045 (28000): Access denied for user 'root'@'zeronepal.local' (using password: YES)
        
      2. 我知道我可以从它自己的机器登录到master,所以我检查了root用户是否可以从其他主机登录。

      mysql> 显示 'root'@'%' 的授权;
      ERROR 1141 (42000): 在主机 '%' 上没有为用户 'root' 定义这样的授权

      呸!!我没有授权......所以我给root用户password的权限与slave的权限相同

      mysql> 将 . 上的所有权限授予由 'mypassword123' 标识的 'root'@'%';
      查询正常,0 行受影响(0.00 秒)
      mysql> 刷新权限;
      查询正常,0 行受影响(0.00 秒)

      终于在我的主人上运行命令...

      $./pt-table-sync -uroot --execute --sync-to-master slave.ip.addr --tables employees.blah --ask-pass
      输入 192.168.2.214 的密码:

      ... tadaa ......它奏效了,万岁(快乐)。谢谢大家。

      【讨论】:

        【解决方案3】:

        我解决了这个问题:错误不是来自从数据库服务器,而是来自主服务器本身! pt-table-check 尝试首先连接到从站,然后连接到主站,使用相同的用户名和密码!这就是为什么如果您输入了错误的密码(在这种情况下错误来自从站),您会得到不同的用户。

        在我的情况下,它试图以user@[IP address] 而不是user@localhost 连接到主服务器(我在主服务器上运行命令)并且没有定义这样的用户。 希望对你有帮助。

        大卫

        【讨论】:

          猜你喜欢
          • 2015-01-19
          • 1970-01-01
          • 1970-01-01
          • 2010-11-08
          • 2019-08-28
          • 2021-08-27
          • 1970-01-01
          • 2011-02-18
          • 1970-01-01
          相关资源
          最近更新 更多