【问题标题】:Not able to connect to mongodb server on google compute engine through my java code from my local machine无法通过本地机器上的 java 代码连接到谷歌计算引擎上的 mongodb 服务器
【发布时间】:2015-03-23 13:20:05
【问题描述】:
MongoClient mongo = new MongoClient("23.236.50.143",27017);
    System.out.print(mongo);
    List<String> dbs = mongo.getDatabaseNames();
    for(String db1 : dbs){
        System.out.println(db1);
}

23.236.50.143 是计算引擎实例的外部ip。

我还添加了防火墙规则以允许在端口号 27017 上进行连接。

还是Connection Refused Error 来了。

我做错了什么??

【问题讨论】:

  • 您还看到这个问题吗?通常“连接被拒绝”意味着数据包正在到达服务器但它们被防火墙阻止或该端口上没有运行任何服务。尝试查看 mongo 是否甚至在本地使用该端口:$ sudo netstat -tulnp | grep 27017
  • 您找到解决方案了吗?我也遇到了同样的问题。
  • sudo netstat -tulnp | grep 27017证明服务正在运行后,我所要做的就是在部署mongodb实例的network中设置防火墙规则:Source filter Allow from any source (0.0.0.0/0)Allowed protocols and ports tcp:27017 udp:27017@987654327 @

标签: java mongodb google-compute-engine


【解决方案1】:

您提到您已添加防火墙规则以允许在端口 27017 上连接。请确保您在 Google Cloud Console 仪表板或使用 gcloud 命令行实用程序中添加了此防火墙规则。

设置好后,注意计算引擎实例的内部 IP,通常在Google Cloud Console dahsboard 中提到。

编辑 Mongo 配置文件(通常位于 /etc/mongod.conf)以在 bind_ip 变量中添加计算引擎实例的内部 IP。

配置文件如下所示:

$ vim /etc/mongod.conf
# /etc/mongod.conf

# Listen to local interface only. Comment out to listen on all interfaces.
bind_ip = 127.0.0.1

添加您的内部 IP 后,配置文件将如下所示:

$ vim /etc/mongod.conf

# /etc/mongod.conf

# Listen to local and LAN interfaces.
bind_ip = 127.0.0.1,X.X.X.X

其中X.X.X.X 是您的实例的内部 IP。保存文件并重启 mongo 服务器。

注意:不要在 mongo 配置文件中使用外部 IP。

参考: MKyong.com : MongoDB – Allow remote access

【讨论】:

    猜你喜欢
    • 2015-12-25
    • 2014-08-21
    • 2016-08-14
    • 2018-05-27
    • 2014-09-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多