`
s8186255
  • 浏览: 87240 次
  • 性别: Icon_minigender_1
  • 来自: 新疆乌鲁木齐
社区版块
存档分类
最新评论

mongodb3 与rails的连接

阅读更多
 
一、安装
 Ubuntu 14.04.2 
缺省的mongodb的版本是2.*版本
详细参照:https://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/
直接安装即可升级:  apt-get install mongo.org
说明:这种升级后,在 /var/lib/mongodb中仍然保存的是原来版本的数据格式,也就是在使用缺省数据库文件的时候,是老版本的数据。可能也是为了兼容的问题。(似乎是这样)
二、运行环境规划,做好配置文件:
指定自己的data、log、绑定ip、端口、认证
这些都配置到自己的配置文件中:home/***/my_etc/mongodb.conf
storage:
  dbPath: /home/***/mongodb/data
  journal:
    enabled: true
systemLog:
  destination: file
  logAppend: true
  path: /home/suanqi/mongodb/mongod.log
net:
  port: ***
  bindIp: ***
security:
  keyFile: /home/suanqi/my_etc/mongodb-keyfile
  authorization: enabled
其中黄色部分非常重要(为将来做cluster做准备,本次可以不需要);
keyFile的生成参见如下命令:
openssl rand -base64 741 > /home/***/mongodb/mongodb-keyfile
chmod 600 mongodb-keyfile
三、创建一个系统用户;
1、no auth方式启动  sudo mongod --dbpath /home/suanqi/mongodb/data #需要事前创建此目录
2、修改验证机理。3.0由MONGODB-CR 改为sha1,但是为什么远端还是使用mongodb-cr,估计是我的客户端没有升级导致。参见如下操作:
> use admin
switched to db admin
> var schema = db.system.version.findOne({"_id" : "authSchema"})
> schema
{ "_id" : "authSchema", "currentVersion" : 5 }
> schema.currentVersion=3
3
> db.system.version.save(schema)
WriteResult({ "nMatched" : 1, "nUpserted" : 0, "nModified" : 1 })
到这里,说明认证方式改变了。就可以使用 MONGODB-CR 验证机理了。
上述操作未解决如下错误:
Failed to authenticate woxi@admin with mechanism MONGODB-CR: AuthenticationFailed MONGODB-CR credentials missing in the user document
红色的代码不需要,但是也是费了比较大的功夫查到的解决错误的做法。在此做一个记录。
 
3、添加数据库系统管理员帐号:
use admin
db.createUser(
  {
    user: "***",
    pwd: "***",
    roles: [ { role: "root", db: "admin" } ]
  }
)
然后以这个帐号启动mongod;sudo mongod  --config /home/suanqi/my_etc/mongod.conf &
4、远端连接,并创建一个数据库用户,这是为了安全起见。
用刚才创建的帐号登录,
mongo -u ** -p ** --authenticationDatabase "admin" ip地址:mongodb端口号  #在mongodb.conf中
说明,mongdb3 ,在mongo客户端连接数据库时,需要指定“使用什么用户库”,缺省是admin。
use admin
db.createUser(
  {
    user: "##",
    pwd: "##",
    roles: [ { role: "dbOwner", db: "##" } ]
  }
)
5、如果用户创建出问题,用户管理得到用户、删除用户、给用户赋权。
db.getUser("帐号")
db.dropUser("帐号")
db.grantRolesToUser("帐号","roles": [{"role": "dbOwner","db": "库名"}])
 
6、使用新创建的数据库用户与后台连接
mongo -u "woxi" -p "woxi2014" --authenticationDatabase "admin" 101.200.191.85:27789/rails_api
 
四、rails的配置文件;按照说明配置好像总有问题。最后索性把 auth_source,roles都配置上,rails侧就算ok
参照如下配置
development:
# Configure available database clients. (required)
clients:
# Defines the default client. (required)
default:
# Defines the name of the default database that Mongoid can connect to.
# (required).
database: 库名
# Provides the hosts the default client can connect to. Must be an array
# of host:port pairs. (required)
hosts:
- ip地址:端口
options:
# Change the default write concern. (default = { w: 1 })
# write:
# w: 1

# Change the default read preference. Valid options for mode are: :secondary,
# :secondary_preferred, :primary, :primary_preferred, :nearest
# (default: primary)
# read:
# mode: :secondary_preferred
# tag_sets:
# - use: web

# The name of the user for authentication.
user: '###'

# The password of the user for authentication.
password: '####'

# The user's database roles.
roles:
- 'dbOwner'

# Change the default authentication mechanism. Valid options are: :scram,
# :mongodb_cr, :mongodb_x509, and :plain. (default on 3.0 is :scram, default
# on 2.4 and 2.6 is :plain)
# auth_mech: :mongodb_cr

# The database or source to authenticate the user against. (default: admin)
auth_source: admin
.....
分享到:
评论

相关推荐

    ruby on rails对mongodb的操作

    对于`mongoid`,在Rails应用中,我们需要配置`config/mongoid.yml`文件来连接到MongoDB数据库。配置文件通常如下所示: ```yaml development: clients: default: database: your_database_name hosts: - ...

    MongoDB简介与实践.pdf

    MongoDB提供多语言驱动支持,包括Ruby/Ruby-on-Rails、Java、C#、JavaScript、C/C++、Erlang、Python、Perl等。 5. MongoDB的优势: MongoDB不需要额外的缓存,支持丰富的查询和数据类型,同时商业公司10gen提供...

    Ruby on Rails框架程序连接MongoDB的教程

    2.我们将要使用MongoMapper来驱动MongoDB到Rails 编辑GemFile,增加下面的内容 gemmongo_mapper 然后 执行 bundle install 安装gem bundle install 3.添加数据库链接 在config/initializer下面新建一个mongo.rb...

    grails 配置mongodb数据库

    接下来,我们配置Grails与MongoDB的连接。在`Config.groovy`文件中,添加以下配置项: ```groovy environments { development { grails { mongo { host = "localhost" // MongoDB服务器地址 port = 27017 // ...

    mongodb-docs-2011-01-29_mongodb最新用户手册

    - **RubyLanguageCenter**:Ruby 开发者可以了解如何使用 Ruby 驱动程序与 MongoDB 交互,并获取有关 Rails 集成的信息。 #### 七、特定技术集成 - **Django and MongoDB**:介绍了如何将 Django Web 框架与 ...

    Ruby and MongoDB Web Development

    3. **连接和配置**:讲解如何使用Ruby的MongoDB驱动程序建立与MongoDB服务器的连接,设置数据库和集合,并处理连接错误。 4. **查询与聚合**:MongoDB支持丰富的查询语法,包括查询筛选、排序、分页等。书中会介绍...

    Pro MongoDB Development

    在Ruby部分,开发者可以学习到如何使用Ruby on Rails或不使用Rails框架的情况下集成MongoDB。而在Node.js部分,作者可能介绍了MongoDB的Node.js驱动以及如何构建异步的数据密集型应用。 值得注意的是,《Pro ...

    MongoDB权威指南(中文版)高清

    15111.2.4 评论树 15211.2.5 投票 15311.3 自定义提交表单:Ruby 15411.3.1 安装Ruby驱动 15411.3.2 使用Ruby驱动 15511.3.3 自定义表单提交 15511.3.4 Ruby的对象映射和在Rails中使用MongoDB 15711.4...

    MongoDB管理控制台 Genghis.zip

    1. **连接到MongoDB实例**:Genghis允许你输入MongoDB服务器的地址和端口,以便连接到本地或远程数据库服务器。 2. **浏览数据库**:列出所有数据库,并查看每个数据库中的集合(相当于SQL中的表)。 3. **查看和...

    MongoDB document

    40. **Rails集成**(Rails Integration):这部分可能会讨论如何将MongoDB与Ruby on Rails框架结合起来,构建高效的Web应用程序。这对于那些熟悉Rails的开发者来说非常有用。 41. **外部资源**(External Resources...

    community:这是一个使用 Anguler、Mongodb 和 Rails 的社交网络网站

    该项目的核心技术栈包括Angular、MongoDB和Rails,这三者分别是前端框架、数据库系统和后端框架,共同构建了一个功能丰富的交互式网站。 **Angular** 是一个由Google维护的开源JavaScript框架,主要用于构建单页面...

    mongorails:在Rails应用中使用mongoDB测试应用

    2. **配置数据库**:在`config/mongoid.yml`中设置MongoDB的连接信息,包括数据库名、主机、端口和认证信息。 3. **定义模型**:创建Ruby类并继承自`Mongoid::Document`,定义字段和关联。模型类对应MongoDB中的...

    Pro.Active.Record.Databases.with.Ruby.and.Rails

    - **NoSQL数据库集成**:随着NoSQL数据库的兴起,本节讲述了如何将MongoDB等NoSQL数据库与Rails应用相结合,以满足特定业务需求。 - **云服务部署与管理**:最后,书中还涉及了如何将Rails应用部署到云端,并且利用...

    rails-postgres-mongo:同时使用Postgres和Mongo的Rails应用程序

    为Rails应用程序设置Postgres连接 将Gemfile从sqlite3更改为pg以便我们在本地使用Postgres 将config/database.yml更改为: default : &default adapter : postgresql pool : 5 timeout : 5000 development : &...

    mongodb_logger_example_heroku:在Heroku上使用mongodb_logger的示例应用

    这个示例应用旨在展示如何将mongodb_logger gem集成到你的Rails或其他Ruby项目中,以便在Heroku环境中有效地管理日志数据。 首先,我们需要了解mongodb_logger gem。它是一个替代标准Rails日志记录器的库,它将日志...

    http_log:将HTTP请求记录到MongoDB进行调试并通过Web访问它们

    您可以将此标头与Rails添加的标头结合使用,以跟踪应用程序与您的应用程序进行的对话。安装此宝石使用Mongoid来存储模型。 一旦安装了gem,请运行mongoid配置生成器以建立连接。 gem '...

    mongobetween

    当前,它使用作为Docker边车与Rails应用程序一起部署,并连接到许多分片的MongoDB集群。 它旨在连接到负责选择服务器的读写选择的mongos路由器(直接连接到副本集的mongod实例尚未经过严格的测试)。 这个怎么运作 ...

    casino-sso-client-rails4-example:与示例 CASino 服务器(Rails4 应用程序)一起使用的简单客户端应用程序

    在项目中,开发者需要将`config/mongoid.yml.example`文件复制并重命名为`config/mongoid.yml`,然后根据实际环境配置MongoDB连接信息。这一步是设置应用数据库连接的关键步骤。 2. **Zeus**:Zeus是一个Ruby开发的...

    hello-sparkjava:使用mongodb的Spark Java

    在本项目"hello-sparkjava:使用mongodb的Spark Java"中,我们将探讨如何结合流行的Java Web框架Spark Java与NoSQL数据库MongoDB进行开发。Spark Java是一个轻量级、易于使用的框架,适合快速构建RESTful Web服务,而...

Global site tag (gtag.js) - Google Analytics