MongoDB是一种面向文档的数据库管理系统,用C++等语言撰写而成,以解决应用程序开发社区中的大量现实问题。MongoDB由MongoDB Inc.(当时是10gen团队)于2007年10月开发,2009年2月首度推出,现以服务器端公共许可(SSPL)分发。 本文将介绍使用Container Station(很奇怪的一个名字,据官方描述:整合了轻量级虚拟技术LXC(Linux Container)与Docker®)来安装MongoDB ## 准备工作 先建立两个文件夹备用: 1、Container/MongoDB/db 2、Container/MongoDB/configdb ## 打开Container Station并设定MongoDB 打开 Container Station ![](https://img.imzhp.com/10/images/cd308c994db8d645d93b6b0b0869e608.png-web) 点击“创建” ,然后翻页找到MongoDB,然后点击“创建” ![](https://img.imzhp.com/35/images/54593de40e23c0ec38b046a38cec7efc.png-web) 这里,你也可以点击“MongoDB”来查看简介。 ![](https://img.imzhp.com/54/images/d87ffa41eb410bbaab41399cba1a2302.png-web) 这里就直接点击“创建”吧,QNAP的一个蛋疼的操作:这时候窗口的基本资料系统还不清楚(比如端口、文件夹映射等QNAP还不知道),因此先不做任何设定,稍后移除重新建立新的后再做这些映射的操作。 耐心的等待它下载、安装创建完成,然后,在总览里找到刚才建立的Container,然后直接删除它! ![](https://img.imzhp.com/47/images/c4f76966c3c524b9c10fc3d08fd3e542.png-web) 下来,在镜像文件中找到刚才下载的MongoDB,并再次安装 ![](https://img.imzhp.com/77/images/1154da1a37b25e76d5ad1ff7b5bef74a.png-web) 直到此时,QNAP才识别出了 Container 的基本资料,在命令字段里输入 ``` mongod --auth ``` 必须注意mongod与--auth之间必须有一个空格。 (加入--auth的目的是为了在创建MongoDB的时候出现认证,以提高安全性。) ![](https://img.imzhp.com/94/images/e2d697f5e7ab5cde74459bdfdfae5cad.png-web) 点击“高级设置”,先进入 “网络”设置一下端口的映射。 ![](https://img.imzhp.com/48/images/8f015cc1948bb6061dfe991621f1851c.png-web) 点击“共享文件夹”来设置文件夹的映射,在“挂载本机共享文件夹”中将事先建立好的文件夹对应起来: ![](https://img.imzhp.com/55/images/ce4dea42a7bf8b7adcf674694938802f.png-web) 等机器自动执行完成,MongoDB的安装就基本完成了。下面介绍一下一些进阶操作。 ## 设置MongoDB 的账号以及管理权限 创建MongoDB的管理员账号,这里可以参考MongoDB DockerHub的说明 ![](https://img.imzhp.com/15/images/acbb1b1cc7ed402ee49494afaa7ce28a.png-web) 选择刚建立的Container,打开“终端机”,输入入命令: ``` mongo admin ``` 点击确定,进入终端机后,输入: ``` db.createUser({ user: '管理员账号', pwd: '密码', roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] }); ``` 执行 ![](https://img.imzhp.com/81/images/ed8338914e95eb6fd9f199f5b8e44b39.png-web) 然后,回到Container页面,继续打开“终端机”,输入命令: ``` mongo -u 管理员账号 -p 密碼 --authenticationDatabase admin ``` ![](https://img.imzhp.com/78/images/2dd3e238077d890e63e06bf0b231b4a0.png-web) 点击“确定”,进入终端机后,输入: ``` use 你的数据库名(例如:qiotdatabase) db.createUser({ user: "账号", pwd: "密码", roles: [ { role: "dbOwner", db: "輸入剛剛設定的DB名稱"}]}); ``` (在这里必须注意,设定的DB帐号与密码不可与前面所定过的帐号密码重复,必须重新设定一个新的) ![](https://img.imzhp.com/42/images/a7204ffee31dd08b113fd99c6638b605.png-web) 最后修改:3年前 © 著作权归作者所有