请问显示超时是为什么,(mongo正常)

请问显示超时是为什么,(mongo正常)

import pymongo

#pymongo.MongoClient,mongodb://192.168.110.129:27017
myclient = pymongo.MongoClient("mongodb://192.168.0.100:27017")
#当前指定的数据库的名称imooc
#如果没有插入数据,库和表都不会创建
mydb = myclient['imooc']
mycollection = mydb['pymongo_test']
#表.insert_one插入一条记录
mycollection.insert_one({"name":"imooc","flag":1,"url":"https://www.imooc.com"})


G:\python\python-setup\python.exe "C:/Users/Administrator/Desktop/第二课python爬虫进阶与实战/第二课   python爬虫进阶与实战/study_pymongo/handle_pymongo.py"
Traceback (most recent call last):
  File "C:/Users/Administrator/Desktop/第二课python爬虫进阶与实战/第二课   python爬虫进阶与实战/study_pymongo/handle_pymongo.py", line 10, in <module>
    mycollection.insert_one({"name":"imooc","flag":1,"url":"https://www.imooc.com"})
  File "G:\python\python-setup\lib\site-packages\pymongo\collection.py", line 698, in insert_one
    session=session),
  File "G:\python\python-setup\lib\site-packages\pymongo\collection.py", line 612, in _insert
    bypass_doc_val, session)
  File "G:\python\python-setup\lib\site-packages\pymongo\collection.py", line 600, in _insert_one
    acknowledged, _insert_command, session)
  File "G:\python\python-setup\lib\site-packages\pymongo\mongo_client.py", line 1490, in _retryable_write
    with self._tmp_session(session) as s:
  File "G:\python\python-setup\lib\contextlib.py", line 112, in __enter__
    return next(self.gen)
  File "G:\python\python-setup\lib\site-packages\pymongo\mongo_client.py", line 1823, in _tmp_session
    s = self._ensure_session(session)
  File "G:\python\python-setup\lib\site-packages\pymongo\mongo_client.py", line 1810, in _ensure_session
    return self.__start_session(True, causal_consistency=False)
  File "G:\python\python-setup\lib\site-packages\pymongo\mongo_client.py", line 1763, in __start_session
    server_session = self._get_server_session()
  File "G:\python\python-setup\lib\site-packages\pymongo\mongo_client.py", line 1796, in _get_server_session
    return self._topology.get_server_session()
  File "G:\python\python-setup\lib\site-packages\pymongo\topology.py", line 485, in get_server_session
    None)
  File "G:\python\python-setup\lib\site-packages\pymongo\topology.py", line 209, in _select_servers_loop
    self._error_message(selector))
pymongo.errors.ServerSelectionTimeoutError: 192.168.0.100:27017: timed out

Process finished with exit code 1

http://img1.sycdn.imooc.com//climg/5e68cf81098c453f19130808.jpg

正在回答 回答被采纳积分+1

登陆购买课程后可参与讨论,去登陆

2回答
提问者 蕉林夜雨 2020-03-12 11:43:58
好帮手乔木 2020-03-12 09:48:53

同学你好:

同学需要修改下配置文件中的bind_ip的值,将127.0.0.1改为0.0.0.0.并且重新启动一下服务。

如果是源码安装mongodb,则没有mongo.conf文件。可以在启动服务时绑定ip地址。

解决远程连接:

关闭防火墙:

临时关闭防火墙systemctl stop firewalld.service
永久关闭防火墙systemctl disable firewalld.service

开关机自启动设置
启动防火墙systemctl start firewalld.service
永久启动防火墙systemctl enable firewalld开关机自启动设置

重启mongo服务。

mongod --dbpath data/ --logpath log/mongo.log --port 27017 --bind_ip 0.0.0.0 --fork

如果没有解决:同学可以将代码中的IP地址改为127.0.0.1,使用用本地的MongoDB,没有区别。

如果我解决了同学的问题,请采纳!学习愉快^_^。


  • 提问者 蕉林夜雨 #1
    我是用的是源码安装,所以没有配置文件,请问如何咋启动服务是绑定ip地址,是用vi /etc/sysconfig/network-scripts/ifcfg-enp0s3这个语句吗?
    2020-03-12 11:41:48
  • 好帮手乔木 回复 提问者 蕉林夜雨 #2
    同学你好:mongod --dbpath data/ --logpath log/mongo.log --port 27017 --bind_ip 0.0.0.0 --fork 或者同学可以将代码中的IP地址改为127.0.0.1,使用用本地的MongoDB,没有区别。学习愉快^_^。
    2020-03-12 11:44:15
  • 提问者 蕉林夜雨 回复 好帮手乔木 #3
    老师,最后python还是报错timeout [root@localhost ~]# cd mongodb_dir/ [root@localhost mongodb_dir]# mongod --dbpath data/ --logpath log/mongo.log --port 27017 --bind_ip 127.0.0.1 --fork about to fork child process, waiting until server is ready for connections. forked process: 3092 child process started successfully, parent exiting [root@localhost mongodb_dir]# systemctl disable firewalld.service Removed symlink /etc/systemd/system/multi-user.target.wants/firewalld.service. Removed symlink /etc/systemd/system/dbus-org.fedoraproject.FirewallD1.service. [root@localhost mongodb_dir]# ifconfig enp0s3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 192.168.0.100 netmask 255.255.255.0 broadcast 192.168.0.255 inet6 fe80::57c5:5e10:f22d:4560 prefixlen 64 scopeid 0x20<link> ether 08:00:27:3b:00:c3 txqueuelen 1000 (Ethernet) RX packets 398 bytes 35717 (34.8 KiB) RX errors 0 dropped 0 overruns 0 frame 0 TX packets 340 bytes 36364 (35.5 KiB) TX errors 0 dropped 0 overruns 0 carrier 0 collisions 0
    2020-03-12 12:12:59
问题已解决,确定采纳
还有疑问,暂不采纳

恭喜解决一个难题,获得1积分~

来为老师/同学的回答评分吧

0 星
4.入门主流框架Scrapy与爬虫项目实战
  • 参与学习           人
  • 提交作业       107    份
  • 解答问题       1672    个

Python最广为人知的应用就是爬虫了,有趣且酷的爬虫技能并没有那么遥远,本阶段带你学会利用主流Scrapy框架完成爬取招聘网站和二手车网站的项目实战。

了解课程
请稍等 ...
意见反馈 帮助中心 APP下载
官方微信

在线咨询

领取优惠

免费试听

领取大纲

扫描二维码,添加
你的专属老师