2016-09-30 140 views
0

我想連接到mongoDB,但似乎我無法連接到主機。無法連接到bluemix上的compose.io mongoDB

此問題發生在mongoshell和pymongo中。在殼上,我使用

mongo --ssl --sslAllowInvalidCertificates host:port/db -u user -p pass --sslCAFile ca.pem 

我收到了錯誤消息,

MongoDB shell version: 3.2.9 
connecting to: host:port/db 
2016-09-30T13:41:57.268-0300 W NETWORK [thread1] Failed to connect to host_ip:port after 5000 milliseconds, giving up. 
2016-09-30T13:41:57.323-0300 E QUERY [thread1] Error: couldn't connect to server host:port, connection attempt failed : 
[email protected]/mongo/shell/mongo.js:231:14 
@(connect):1:6 

exception: connect failed 

在pymongo,我用代碼連接波紋管

Config = configparser.ConfigParser() 
Config.read('configurations.cfg') 
mongo_conf = Config['mongoDB_test'] 

connect = "mongodb://%s:%[email protected]%s:%s/%s?ssl=true" \ 
    %(mongo_conf['user'],mongo_conf['pass'],mongo_conf['host'],mongo_conf['port'],mongo_conf['database']) 
client = MongoClient(connect,ssl_ca_certs=mongo_conf['cert']) 
db = client[mongo_conf['database']] 

,當我跑,我得到這個

Traceback (most recent call last): 
    File "test.py", line 24, in <module> 
    db.test.insert_one(data) 
    File "/home/jmpf13/repos/laura/dev_env/lib/python3.5/site-packages/pymongo/collection.py", line 627, in insert_one 
    with self._socket_for_writes() as sock_info: 
    File "/usr/lib/python3.5/contextlib.py", line 59, in __enter__ 
    return next(self.gen) 
    File "/home/jmpf13/repos/laura/dev_env/lib/python3.5/site-packages/pymongo/mongo_client.py", line 762, in _get_socket 
    server = self._get_topology().select_server(selector) 
    File "/home/jmpf13/repos/laura/dev_env/lib/python3.5/site-packages/pymongo/topology.py", line 210, in select_server 
    address)) 
    File "/home/jmpf13/repos/laura/dev_env/lib/python3.5/site-packages/pymongo/topology.py", line 186, in select_servers 
    self._error_message(selector)) 
pymongo.errors.ServerSelectionTimeoutError: host:port: timed out 

回答

2

我剛剛連接到MongoDB實例我已經使用與您使用的語法類似的語法使用mongo shell部署到bluemix,並且它工作正常。

您的部署可能存在問題。 在bluemix用戶界面中,當您打開您的mongo服務時,「狀態」指示燈是否呈綠色?

我會做的另一件事是嘗試驗證主機是否可以在該端口上訪問。例如,使用類似tcping: tcping <host> <port>

或者,如果在緊要關頭,telnet到端口: telnet <host> <port> 對於後者,你會得到這樣的:

Trying <ip>... Connected to <host>. Escape character is '^]'.

如果任何這些失敗,我會確保您的一端沒有阻止流量,然後伸出援手,以防您的部署沒有正確配置或有其他問題。

+0

我已經試過了,telnet只是掛起,並沒有返回任何東西......部署不工作,因爲無法連接到mongodb –