关于firewall-cmd对Docker无效的问题

35次阅读

共计 1685 个字符,预计需要花费 5 分钟才能阅读完成。

事情是这样的,搭建了 MySQL 主从集群,分别位于两台机器上,并对数据库的 3306 端口做了映射,映射到主机的 1089。搭建成功,主库和从库都可以通过 1089 访问,主从复制正常。后来,将 Docker 的 "iptables" 值设置为 false,让 Docker 不添加 iptables 规则,主库和从库使用 firewall-cmd 放行 1089 端口。使用相同的步骤和配置搭建主从集群,搭建完成后客户端也可以正常通过 1089 端口连接到主库和从库,但是主库和从库间复制异常,登录从库查询从库状态,发现 Slave_IO_Running:一直处于 Connecting 状态,也就是从库连接不到主库。大佬们,帮忙分析下问题出在哪里,谢谢。32MB.CN 2023-07-19 21:23 2 那就改回去,你不想让外网访问,映射端口时加上本地 IP -p 127.0.0.1:8080:80 朱元璋 2023-07-19 21:24 3 根据您的描述,当您使用 iptables 为 Docker 添加规则时,主从复制正常工作。但是,当您将 Docker 的 iptables 设置为 false,并使用 firewall-cmd 放行端口时,主库和从库之间的复制出现了问题。从库的 `Slave_IO_Running` 状态一直处于 `Connecting` 状态,即从库无法连接到主库。这种情况可能是由于防火墙配置或网络连接问题导致的。请确保按照以下步骤进行排查:1。确认主库和从库的网络连接正常。确保主库和从库可以相互访问,并且没有任何网络层面的问题。2。检查主库和从库的防火墙配置。确保主库和从库的防火墙允许通过 1089 端口的流量。您可以使用以下命令检查防火墙规则:   “`   sudo firewall-cmd –list-all   “` 确认是否存在针对 1089 端口的允许规则。3。检查主库和从库的 MySQL 配置。确保在主库和从库的 MySQL 配置文件中,`bind-address` 参数设置为正确的 IP 地址,并且 `port` 参数设置为 1089。4。检查主库和从库的 MySQL 用户授权。确保在主库和从库上,使用正确的用户和密码进行授权,以便从库可以连接到主库。5。检查主库的二进制日志配置。在主库的 MySQL 配置文件中,确认以下参数是否正确设置:   “`   log-bin=mysql-bin   server-id=1   “` 确保 `log-bin` 参数启用了二进制日志,并且 `server-id` 参数设置为唯一的值。6。检查从库的主从复制配置。在从库的 MySQL 配置文件中,确认以下参数是否正确设置:   “`   server-id=2   relay-log=mysql-relay-bin   “` 确保 `server-id` 参数设置为唯一的值,并且 `relay-log` 参数启用了中继日志。7。检查从库的主从复制用户配置。在从库上,确保使用正确的用户和密码配置主从复制。完成上述步骤后,重新启动主库和从库,并检查从库的状态是否正常。如果问题仍然存在,可以查看主库和从库的日志文件,以获取更多的错误信息来进行排查。帮你问了 ChatGPT? yhsiao 2023-07-19 21:25 432MB.CN 发表于 2023-7-19 21:23 那就改回去,你不想让外网访问,映射端口时加上本地 IP -p 127.0.0.1:8080:80 我主要是想通过 firewall-cmd 来管理主机的防火墙。实现弄不清楚,为什么可以通过 1089 访问主库和从库,但从库却连不上主库 yhsiao 2023-07-19 21:26 5 朱元璋 发表于 2023-7-19 21:24 根据您的描述,当您使用 iptables 为 Docker 添加规则时,主从复制正常工作。但是,当您将 Docker 的 iptables 设置 … 我也问过好几次 GPT 了,他给出的可能原因都不是,都排查了 charm 2023-07-19 21:26 6Docker 本来就不遵守 iptables 和 UFW(United Farm Workers) 的规则,他自己有自己的一套,应该是在 Docker 里设置他自己的规则。建议谷歌 有相应解决办法

正文完
 0