pt-table-sync,关于主机名的奇怪问题

时间:2012-02-18 04:34:30

标签: mysql replication percona

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

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

连接到此MySQL服务器

但是,如果我尝试从主服务器远程连接到从属mysql服务器:
mysql -h'ip of slave server'-''user'-p'password'

然后我没有任何问题,可以正常访问数据库。

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

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

pt-table-sync --dry-run --sync-to-master h ='ip of slave server',u ='user',p ='password'
- >主机“我的网站地址”不允许在......

连接到此MySQL服务器

pt-table-sync --dry-run --sync-to-master'ip of slave server'
- >访问被拒绝用户'root'@''我的VPS名称''(使用密码:否)

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

3 个答案:

答案 0 :(得分:1)

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

答案 1 :(得分:0)

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

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

的Davide

答案 2 :(得分:0)

雅,正如你所说user3207102,我解决了问题。

这就是我所做的。

  1. 首先,我检查了我的用户是否可以简单地从奴隶登录到主人。

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

  3.   

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

    不要!!我没有赠款......所以我给root用户提供了password与奴隶相同的特权

      

    的MySQL>将的所有权限授予'mypassword123'标识的'root'@'%';
      查询OK,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 ...它有效,华友世纪(快乐)。谢谢你。