我正在尝试运行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 -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'
- >主机“我的网站地址”不允许在......
pt-table-sync --dry-run --sync-to-master'ip of slave server'
- >访问被拒绝用户'root'@''我的VPS名称''(使用密码:否)
我不确定为什么根据这两个命令提供不同的'主机'名称?当我可以远程直接连接到mysql时,为什么会失败?
答案 0 :(得分:1)
我遇到了类似的问题,这是由两台服务器上的MySQL root用户的密码不同引起的。我在两端设置了相同的密码后,一切都开始工作了。
答案 1 :(得分:0)
我解决了这个问题:错误不是来自从属数据库服务器,而是来自主服务器本身! pt-table-check尝试首先连接到slave,然后使用相同的用户和密码连接到master!这就是为什么如果你输入了错误的密码,你会在错误上找到不同的用户(在这种情况下,错误来自奴隶)。
在我的情况下,它试图以user
@ [IP address]
而不是user
@ localhost
(我在主设备上运行命令)连接到主设备这样的用户没有定义。
我希望它有所帮助。
的Davide
答案 2 :(得分:0)
雅,正如你所说user3207102,我解决了问题。
这就是我所做的。
首先,我检查了我的用户是否可以简单地从奴隶登录到主人。
$ mysql -uroot -pmypassword123 -h master.ip.addr ERROR 1045 (28000): Access denied for user 'root'@'zeronepal.local' (using password: YES)
我知道我可以从自己的机器登录主人,所以我检查了root
用户是否可以从其他主机登录。
不要!!我没有赠款......所以我给的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 ...它有效,华友世纪(快乐)。谢谢你。