【填坑教程】宝塔面板MySQL主从复制重构版报错

吾爱分享 建站运维评论24字数 818阅读2分43秒阅读模式
【填坑教程】宝塔面板MySQL主从复制重构版报错插图

问题

使用MySQL主从复制插件(重构版)配置从服务器时,添加完成后“同步状态”显示错误,无法进行正常同步,点击修复按钮后问题依然无法解决。排查后发现是这个问题:“注意3:通过宝塔安装的数据库root默认不支持远程权限”。

【填坑教程】宝塔面板MySQL主从复制重构版报错-图片1

解决步骤

既然是因为主数据库的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.cnfmy.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

最后删除之前的设置,重新添加从数据库,问题解决!

【填坑教程】宝塔面板MySQL主从复制重构版报错-图片2

 最后更新:2024-1-14
吾爱分享

发表评论