【问题标题】:Getting “java.net.SocketTimeoutException: connect timed out ,when connecting to mongo db hosted on aws EC2获取“java.net.SocketTimeoutException:连接超时,当连接到托管在 aws EC2 上的 mongo db
【发布时间】:2018-08-19 16:45:08
【问题描述】:

我试过通过 putty 连接它工作正常。我不知道如何添加 pem 文件路径和用户名以通过 java 登录到 Mongo shell

MongoClient mongoClient = new MongoClient( "ec2-xx-xx-xxx-xx.xx-xxxx-1.xxxxxx.amazonaws.com" , 27017 ); DB db = mongoClient.getDB("userDB");

       Set<String> tables = db.getCollectionNames();
        for(String coll : tables){
        System.out.println(coll);
        }

【问题讨论】:

    标签: java mongodb amazon-web-services amazon-ec2


    【解决方案1】:

    这对我来说似乎是防火墙问题。请检查您是否在您使用的安全组中启用了端口 27017。

    AWS 安全组配置:https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/using-network-security.html#security-group-rules

    如果端口在安全组上启用但仍然存在问题,请检查 MongoDB 服务器绑定。

    MongoDB 有时会默认绑定地址为 127.0.0.1,这将禁用与服务器的公共 IP 或 DNS 通信。

    请参考这里查找和更改 IPBind 配置。 https://docs.mongodb.com/manual/reference/configuration-options/

    如果绑定默认为 127.0.0.1,则将其更改为 0.0.0.0,以便开始监听所有 IP 地址。

    【讨论】:

    • 感谢 Matrix 的回复,在我尝试过您的建议但仍然面临同样的问题时,您是否有任何示例 java 代码
    猜你喜欢
    • 2020-10-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-02-14
    • 2020-12-26
    • 1970-01-01
    • 2013-12-01
    • 2016-04-30
    相关资源
    最近更新 更多