问题
使用MySQL主从复制插件(重构版)配置从服务器时,添加完成后“同步状态”显示错误,无法进行正常同步,点击修复按钮后问题依然无法解决。排查后发现是这个问题:“注意3:通过宝塔安装的数据库root默认不支持远程权限”。
解决步骤
既然是因为主数据库的root没有开放远程连接权限,所以需要自己手动设置一下。
在 MySQL 中给 root 用户开启远程访问权限,需要进行几个步骤。请注意,出于安全考虑,通常不建议允许 root 用户从远程进行访问。如果确实需要,建议采取额外的安全措施,如设置强密码、使用 VPN、限制特定 IP 地址的访问等。
以下是在 MySQL 中给 root 用户开启远程访问权限的步骤(如果你的主从复制用的不是root用户请先查询后给你实际使用的用户开启远程访问权限,该方法适用于从库是动态IP或经常更换从库IP的用户,在“运行状态”中的“Master_User(主服务器用户)”后面可以看到你所正在使用的用户):
步骤 1: 登录到 MySQL
首先,您需要在 MySQL 服务器上登录到 MySQL。在命令行中输入:
mysql -u root -p
然后输入 root 用户的密码。
步骤 2: 查询用户表
在 MySQL 提示符下,运行以下 SQL 命令来查询 root 用户的连接权限:
SELECT User, Host FROM mysql.user WHERE User='root';
这个命令将列出所有 root 用户的记录,包括它们的 Host
字段。Host
字段指明了从哪些主机该用户可以连接。例如:
'localhost'
表示用户只能从本地机器连接。(宝塔MySQL的默认设置)'%'
表示用户可以从任何远程主机连接。- 具体的 IP 地址或主机名表示只能从特定的远程地址连接。
步骤 3: 更改 root 用户的主机设置
在 MySQL 提示符下,运行以下 SQL 命令来更改 root 用户的主机设置,允许从任何主机进行连接:
UPDATE mysql.user SET Host = '%' WHERE User = 'root';
这里,%
表示允许 root 用户从任何 IP 地址连接。您也可以将 %
替换为特定的 IP 地址或地址范围,以增加安全性(我直接用的 %
,因为安全)。
步骤 4: 刷新权限
更改用户权限后,您需要执行以下命令来刷新权限,使更改生效:
FLUSH PRIVILEGES;
步骤 5: 退出 MySQL
完成以上步骤后,您可以退出 MySQL:
EXIT;
步骤 6: 检查 MySQL 配置
确保 MySQL 配置文件(通常是 my.cnf
或 my.ini
)中的 bind-address
参数被设置为允许远程连接。如果设置为 127.0.0.1
(只允许本地连接),您需要将其更改为 0.0.0.0
或注释掉这一行。
[mysqld]
bind-address = 0.0.0.0
更改配置文件后,您需要重启 MySQL 服务。
步骤 7: 测试远程连接
从远程机器上尝试连接到 MySQL 主服务器,以确保设置正确:
mysql -h [MySQL主服务器IP地址] -u root -p
最后删除之前的设置,重新添加从数据库,问题解决!
评论