0

我有一个连接到 MongoDB 实例的 Grails 应用程序。在我的 Datasource.groovy 中,我声明了以下内容:

grails {
    mongo {
        host = "localhost"
        port = 27017
        databaseName = "mmib-mongo"
    }
}

Mongo 已安装并且可以正常启动。

问题是当我连接到网络时,使用 grails run-app 会记录以下异常:

包装 Grails 应用程序..... | 运行 Grails 应用程序

配置 Spring Security Core ... ... 完成 Spring Security Core 配置

配置Spring Security LDAP ... ... 配置完Spring Security LDAP | 错误 2012-11-19 15:42:16,428 [localhost-startStop-1] 错误 context.GrailsContextLoader - 执行引导程序时出错:创建名为“mongoDatastore”的 bean 时出错:FactoryBean 在创建对象时抛出异常;嵌套异常是 org.springframework.dao.DataAccessResourceFailureException: can't call something : MBP-C02J91TWDKQ5.local/192.168.0.131:27017/mmib-mongo; 嵌套异常是 com.mongodb.MongoException$Network: can't call something : MBP-C02J91TWDKQ5.local/192.168.0.131:27017/mmib-mongo 消息:创建名为 'mongoDatastore' 的 bean 时出错:FactoryBean 在创建对象时抛出异常;嵌套异常是 org.springframework.dao.DataAccessResourceFailureException: can't call something : MBP-C02J91TWDKQ5.192.168.0.131:27017 /mmib-mongo *; 嵌套异常是 com.mongodb.MongoException$Network: can't call something : MBP-C02J91TWDKQ5.local/192.168.0.131:27017/mmib-mongo

任何线索为什么当我连接到网络时,Grails/Mongo 想要使用该 IP 地址而不是 localhost,我在 /etc/hosts 中验证是 127.0.0.1

4

1 回答 1

0

Homebrew 告诉 MongoDB 只监听 127.0.0.1,而不是你的公共接口或“.local”主机名:

https://github.com/mxcl/homebrew/blob/master/Library/Formula/mongodb.rb#L95

尝试从 mongod.conf 的本地副本中删除 bind_ip 行并简单地使用防火墙保护端口 27017,或者更改 mongod.conf 中的“bind_ip”条目。

于 2012-11-20T20:31:17.310 回答