【发布时间】:2018-03-30 03:10:50
【问题描述】:
我在 MongoDB 和 pymongo 上有问题。
我测试了 pymongo。首先我运行“start mongod”,然后使用以下代码运行,但遇到后续输出失败(对于 mongod 和 pymongo)。 MongoDB 和 pymongo 似乎都安装成功了。 我错过了什么吗?非常感谢。
代码:
`from pymongo import MongoClient`
`client=MongoClient(host='localhost', port=38001, serverSelectionTimeoutMS=20000);`
`client.database_names();`
mongod的输出:
`2017-10-17T19:46:46.120+0800 I CONTROL [initandlisten] MongoDB starting : pid=12933 port=38001 dbpath=/home/jianhaoc/s/cs/run/db 64-bit host=brain4`
`2017-10-17T19:46:46.120+0800 I CONTROL [initandlisten] db version v3.2.9`
`2017-10-17T19:46:46.120+0800 I CONTROL [initandlisten] git version: 22ec9e93b40c85fc7cae7d56e7d6a02fd811088c`
`2017-10-17T19:46:46.120+0800 I CONTROL [initandlisten] allocator: tcmalloc`
`2017-10-17T19:46:46.120+0800 I CONTROL [initandlisten] modules: none`
`2017-10-17T19:46:46.120+0800 I CONTROL [initandlisten] build environment:`
`2017-10-17T19:46:46.120+0800 I CONTROL [initandlisten] distarch: x86_64`
`2017-10-17T19:46:46.120+0800 I CONTROL [initandlisten] target_arch: x86_64`
`2017-10-17T19:46:46.120+0800 I CONTROL [initandlisten] options: { net: { port: 38001 }, replication: { oplogSizeMB: 64, replSet: "meteor" }, storage: { dbPath: "/home/jianhaoc/s/cs/run/db", jo`
`urnal: { enabled: false } } }`
`2017-10-17T19:46:46.152+0800 I STORAGE [initandlisten] exception in initAndListen: 98 Unable to lock file: /home/py/run/db/mongod.lock errno:38 Function not implemented. Is a mongod instance already running?, terminating`
`2017-10-17T19:46:46.153+0800 I CONTROL [initandlisten] dbexit: rc: 100`
pymongo 的输出:
`Traceback (most recent call last):`
` File "./test_mongo.py", line 10, in <module>`
` client.database_names();`
` File "/home/py/anaconda2/lib/python2.7/site-packages/pymongo/mongo_client.py", line 1088, in database_names`
` "listDatabases")["databases"]]`
` File "/home/py/anaconda2/lib/python2.7/site-packages/pymongo/database.py", line 478, in command`
` with client._socket_for_reads(read_preference) as (sock_info, slave_ok):`
` File "/home/py/anaconda2/lib/python2.7/contextlib.py", line 17, in __enter__`
` return self.gen.next()`
` File "/home/py/anaconda2/lib/python2.7/site-packages/pymongo/mongo_client.py", line 798, in _socket_for_reads`
` with self._get_socket(read_preference) as sock_info:`
` File "/home/py/anaconda2/lib/python2.7/contextlib.py", line 17, in __enter__`
` self.gen.next()`
` File "/home/py/anaconda2/lib/python2.7/site-packages/pymongo/mongo_client.py", line 762, in _get_socket`
` server = self._get_topology().select_server(selector)`
` File "/home/py/anaconda2/lib/python2.7/site-packages/pymongo/topology.py", line 210, in select_server`
` address))`
` File "/home/py/anaconda2/lib/python2.7/site-packages/pymongo/topology.py", line 186, in select_servers`
`._error_message(selector))`
`pymongo.errors.ServerSelectionTimeoutError: localhost:38001: [Errno 111] Connection refused`
【问题讨论】: