一 OS环境:
[root@localhost ~]# cat /etc/redhat-release CentOS Linux release 7.5.1804 (Core) [root@localhost ~]# uname -rm 3.10.0-862.3.2.el7.x86_64 x86_64 [root@localhost ~]#
二 mongo信息:
MongoDB server version: 4.0.0
且防火墙,SELINUX全关闭的情况下,访问mongodb报错。
三 错误信息如下:
[root@localhost ~]# mongo 172.16.143.250:27017/admin MongoDB shell version v4.0.0 connecting to: mongodb://172.16.143.250:27017/admin 2018-07-20T09:30:52.691+0800 E QUERY [js] Error: couldn't connect to server 172.16.143.250:27017, connection attempt failed: SocketException: Error connecting to 172.16.143.250:27017 :: caused by :: Connection refused : connect@src/mongo/shell/mongo.js:251:13 @(connect):1:6 exception: connect failed [root@localhost ~]#
且在服务器本地及其它机器上telnet该机器的mongodb默认端口27017都不通:
$ telnet 172.16.143.250 27017 Trying 172.16.143.250... telnet: Unable to connect to remote host: Connection refused
四 原因及解决办法:
如果服务器上有多个IP地址的话,需要将mongodb的服务绑定到多个IP地址,在配置文件里加上:
bind_ip_all=on
当该参数配置为bind_ip_all=all时,启动mongodb会报出下述错误:
Error parsing INI config file: the argument ('all') for option 'bind_ip_all' is invalid. Valid choices are 'on|off', 'yes|no', '1|0' and 'true|false'
重启mongodb,然后访问正常。
该机器172.16.143.250的IP地址如下:
[root@localhost mongodata]# ifconfig
docker0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 10.10.10.1 netmask 255.255.255.0 broadcast 0.0.0.0
inet6 fe80::42:2cff:fef4:41cb prefixlen 64 scopeid 0x20
ether 02:42:2c:f4:41:cb txqueuelen 0 (Ethernet)
RX packets 15725 bytes 857602 (837.5 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 20945 bytes 2675605 (2.5 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
enp0s31f6: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet 172.16.143.250 netmask 255.255.255.0 broadcast 172.16.143.255
inet6 fe80::3bf1:41bf:bb41:1a74 prefixlen 64 scopeid 0x20
ether 2c:fd:a1:be:65:d3 txqueuelen 1000 (Ethernet)
RX packets 83706 bytes 17618724 (16.8 MiB)
RX errors 0 dropped 102 overruns 0 frame 0
TX packets 30918 bytes 6621448 (6.3 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
device interrupt 16 memory 0xdf200000-df220000
lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536
inet 127.0.0.1 netmask 255.0.0.0
inet6 ::1 prefixlen 128 scopeid 0x10
loop txqueuelen 1000 (Local Loopback)
RX packets 332117 bytes 34574785 (32.9 MiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 332117 bytes 34574785 (32.9 MiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
veth6d13f43: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::38d0:60ff:fe0d:1867 prefixlen 64 scopeid 0x20
ether 3a:d0:60:0d:18:67 txqueuelen 0 (Ethernet)
RX packets 4059 bytes 273076 (266.6 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5426 bytes 580733 (567.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
veth8741a2f: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::14d2:d7ff:fe8e:75f7 prefixlen 64 scopeid 0x20
ether 16:d2:d7:8e:75:f7 txqueuelen 0 (Ethernet)
RX packets 3401 bytes 245833 (240.0 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 4769 bytes 871463 (851.0 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
vetha20a789: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::e829:79ff:fea8:558d prefixlen 64 scopeid 0x20
ether ea:29:79:a8:55:8d txqueuelen 0 (Ethernet)
RX packets 4058 bytes 273390 (266.9 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5423 bytes 637072 (622.1 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
vetha26bafa: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500
inet6 fe80::58cc:3aff:fec9:ad8e prefixlen 64 scopeid 0x20
ether 5a:cc:3a:c9:ad:8e txqueuelen 0 (Ethernet)
RX packets 4063 bytes 273661 (267.2 KiB)
RX errors 0 dropped 0 overruns 0 frame 0
TX packets 5430 bytes 594535 (580.6 KiB)
TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
[root@localhost mongodata]#











