mongodb connection refused的可能原因

一 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]#

在你遇到好的老师之前

在你遇到好的老师之前,你根本不知道什么是好的老师。

说几则事实。

一 

二十多年前,我上中学。遇到这样的一个历史老师:当年,很多学生都是寄宿,星期天的下午到学校报到,开始新的一周。顺带用罐头瓶从家里带一些菜来,作为新一周的口粮,基本上逢周三、周四,自带的那点儿菜已经吃完了。于是,很多同学利用午休时间骑自行车往返学校和家,目的是回家再拿菜到学校来。为什么这么做呢?因为当时穷啊,经济条件不好,买不起或者舍不得花钱从学校食堂买菜吃。

问题是,有些班级的历史课又正好被安排在礼拜三、四的上午第四节课。课后,老师会留作业,通常是课后的简答题。需要回家带菜的同学们,先回家吃饭,带上菜,然后赶往学校。显然,离家远的同学,往往就没有时间写作业了。然后,就有聪明的同学利用上午课间休息的时候,提前把历史作业写好。后来,我们历史老师发现了这一现象。于是,更“聪明”的历史老师在课后说,今天的作业是课后简答题的第一、三道题,那些已经提前写好三道题的同学就傻眼了,又有些时候,老师会说,今天的作业还是课后三道题,但是要先写第二题,然后第一、三题,或者有时候作业顺序变成了三、一、二……

这是我亲身经历过的中学历史老师。

二 

我还记得十多年以前,刚从大学校园走向工作岗位的时候。第一次乘飞机从北京到沈阳出差,兴奋的我在机场跟姑姑打了个电话,后来姑父跟我说了一句话:少说话,多做事。这话到现在对我依然受用。我的姑父也是一名中学老师。

再后来,在互联网上认识了一个网名为“小布”的老师,他讲Linux基础知识、Oracle数据库,并且录制成教程,免费放到互联网上。他的讲课风格通俗易懂,step by step的风格,跟着教程可以快速上手,让人欲罢不能,激发求知欲。后来有一次,他从美国回苏州出差,我还特意从厦门去苏州,跟他见一面。小布老师是我的职业领路人。

2016年4月18日,我离开前一家公司,4月20日到现在的公司入职上班。现在单位对于新人实行导师制,老员工带领新同事快速熟悉适应新工作。我遇到了这样的一位导师:永不抱怨,永不争论,永不发脾气。现在,他还是我的同事,也是我的领导。对了,他现在休假去俄罗斯看世界杯了。

前一段时间,从YouTube上发现并订阅了李永乐老师的频道,他讲数学、物理学、经济学、博弈论、概率统计的相关知识。直奔主题、言简意赅,通俗易懂,不啰嗦半句话,看完视频教程,你会惊叹,你会拍大腿,觉得精彩绝伦。视频教程短平快,小而美。在这里,我也推荐你去订阅一下。如果你还访问不了YouTube的话,可以参考我之前的一篇推送:

我们一起奔向互联网上那最遥远的地方啊

关于老师,读者朋友们,你们有什么想说的,欢迎留言回复。