MongoDB数据库搭建(Windows)

关于MongoD非关系数据库,网上有太多的解释,与其讲得再多,还不如亲自体验一下

MongoDB

有用过MySQL,PostgreSQL,sqlite3等这些数据库的,是时候应该考虑下MongoDB了。。此处之外,MongoDB搭建也是非常简单的,本文以windows系统为例(问:为什么不是Linux?答:我想怎么玩就这么怎么玩!管得着?)

测试环境:

Windows 10
MongoDB 3.6.3

下载地址见官网

下载完成后是一个压缩文件,解压后bin目录下有如下文件
img

mongod.exe 数据库服务器进程(守护进程)
mongo.exe 用于与服务器进行交互的shell控制台(JavaScript)
mongoexport.exe 数据导出(备份)
mongoimport.exe 数据导入(恢复)

进入CMD,cd 到mongoDB bin目录,通过 mongod.exe --help 可查看可执行文件的参数列表,参数还挺多的。。。
img

注意那一个参数

-f [ –config ] arg configuration file specifying additional options

可以指定一个配置文件作为服务器启动的参数
比如以下几个参数:

dbpath=C:\MongoDB\data\db
logpath=C:\MongoDB\logs\mongo.log
logappend=true
port=27017
auth=true
bind_ip_all=true

dbpath 指定database目录,默认为 C:\data\db*
logpath 指定日志
文件*,而不是标准输出到console。注意是文件,不是目录!
logappend 指定以追加的模式写入日志文件,而不是覆盖
port 指定服务器监听的端口,默认 27017
auth 指定访问数据库时必须要经过身份验证
bind_ip_all 绑定(监听)所有IP地址,或者 bind_ip 指定要绑定的IP地址列表,默认 localhost
关于配置文件更详细信息还得去官网查查…

MongoDB根目录下所有的文件,不存在的目录和文件自行创建

C:\MongoDB
|–bin
——-|– …
|–conf
——-|– mongo.conf
|–data
——-|– db
|–logs
——-|– mongo.log

之后在
mongod.exe --config c:\MongoDB\conf\mongo.conf
img

接着我们输出 show dbs

>show dbs
2018-02-21T10:29:48.852+0800 E QUERY [thread1] Error: listDatabases failed:{
“ok” : 0,
“errmsg” : “not authorized on admin to execute command { listDatabases: 1.0, $db: \”admin\” }”,
“code” : 13,
“codeName” : “Unauthorized”
} :
_getErrorWithCode@src/mongo/shell/utils.js:25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js:65:1
shellHelper.show@src/mongo/shell/utils.js:816:19
shellHelper@src/mongo/shell/utils.js:706:15
@(shellhelp2):1:1
>

报错了,因为没有权限列举出所有的database,这就是之前的 auth 的作用。那么现在创建一个用户

> use admin
switched to db admin
> db.createUser({user:’fuck’,pwd:’12345’,roles:[{role:’root’,db:’admin’}]})

Successfully added user: {
“user” : “fuck”,
“roles” : [
{
“role” : “root”,
“db” : “admin”
}
]
}
>

首先,切换到 admin 这个database,然后通过 db.createUser 来创建一个新的用户,这里创建一个root权限的用户 😃
exit,重新进入 mongo console
再次 show dbs,同样报错。接着

>use admin
>db.auth(‘fuck’,’12345’)
>1
>show dbs
admin 0.000GB
config 0.000GB
local 0.000GB
1 说明验证成功;0 验证失败

现在我们已经成功搭建的MongoDB服务器。。等等,那么我们下次开机还不是还要重新通过命令行来启动服务器?这样也太麻烦了吧。是的,所以可以把MongoDB添加到系统服务里面,让它开机自启动。

还记得 mongod.exe --help吗?我们可以找找有哪些参数有用得到的。。。

Windows服务控制管理

Windows Service Control Manager options:
–install install Windows service
–remove remove Windows service
--reinstall reinstall Windows service (equivalent
to –remove followed by –install)
–serviceName arg Windows service name
–serviceDisplayName arg Windows service display name
–serviceDescription arg Windows service description
–serviceUser arg account for service execution
–servicePassword arg password used to authenticate
serviceUser

那么,我们可以这样做,通过 --install 安装系统服务

mongod.exe --config c:\MongoDB\conf\mongo.conf –serviceName MongoDB --serviceDisplayName MongoDB_Server --serviceDescription “This is my MongoDB Server…” –install

img

看!是不是OK了,So easy!除此之外,我们还可以把 C:\MongoDB\bin 添加到PATH环境变量里。
现在启动该服务或者 net start MongoDB,回到cmd,输入

mongo -u fuck -p 12345 admin

-u 指定用户名称
-p 指定用户密码
后面的 admin 则是要登录的database

结尾

嗯…很简单吧!除此之外,MongoDB数据库提供的编程接口也是支持大多数语言的,比如 C,C++,Java,Python,PHP……具体可从官网上查看使用方法。对于C/C++,似乎挺复杂的。


本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!