2016-02-16 144 views
0

我有一個MongoDB服務器在我的本地主機上運行。我編寫了一個簡單的Python程序,使用「localhost」讀取/寫入數據庫;不過,我想讓其他客戶端訪問我的MongoDB服務器。目前,我不關心訪問安全性,並希望授予任何人訪問權限。我應該如何配置Mongo Server來執行此操作?MongoDB服務器配置

這是連接到本地主機的簡單程序。

from pymongo import MongoClient 
    connection = MongoClient("Localhost") 
    db = connection.hockey.players 
    results = db.find() 
    print() 
    print('+-+-+-+-+-+-+-+-+-+-+-+-+-+-') 
    for record in results: 
     print(record['name'] + ',',record['position']) 
    connection.close() 

該錯誤消息我得到: 文件 「C:/Users/Peter/PycharmProjects/Test/helloWorld.py」,8號線,在 在結果記錄中: 文件「C:\ (self .__ data)或self._refresh(): 文件「C:\ Python34 \ lib \ site-packages \ pymongo」中的Python34 \ lib \ site-packages \ pymongo \ cursor.py「,第1097行,在下一個 \ cursor.py「,第1019行,在_refresh self .__ read_concern)) 文件」C:\ Python34 \ lib \ site-packages \ pymongo \ cursor.py「,850行,在__send_message ** kwargs) 文件」C :\ Python34 \ lib \ site-packages \ pymongo \ mongo_client.py「,第777行,在_send_message_with_response server = topology.s中elect_server(selector) 文件「C:\ Python34 \ lib \ site-packages \ pymongo \ topology.py」,第142行,在select_server地址中) py」爲,線118,在select_servers self._error_message(選擇)) pymongo.errors.ServerSelectionTimeoutError:XYZW:27017:超時

Process finished with exit code 1 

下面是我目前的本地主機的設置,如果我上運行它正常工作我的客戶端託管MongoDB。 Current setup

感謝

回答

0

給他們你的IP地址和端口號(默認值:27017)連接到你的服務器。還可以編輯mongod.conf文件中的bindIp作爲bindIp: 0.0.0.0。詢問他們使用類似連接到您的數據庫:

from pymongo import MongoClient 
connection = MongoClient("mongodb://your_ip:yourport") 

如果您使用的是Windows,創建配置文件mongod.cfg。並添加條目

systemLog: 
    destination: file 
    path: c:\data\log\mongod.log 
storage: 
    dbPath: c:\data\db 
net: 
    bindIp: 0.0.0.0 
    port: 27017 

確保您已經創建logdb文件夾或更改您的數據和日誌文件所在的路徑。 通過specyfying thr配置文件啓動mongodb。

+0

感謝您的快速跟進。我沒有找到配置文件,所以我在MongoDb bin目錄中創建了一個。我設置了bindIp標誌0.0.0.0。我使用這個配置文件啓動了MongoDb服務器。當我用「localhost」連接字符串運行應用程序時,它運行正常。但是,當我將本地主機更改爲「mongodb:// my_ip:27017」時,我仍然超時 – peet1984

+0

您正在使用哪個操作系統?如果是linux,該文件將位於'/etc/mongod.conf'中。 – Rahul

+0

我在Windows 10 – peet1984

0

確認您的本地接口已啓動。它應該解釋超時。

ifup lo