pymongo.errors.ServerSelectionTimeoutError:localhost:27017:[WinError 10061]无法建立连接,因为目标机器主动拒绝它

spl*_*k77 6 python database runtime-error mongodb pymongo

我正在关注 w3schools 的 python 教程。我刚刚开始了 mongoDB 章节。我安装了 mongoDB 并检查了它:

import pymongo 
Run Code Online (Sandbox Code Playgroud)

没有得到错误。

但是一旦我输入以下代码:

import pymongo

myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["mydatabase"]
mycol = mydb["customers"]
mydict = { "name": "John", "address": "Highway 37" }

x = mycol.insert_one(mydict)

print(x.inserted_id)
Run Code Online (Sandbox Code Playgroud)

我在 cmd 底部收到这些消息和错误消息:


    C:\Users\xxx\myname

    C:\Users\xxx\myname>python index.py
    Traceback (most recent call last):
      File "index.py", line 8, in <module>
        x = mycol.insert_one(mydict)
      File "C:\Users\path...\pymongo\collection.py", line 695, in insert_one
        self._insert(document,
      File "C:\Users\path...\pymongo\collection.py", line 610, in _insert
        return self._insert_one(
      File "C:\Users\path...\pymongo\collection.py", line 599, in _insert_one
        self.__database.client._retryable_write(
      File "C:\Users\path...\pymongo\mongo_client.py", line 1490, in _retryable_write
        with self._tmp_session(session) as s:
      File "C:\Program Files\WindowsApps\path...\lib\contextlib.py", line 113, in __enter__
        return next(self.gen)
      File "C:\Users\path...\pymongo\mongo_client.py", line 1823, in _tmp_session
        s = self._ensure_session(session)
      File "C:\Users\path...\pymongo\mongo_client.py", line 1810, in _ensure_session
        return self.__start_session(True, causal_consistency=False)
      File "C:\Users\path...\pymongo\mongo_client.py", line 1763, in __start_session
        server_session = self._get_server_session()
      File "C:\Users\path...\pymongo\mongo_client.py", line 1796, in _get_server_session
        return self._topology.get_server_session()
      File "C:\Users\path...\pymongo\topology.py", line 482, in get_server_session
        self._select_servers_loop(
      File "C:\Users\path...\pymongo\topology.py", line 208, in _select_servers_loop
        raise ServerSelectionTimeoutError(
    pymongo.errors.ServerSelectionTimeoutError: localhost: 27017: [WinError 10061] Could not connect because target computer actively refused connection

    C:\Users\xxx\myname

Run Code Online (Sandbox Code Playgroud)

我也尝试过暂时禁用防火墙,但错误不断出现。

我用了:

"python 3.8.2
, mongoDB 4.2.5.0
, pymongo 3.10.1
, windows 10 home"
Run Code Online (Sandbox Code Playgroud)

有谁知道出了什么问题?

Bel*_*ter 7

您的代码没有任何问题。

如果您已禁用防火墙,最可能的原因是未安装或运行 MongoDB 服务。在 Windows 上按 windows 键并键入services以打开服务应用程序。检查服务MongoDB Server是否已列出并具有Running状态。

您可以通过打开您最喜欢的 Windows 终端或 powershell 并输入mongo. 如果它正在工作,您应该看到:

PS> mongo
MongoDB shell version v4.2.3
connecting to: mongodb://127.0.0.1:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("1b5499b8-166a-4de6-a8c9-643499f04e66") }
MongoDB server version: 4.2.3
>
Run Code Online (Sandbox Code Playgroud)