设为首页 收藏本站
查看: 1902|回复: 0

[经验分享] Mongodb For Mac OSX && 登录验证

[复制链接]

尚未签到

发表于 2015-7-7 10:43:57 | 显示全部楼层 |阅读模式
  题外话:尽管有不少人贴出了 《我不用mongodb的十大理由》 等系列文章,但是 NoSQL 的发展不会因此而止步, mongodb 是 NoSQL 的典型代表,楼主还是抱乐观态度的,有人讨厌是好事,尽管mongodb依然在不断的更新中……

1.环境:
  MacBook Pro : OS X 10.9.5 (13F34)
  Mongodb : 2.6.0

2.安装和启动:
  A: 包管理工具 自动化安装 [小心被墙,下载中建议去煮几杯咖啡]
  

$ brew install mongodb  
//记得可以先更新 homebrew
  
//$ brew update
  

  安装完成后,启动MongoDb
  

mongod —config /usr/local/etc/mongod.conf  

  B: 文件方式 解压安装 [百度网盘分分钟搞定]
  点击下载: Mongodb OSX 2.6.0 zip 压缩包
  解压到随意位置, 比如 /usr/local/var/www/mongodb-osx-x86_64-3.0.0/ 进入 mongodb-osx…… 目录创建两个文件夹 data/db (数据)和 data/log (日志)
  然后轻松启动,比如:
  

$ cd /usr/local/var/www/mongodb-osx-x86_64-3.0.0/bin/  
$ mongod --dbpath "/usr/local/var/www/mongodb-osx-x86_64-3.0.0/data/db"
  
……
  
……
  
2015-05-18T13:49:15.660+0800 [initandlisten] journal dir=/usr/local/var/www/mongodb-osx-x86_64-3.0.0/data/db/journal
  
2015-05-18T13:49:15.660+0800 [initandlisten] recover : no journal files present, no recovery needed
  
2015-05-18T13:49:15.843+0800 [initandlisten] waiting for connections on port 27017
  

  启动成功,端口号是 27017 成功, 大多数人到这里应该就没有下文了~ ,(比如,端口怎么改? 接着看……)

3.启动参数
  例子:
  

mongod --dbpath="安装路径/data/mongodb" --logpath="安装路径/data/mongodb/logs/mongodb.log" --logappend --auth --port=27017 --fork  

  没事,你先试一下,我等你 ^_^
  解释:
  

mongod  : 启动程序命令  
--dbpath : 的数据库存放路径
  
--logpath : 的日志文件路径
  
--logappend : 以追加方式,写日志文件
  
--auth      : 是否进行用户认证,加上后,MongoDB会使用用户认证方式登录。
  
--port      : 端口号,可以自定义,默认 27017
  
--fork      : 服务是否以后台运行的方式运行
  
--bind_ip: 限制特定IP地址访问
  

4.设置登录权限
  进入到 bin 目录执行 mongo 就可以,比如楼主的:
  

$ cd /usr/local/var/www/mongodb-osx-x86_64-3.0.0/bin/&&mongo  

  接下来可以熟悉下操作一些常用指令,比如增删改查“CURD”,这里就不一一列举了,传送门: mongodb for windows
  这里说一下如何 添加登录权限

添加登录权限
  先贴一段 code:
  

> show dbs  
admin    (empty)
  
hi-blog  0.078GB
  
local    0.078GB
  
session  0.078GB
  
> use hi-blog
  
switched to db hi-blog
  
> show collections
  
apikeys
  
classifys
  
system.indexes
  
users
  
> db.addUser('root','root123')
  
WARNING: The 'addUser' shell helper is DEPRECATED. Please use 'createUser' instead
  
Successfully added user: { "user" : "root", "roles" : [ "dbOwner" ] }
  
> show collections
  
2015-05-18T14:24:36.802+0800 error: {
  "$err" : "not authorized for query on hi-blog.system.namespaces",
  "code" : 13
  
} at src/mongo/shell/query.js:131
  
> db.auth('root','root123')
  
1
  
> show collections
  
apikeys
  
classifys
  
system.indexes
  
users
  
> show users
  
{
  "_id" : "hi-blog.root",
  "user" : "root",
  "db" : "hi-blog",
  "roles" : [
  {
  "role" : "dbOwner",
  "db" : "hi-blog"
  }
  ]
  
}
  
> _
  

  以上先展示了数据库的“表”(databases)然后切换到了某个“集”(collections)然后再看下这个集合下的数据“行”(document),在没有添加(addUser)管理员前 collections 随便看,一旦添加了 管理员 则需要认证后(auth)才能查看
  [注意:大前提是在启动mongodb服务时添加了 --auth 用户认证参数]

验证测试
  我们重启一下 mongo 服务,例如楼主的:
  

$ mongod --dbpath "/usr/local/var/www/mongodb-osx-x86_64-3.0.0/data/db" --port=27017 --auth  
//添加auth命令就开启了登录权限
  

  另外打开一个 bash 窗口:
  

$ mongo -uroot -proot123 127.0.0.1:27017/hi-blog  
//u 后带用户名 p 后带密码
  

  链接成功~
  注:对admin设置管理账号则登录后可以操作整个数据库,对 A 数据设置管理账号则登录后只能操作A数据库,例如 以上链接了 hi-blog 数据库,若想 show dbs 则报错。 show collections 当然正常。

5.mongoose 登录验证
  类似的 轻量级的nodejs mongodb驱动有很多,比如:
  mongoose, node-mongodb-native, mongoskin, node-mongolian, mongous, mongojs
  他们的关系据说是这样:
DSC0000.png
  这里以mongoose为例,举例登录验证
  

mongodb://你的账号:密码@host ip:端口号/设置登录权限的数据库  
mongodb://admin:123456@192.168.1.100:27018/yourdb
  

  这还是很轻松的,什么?上下文也要?如下:
  

//mongodb操作.js  
var mongoose = require('mongoose'),
  config = require('./../db/config');
  
db = mongoose.createConnection();
  

  
//设置用户名密码端口数据库
  
db.openSet(config.dbLogin);
  
// 链接错误
  
db.on('error', function(error) {
  
    console.log(error);
  
});
  
……
  

  
//config.js
  
//需要登录的mongodb
  
var dbLogin = 'mongodb://admin:123456@192.168.1.100:27018/yourdb';
  
……
  
exports.dbLogin = dbLogin;
  
……
  

  完

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-84051-1-1.html 上篇帖子: 开篇文章-NoSQL之MongoDB基本操作 下篇帖子: mongodb--java操作
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表