题外话:尽管有不少人贴出了 《我不用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

他们的关系据说是这样:

这里以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;
……

Mongodb For Mac OSX && 登录验证的更多相关文章

  1. MongoDB 在 Mac OSX 平台安装

    1.检查电脑是否安装 Homebrew(brew) 工具.如果没有安装,在终端执行下面命令. ruby -e "$(curl -fsSL https://raw.githubusercont ...

  2. Install MongoDB driver for PHP on XAMPP for Mac OSX

    试了不少方法,最后还是这个最有效. [转自:http://thatsimplecode.com/install-mongodb-driver-for-php-on-xampp-for-mac-osx] ...

  3. Mac OSX 下用 Homebrew 安装 MongoDB 并配置到 WebStorm 中

    1. 安装 Ruby OSX 操作系统内置 Ruby,但如果没有 Ruby,则需先输入以下命令安装能够进行多版本ruby环境安装.管理和切换的命令行工具 RVM. 1.1 安装 RVM 打开终端输入以 ...

  4. MongoDB登录验证及用户管理

    一.超级管理员创建及开启登录验证 如果MongoDB要开启登录验证,必须在开启登录验证之前先创建好超级管理员,否则无法登录数据库! 例如,创建一个超级管理员admin,关联给admin数据库,角色设置 ...

  5. Mac OSX 平台安装 MongoDB

    Mac OSX 平台安装 MongoDB MongoDB 提供了 OSX 平台上 64 位的安装包,你可以在官网下载安装包. 下载地址:https://www.mongodb.com/download ...

  6. 使用node+express+mongodb实现用户注册、登录和验证功能

    无论是手机端还是pc端,几乎都包含登录注册方面功能,今天就使用node+express+mongodb实现一套登录注册功能,这里需要自己去安装MongoDB环境,如果没有安装可以看这篇关于MongoD ...

  7. MAC OSX下终端通过NTLM验证,通过代理上网(花了一天时间才解决这个)

    MAC OSX下终端通过NTLM验证,通过代理上网 公司网络限制如下: 公司通过代理来控制内网用户访问外网的权限.用户名和密码为域用户,采用的验证方式是NTLM(用的是foreFront TMG) 遇 ...

  8. XE6移动开发环境搭建之IOS篇(8):在Mac OSX 10.8中安装XE6的PAServer(有图有真相)

    网上能找到的关于Delphi XE系列的移动开发环境的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 安装PAServer ...

  9. XE6移动开发环境搭建之IOS篇(7):在Mac OSX 10.8中安装Xcode4.6.3(有图有真相)

    网上能找到的关于Delphi XE系列的移动开发环境的相关文章甚少,本文尽量以详细的图文内容.傻瓜式的表达来告诉你想要的答案. 原创作品,请尊重作者劳动成果,转载请注明出处!!! 在安装Xcode前, ...

随机推荐

  1. sqoop数据导入命令 (sql---hdfs)

    mysql------->hdfs sqoop导入数据工作流程: sqoop提交任务到hadoop------>hadoop启动mapreduce------->mapreduce通 ...

  2. jenkins持续集成python cases

    1. 官网2.7jenkins.war下载 http://mirrors.jenkins.io/war-stable/2.73.2/jenkins.war jdk-x86 linux 32bit适用  ...

  3. POJ 1321 棋盘问题(非常经典的dfs,入门题)

    棋盘问题 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 66277   Accepted: 31639 Descriptio ...

  4. relu6激活函数

    relu6 = min(max(features, 0), 6) This is useful in making the networks ready for fixed-point inferen ...

  5. 参加360前端星计划总结(二)--HTML&CSS

    HTML学习手册(英文版)html:the living standard 重要知识点 文档声明的作用a. 指定html的文档标准和版本b. 告诉浏览器渲染模式,有怪异模式(较为古老的模式,不写文档声 ...

  6. 20155236范晨歌_EXP3免杀原理与实践

    20155236范晨歌_免杀原理与实践 免杀 概述 免杀,也就是反病毒(AntiVirus)与反间谍(AntiSpyware)的对立面,英文为Anti-AntiVirus(简写Virus AV),逐字 ...

  7. BZOJ 2395 [Balkan 2011]Time is money

    题面 题解 将\(\sum_i c_i\)和\(\sum_i t_i\)分别看做分别看做\(x\)和\(y\),投射到平面直角坐标系中,于是就是找\(xy\)最小的点 于是可以先找出\(x\)最小的点 ...

  8. Codeforces 912 E.Prime Gift (折半枚举、二分)

    题目链接:Prime Gift 题意: 给出了n(1<=n<=16)个互不相同的质数pi(2<=pi<=100),现在要求第k大个约数全在所给质数集的数.(保证这个数不超过1e ...

  9. #6435. 「PKUSC2018」星际穿越

    考场上写出了70分,现在填个坑 比较好写的70分是这样的:(我考场上写的贼复杂) 设\(L(i)=\min_{j=i}^nl(j)\) 那么从i开始向左走第一步能到达的就是\([l(i),i-1]\) ...

  10. jstl c:if 不能判断成功的问题

    这是因为test里不能直接用 ${value}=='字符串' 的方式来进行判断比较,所以只能这样写 ${value == '字符串'} ,这样就能判断了