我有一个主从设置工作正常,直到从属断电。现在我明白了
连接到主机 '[email protected]:50000' 时出错 - 重试时间:60
最大重试次数:86400
消息:用户 'repl'@'localhost' 的访问被拒绝(使用密码:是)
密码没有改变,我可以使用登录到数据库
slave-host$ mysql -h10.0.0.1 -P50000 --user=repl --password='secret'
但是,一旦登录,我就看不到任何数据库,除了information_schema
. 尝试use <my_db_name>
给出拒绝访问错误。
上主
master-host: mysql> show grants for repl@localhost;
GRANT REPLICATION SLAVE ON *.* TO
'repl'@'localhost' IDENTIFIED BY PASSWORD '*xxxxx'
我已经尝试以各种组合重新授予访问权限,FLUSH PRIVILEGES
但START/STOP SLAVE;
我没有取得任何进展。
注意。位于 10.0.0.1 的主机具有到数据库主机的 SSH 隧道设置,因此授予repl@localhost
是适当的,因为主机将其视为本地流量。
主从都在:10.1.26-MariaDB-0+deb9u1
奇怪的。
修复似乎是更改密码。
repl
master 用户的密码。change master to master_password = 'new pass'
Mariadb 10.5 似乎将密码存储在另一个表 mysql.global_priv 以及 mysql.user 中。我的用户不在 global_priv 中,这导致了登录问题。再次设置密码解决了这个问题。似乎没有从 master 复制 global_priv,它包含数据库变成副本之前的旧值。
我刚刚检查了旧的 MariaDB 10.3,global_priv 不存在。
您
GRANT
只需要REPLICATION SLAVE
(而不是CLIENT
)来自从站的登录名。而且,假设 Master 和 Slave 是独立的机器,“localhost”是不够的。它需要是 Master 的主机名或 IP 地址。