【问题标题】:When Connected to Network Mongodb Uses my NIC Address?当连接到网络时 Mongodb 使用我的网卡地址?
【发布时间】:2012-11-07 21:57:33
【问题描述】:

我有一个连接到 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.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

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

【问题讨论】:

  • 您的 /etc/hosts 中还有其他行吗?我猜可能还有一个不同的主机名(MBP-C02J91TWDKQ5.local),这可能是hostname 返回的内容。
  • 这是我在 hosts 文件中的内容。是新机,更新不多。## # Host Database # # localhost 用于配置loopback 接口# 当系统启动时。不要更改此条目。 ## 127.0.0.1 localhost 255.255.255.255 广播主机 ::1 localhost fe80::1%lo0 localhost
  • 最后一个条目是正在使用的 - 这是一台 Mac,对吗?
  • 是的。有趣的是,MongoDB 是使用 Homebrew 安装的。我有点怀疑,所以我尝试了二进制文件,没有问题。所以这是一个部分修复,但它没有解释为什么 Homebrew 安装的版本与 .local 域有问题......所以现在的问题是应该更改 MongoDB 中的哪些配置以适应这个问题?
  • 哦,顺便说一句,Mac Ports 安装的版本也没有这种行为。

标签: mongodb grails


【解决方案1】:

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”条目。

【讨论】:

    猜你喜欢
    • 2020-01-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-11-09
    • 2019-07-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-24
    相关资源
    最近更新 更多