docker
运行mongo复制集,只能连接主节点,无法连接集群
我运行在一台云服务器上的
mongo的配置是这样的
代码是连接集群的
程序单独访问主机点可以,但是访问不了集群,报错
server selection error: server selection timeout, current topology: { Type: ReplicaSetNoPrimary, Servers: [{ Addr: 192.168.0.127:27017, Type: Unknown, Last error: connection() error occurred during connection handshake: dial tcp 192.168.0.127:27017: i/o timeout }, { Addr: 192.168.0.127:27018, Type: Unknown, Last error: connection() error occurred during connection handshake: dial tcp 192.168.0.127:27018: i/o timeout }, { Addr: 192.168.0.127:27019, Type: Unknown, Last error: connection() error occurred during connection handshake: dial tcp 192.168.0.127:27019: i/o timeout }, ] }
关于mongo的副本集的host我设置过:172.17.0.1、localhost、云主机地址,都无效
不知道改了什么,或者是数据库指定了5.0?今天重新部署一遍就可以了T.T,记录一下两位大佬的教程
部署教程
https://blog.csdn.net/zhanngle/article/details/105132527
mongo的auth key的权限不对,无法启动,执行 chown 999 mongo-rs.key,下面是原帖
https://segmentfault.com/q/1010000020297970
如果你使用 Docker 运行 MongoDB 副本集,遇到无法连接集群的问题,可能有以下原因:
确保你的 Docker 容器已经正确启动,并且副本集的所有成员都已经加入。
检查你的程序是否正确配置了连接参数,例如主机名、端口号、认证等。可以尝试使用 MongoDB 自带的命令行工具 mongo 进行测试连接。
如果你使用了 Docker 网络模式 --link 或者自定义的网络模式,请确保容器之间可以互相通信。
确保你的程序与 MongoDB 容器在同一网络中。如果你的程序运行在另外一个 Docker 容器中,可以考虑使用 Docker 网络或者自定义网络来连接两个容器。
如果你使用了 Docker Compose,可以检查你的 Compose 文件是否正确配置了网络和容器依赖关系。
最后,你可以尝试查看 MongoDB 容器的日志,以便更好地了解错误信息和排查问题。
希望这些建议可以帮助你解决问题。