mongodb学习笔记1

mongod 在没有参数的情况下会使用默认数据目录/data/db(在windows下是c:\data\db\),并且使用27017端口,如果数据目录不存在或不可写,端口被占用等情况出现时会导致服务启动失败。mongod还启动一个非常基本的http服务器,监听数字比主端口号高1000的端口,也就是说你可以通过http://localhost:28017来获取数据库的管理信息。

在启动服务器的shell下可以用CTRL+C来完全的停止mongod的运行。

在windows下创建一个mongodb服务,代码如下:

mongod --dbpath  "d:\mongotDB\data"  --directoryperdb  --logpath  "d:\mongoDB\log\mongoDBLog.log" 
 --logappend  --journal  --install

 mongod有很多可配置的启动选项,在命令行中运行mongod -h 可以查看所有选项:

介绍几个常用的

dbpath:指定数据目录:默认是data/db/,每个mongod进程都需要独立的数据目录,所以要是有多个Mongod实例,必须要有多个独立的数据目录,当Mongod启动时,会在数据目录 下创建mongod.lock文件,这个文件用于防止其他mongod进程使用该数据目录,如果使用同一个数据目录启动另一个Mongodb服务器,则会报错:

"unable to acquire lock for lockfilepath /data/db/mongod.lock"

logpath:指定日志输出路径,而不是输出到命令行。

logappend:日志采用追加模式

directoryperdb:每个db存放单独的目录

journal:开启日志功能(还有待研究)

port:指定服务器监听的端口号,默认是27017,web管理端口在此基础上加1000

fork:以守护进程的方式运行MongoDB,创建服务器进程(还有待研究)

config:指定配置文件

auth:开启用户认证

在创建完成MongoDB service之后可以在日志文件中看到如下 信息:

Tue Apr 24 13:38:20 [initandlisten] MongoDB starting : pid=5904 port=27017 dbpath=d:\mongoDB\data 32-bit host=zwx
Tue Apr 24 13:38:20 [initandlisten] 
Tue Apr 24 13:38:20 [initandlisten] ** NOTE: when using MongoDB 32 bit, you are limited to about 2 gigabytes of data
Tue Apr 24 13:38:20 [initandlisten] **       see http://blog.mongodb.org/post/137788967/32-bit-limitations
Tue Apr 24 13:38:20 [initandlisten] **       with --journal, the limit is lower
Tue Apr 24 13:38:20 [initandlisten] 
Tue Apr 24 13:38:20 [initandlisten] db version v2.0.2, pdfile version 4.5
Tue Apr 24 13:38:20 [initandlisten] git version: 514b122d308928517f5841888ceaa4246a7f18e3
Tue Apr 24 13:38:20 [initandlisten] build info: windows (5, 1, 2600, 2, 'Service Pack 3') BOOST_LIB_VERSION=1_42
Tue Apr 24 13:38:20 [initandlisten] options: { auth: true, dbpath: "d:\mongoDB\data", directoryperdb: true, journal: true, logappend: true, logpath: "d:\mongoDB\log\mongoDBLog.log", service: true }
Tue Apr 24 13:38:20 [initandlisten] journal dir=d:/mongoDB/data/journal
Tue Apr 24 13:38:20 [initandlisten] recover : no journal files present, no recovery needed
Tue Apr 24 13:38:20 [initandlisten] waiting for connections on port 27017
Tue Apr 24 13:38:20 [websvr] admin web console waiting for connections on port 28017

 在命令行中运行net start "MongoDB" 可启动Mongodb服务

Ctrl+C可停止MongoDB,另一种比较好的方式就是使用shutdown命令,这是一个管理命令,在要admin数据库下使用,shell提供了辅助函数,来简化这一过程

运行mongo登录到数据库中,执行:

use admin
db.shutdownServer();

 每个MongoDB实例中的数据库都可以有许多用户,如果开户了安全性检查,则只有数据库认证的用户才能执行读写操作

也就是说只有在开启Mongodb服务时加了--auth参数时,才对用户进行认证。

use admin 
db.addUser("root" ,"123");
{
      "user":"root"
      "readonly":false
      "pwd":"6beed8c02c5d4452e0a4de2ac7ac886c"
}

 上面添加了管理员root 密码为123

退出后 在命令行中运行mongo admin -u root -p 123 即可登录。

猜你喜欢

转载自menuhin.iteye.com/blog/1496647