pymon go .errors.ServerSelectionTimeoutError: localhost: 27017: [WinError 10061] Невозможно установить соединение, поскольку целевая машина активно отказала ему - PullRequest
0 голосов
/ 25 марта 2020

Я следую учебному пособию python от w3schools. Я только начал главу mongoDB. Я установил mongoDB и проверил его с помощью:

import pymongo 

без получения ошибки.

Но как только я ввожу следующий код:

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)

я получаю эти сообщения и сообщение об ошибке внизу в 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

Я также пытался временно отключить брандмауэр, но ошибка продолжала появляться.

Я использовал:

"python 3.8.2
, mongoDB 4.2.5.0
, pymongo 3.10.1
, windows 10 home"

Кто-нибудь знает, что происходит не так?

1 Ответ

0 голосов
/ 25 марта 2020

В вашем коде нет ничего плохого.

Если вы отключили брандмауэр, наиболее вероятной причиной является то, что служба 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
>
...