java - 无法通过本地计算机上的 Java 代码连接到谷歌计算引擎上的 mongodb 服务器

标签 java mongodb google-compute-engine

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 来了。

我做错了什么??

最佳答案

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

设置完成后,记下计算引擎实例的内部 IP,它通常在 Google Cloud Console 仪表板中提到。

编辑 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

关于java - 无法通过本地计算机上的 Java 代码连接到谷歌计算引擎上的 mongodb 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29211318/

相关文章:

java - 如何通过纯 Java 使用 P2D、P3D、FX2D?

node.js - MongoDB Node 驱动程序更新许多按 ID 过滤

javascript - MongoDB - 更新集合中所有记录的最快方法是什么?

node.js - 谷歌云 Node.js 套接字服务器应用程序托管

ssl - 将 SSL 应用于 Google Compute Engine 实例

google-compute-engine - 为什么我无法通过其 IP 访问我的 Kubernetes 服务?

java - Jsoup 抓取嵌入标签

java - ScheduledFuture.cancel() 方法的同步

java - 如何在 JAVA 中为 WSDL 中定义的 REST 生成 RESTful 客户端

mongodb - 无法将 mongo 数据库日志写入系统日志