因此,两周以来,我一直在尝试使用我在网络上找到的不同方法(法语教程也是如此)在两个 Raspberry pi 上设置主/主复制(使用 apache2 Web 服务器和 mariadb 数据库)。其中许多方法非常相似,但我仍然无法使复制工作,现在我陷入困境,因为我不知道我做错了什么。刚开始时,我设法在大约一周后使主/从复制工作(即使它是可以在主服务器上写入的从服务器),因此我决定以另一种方式进行设置以将其转换为主/主复制,从那时起它就“坏了”(在 M/M 或 M/S 上都不起作用)。在我遵循的每个教程中,步骤几乎相同:
编辑“ sudo nano /etc/my.cnf ”
添加所需信息 ->
日志箱
服务器 ID=1
复制-do-db=复制
绑定地址=192.168.xx
(以及我在各种网站上找到的其他内容,我认为它们可以帮助我使其更加精确并且可能有效)
然后:“systemctl restart mariadb”
此后使用 master 1 登录到 mariadb 并进行设置:
创建用户 '$master_username'@'%',由 '$master_password' 识别;
授予复制从属权限。至'$master_username'@'%';
清除特权;
显示主状态;
然后在另一台 raspi(master 2)上执行相同操作,输入正确的信息并添加:
从站停止;
将 MASTER 更改为 MASTER_HOST = '192.168.0.12'、MASTER_USER = '$master_username'、MASTER_PASSWORD = '$master_password'、MASTER_LOG_FILE =mariadb-bin.xxxxxx;、MASTER_LOG_POS = xxxx;
从属启动;
显示主状态;
然后回到 Master 1:
从站停止;
将 MASTER 更改为 MASTER_HOST = '192.168.0.15'、MASTER_USER = '$master_username'、MASTER_PASSWORD = '$master_password'、MASTER_LOG_FILE =mariadb-bin.xxxxxxxx;、MASTER_LOG_POS = xxx;
从属启动;
所以现在,我会对两者执行 SHOW SLAVE STATUS \G 来查看它是否有效,但它无效,并且它显示:
Slave_IO_Running:正在连接
Slave_SQL_Running:是
它说无法双向连接到主机,但是当我 ping 它们时,它们可以互相找到。
如果有人知道发生了什么事或者我做错了什么,那将非常有帮助!祝你有个愉快的一天
答案1
造成此类问题的原因之一可能是防火墙阻止了对 MariaDB 默认端口 3306 的访问。如果您安装了nc
、netcat
或telnet
程序,则可以检查 MariaDB 监听的网络端口是否打开。
nc 192.168.0.12 3306
或telnet
telnet 192.168.0.12 3306
如果其中任何一个打印出如下所示的乱码,则表明端口是开放的。
r5.5.5-10.2.11-MariaDB-10.2.11+maria~jessie-log'le6|2}Cv���IIs'eGt5IP6]mysql_native_password
相反,如果您收到错误并且连接被拒绝,则您知道问题出在防火墙上。