PHP连接MongoDB数据库报错“No suitable servers found (`serverSelectionTryOnce` set)”的解决办法...

本文介绍了解决MongoDB与IPv6冲突的问题,提供了两种方法:一是通过修改配置文件来支持IPv6;二是禁用IPv6以确保MongoDB正常运行。

故障原因:谷歌搜索这段报错的提示,很容易找到故障的原因。主要是因为服务器开启了ipv6支持,但是MongoDB默认是不开启ipv6的支持的。进一步深层次的原因,目前谷歌搜索也没几个说的明白的,先说说解决问题的办法吧。

第一:连接单节点的MongoDB服务器的解决方法

(1)删除操作系统中ipv6解析,删除/etc/hosts'中的'::1 localhost, 这一行

(2)开启mongod的ipv6支持,参数:./bin/mongod –filePermissions 0777 –ipv6

然后在mongo的配置里,host使用“localhost:27017”。

第二:如果第一种方法解决不了,或者你采用的是副本集的MongoDB连接字符串,可以采用永久禁用IPv6的方法来解决这个问题

vim  /etc/sysctl.conf   命令修改或者添加系统配置文件

# 禁用整个系统所有接口的IPv6

net.ipv6.conf.all.disable_ipv6 = 1

# 禁用某一个指定接口的IPv6(例如:eth0, lo)

net.ipv6.conf.lo.disable_ipv6 = 1

net.ipv6.conf.eth0.disable_ipv6 = 1

修改完毕后,使用sysctl -p命令使得配置生效。

然后通过/etc/init.d/network restart,命令来重启网络服务。

转载于:https://my.oschina.net/u/3111345/blog/1576789

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值