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

    计数器pc 2.2 虚拟机栈和程序计数器一样,虚拟机栈也是线程私有的,它的生命周期与线程相同.虚拟机栈描述的是java方法执行的内存模型. 每个方法(不包含native方法)执行的同时都会创建一个栈帧 ...

  2. 五种典型开发周期模型(瀑布、V、原型化、螺旋、迭代)

    五种典型开发周期模型(瀑布.V.原型化.螺旋.迭代) 总结一下经常可以见到的系统开发周期模型.    在过去的几年里,可以很奇葩的碰到类似于“创业项目库”这种需求非常明确,工作量十分可控,对质量要求比 ...

  3. fastRPC服务使用

    现在出现了很多中间件解决跨语言问题,使用RPC远程调用:但是庞大是个问题,而且要按照格式使用.尤其是源码量比较庞大. 为了简单易用,我采用订阅发布模型,在此基础上创建了fastRPC,模拟RPC,调用 ...

  4. 0CO_PC_01 成本对象控制: 计划/实际数据

    用户提出要取生产订单的成本分析明细,分析目标和实际的差异. 查了一下,可以使用 BW标准数据源:0CO_PC_01 其中,值类型:10(实际).20(计划).30(目标) 货币类型:20(成本控制范围 ...

  5. WPF 跟随鼠标动画 by wgscd

    WPF 跟随鼠标动画 by wgscd <UserControl x:Class="WpfApplication1.Spark" xmlns="http://sch ...

  6. 2017-2018-1 20155231 课堂测试 (ch06)

    2017-2018-1 20155231 课堂测试 (ch06) 1 (单选题|1分) 下面代码中,对数组x填充后,采用直接映射高速缓存,所有对x和y引用的命中率为(D) A .1 B .1/4 C ...

  7. Node.js 从入门到茫然系列——入门篇

    在创建服务的时候,我们一般代码就是: var http = require("http"); var server = http.createServer(function(req ...

  8. jQuery学习- 内容选择器

    <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...

  9. PyQt5 笔记(01):嵌套布局

    PyQt5 有四种布局:水平(QHBoxLayout).竖直(QVBoxLayout).网格(QGridLayout).表单(QFormLayout)在窗体中单一的布局应该不难,但若是比较复杂的布局, ...

  10. 5 数据结构、栈、队列、链表、list、dict、迷宫问题

    1.什么是数据结构 2.栈:后进先出 1.什么是栈 栈(Stack)是一个数据集合,可以理解为只能在一端进行插入或删除操作的列表.   2.栈的Python实现 stack = [] stack.ap ...