2016-09-30 101 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 –