我正在尝试连接到mongoDB,但似乎无法联系到主机。
在mongoshell和pymongo中会出现此问题。在shell上我使用
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 :
connect@src/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:%s@%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
答案 0 :(得分:2)
我刚刚连接到mongoDB实例,我使用mongo shell将其部署到bluemix,其语法与您使用的类似,并且工作正常。
您的部署可能存在问题。 在bluemix ui中,当您打开mongo服务时,“状态”指示器是否显示为绿色?
我要做的另一件事是尝试验证该端口上是否可以访问主机。例如,使用tcping之类的东西:
1000101
或者,如果在紧要关头,telnet到端口:
tcping <host> <port>
对于后者,你会得到类似的东西:
telnet <host> <port>
如果其中任何一项失败,我会确保您的任何内容都无法阻止流量,然后在部署未正确配置或出现问题时伸出援助支持。