ruby-on-rails - 运行 Rails 应用程序时的 Mongo::Error::NoSe

当运行 rails s 并连接到 localhost:3000 时,我在尝试诸如 @users.each 之类的简单查询时收到以下错误消息:

Mongo::Error::NoServerAvailable in Users#index

No server is available matching preference: #<Mongo::ServerSelector::Primary:0x62403672 tag_sets=[] server_selection_timeout=30 local_threshold=0.015>

控制台显示

MONGODB | Adding localhost:3000 to the cluster
MONGODB | IOERROR

config/mongoid.yml

development:
  clients:
    default:
      database: virtu_development
      hosts:
        - localhost:3000
      options:

  options:
test:
  clients:
    default:
      database: virtu_test
      hosts:
        - localhost:3000
      options:
        read:
          mode: :primary
        max_pool_size: 1

编辑:当 mongoid.yml 设置为在 localhost:27017 上运行时,显然是合适的,控制台反复读出:

No connection could be made because the target machine actively refused it. - connect(2) for 127.0.0.1:27017

编辑 2:在 C:\Program Files\MongoDB\Server\3.2\bin 中运行 mongo.exe 会产生:

MongoDB shell version: 3.2.4
connecting to: test
2016-03-31T19:14:03.597-0400 W NETWORK  [thread1] Failed to connect to 127.0.0.1:27017, reason: errno:10061 No connection could be made because the target machine actively refused it.
2016-03-31T19:14:03.597-0400 E QUERY    [thread1] Error: couldn't connect to server 127.0.0.1:27017, connection attempt failed :
connect@src/mongo/shell/mongo.js:224:14
@(connect):1:6

运行 mongod.exe 产生:

2016-03-31T19:13:00.636-0400 I CONTROL  [initandlisten] MongoDB starting : pid=5564 port=27017 dbpath=C:\data\db\ 64-bit host=Kalyn-PC
2016-03-31T19:13:00.640-0400 I CONTROL  [initandlisten] targetMinOS: Windows Vista/Windows Server 2008
2016-03-31T19:13:00.640-0400 I CONTROL  [initandlisten] db version v3.2.4
2016-03-31T19:13:00.640-0400 I CONTROL  [initandlisten] git version: e2ee9ffcf9f5a94fad76802e28cc978718bb7a30
2016-03-31T19:13:00.640-0400 I CONTROL  [initandlisten] allocator: tcmalloc
2016-03-31T19:13:00.640-0400 I CONTROL  [initandlisten] modules: none
2016-03-31T19:13:00.640-0400 I CONTROL  [initandlisten] build environment:
2016-03-31T19:13:00.641-0400 I CONTROL  [initandlisten]     distarch: x86_64
2016-03-31T19:13:00.641-0400 I CONTROL  [initandlisten]     target_arch: x86_64
2016-03-31T19:13:00.641-0400 I CONTROL  [initandlisten] options: {}
2016-03-31T19:13:00.642-0400 I STORAGE  [initandlisten] exception in initAndListen: 29 Data directory C:\data\db\ not found., terminating
2016-03-31T19:13:00.642-0400 I CONTROL  [initandlisten] dbexit:  rc: 100

最佳答案

我不得不手动

  1. 更改 config/mongoid.yml 以在 localhost:27017

  2. 运行
  3. 创建空目录C:data/db

  4. 然后运行 ​​mongod (在我的具体情况下,导航到 C:\Program Files\MongoDB\Server\3.2\bin 并运行 mongod .exe)。

在那之后,启动 rails 服务器 就像一个魅力。

关于ruby-on-rails - 运行 Rails 应用程序时的 Mongo::Error::NoServerAvailable,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36324525/

相关文章:

node.js - 关于 Mongoose 填充关系一个字符串字段

mongodb - Docker-MongoDB 中的身份验证问题

java - MongoDb BSON 以 UTC 时间存储日期

mongodb - 如何在 MongoDB 中获取(或聚合)数组的不同键

mongodb - Mongo在计算条件下排序

python - 具有完整行对象的 Mongo Distinct Query

javascript - Passport 没有保持持久的登录 session

linux - PHP升级到7后,为什么不能使用mongodb驱动?

mongodb - 查询以匹配包含点的多边形

java - 使用 Spring Data 按提取的日期、月份和年份聚合项目组