0

我正在尝试运行 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'
返回:
Host 'my网站地址'不允许连接到此 MySQL 服务器...

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

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

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

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

pt-table-sync --dry-run --sync-to-master h='从服务器的ip',u='user',p='password'
--> Host '我的网址'不允许连接到这个 MySQL 服务器...

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

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

4

3 回答 3

1

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

于 2012-06-01T16:39:47.563 回答
1

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

这就是我所做的。

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

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

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

呸!!我没有授权......所以我给用户与奴隶相同root的特权password

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 ...它奏效了,万岁(快乐)。谢谢家伙。

于 2014-01-23T11:47:57.387 回答
0

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

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

戴维德

于 2014-01-17T15:04:10.533 回答