Mongodb 3.x 安装及权限配置
来源:互联网 发布:华为的程序员 编辑:程序博客网 时间:2024/05/18 08:08
Intro
Mongodb本身已经是比较成熟并已经广泛使用的一款nosql产品。了解该产品最好的方式当然是官网,考虑到网络和语言习惯,一些具有中文站则会给我们更大的便利。这篇文章主要记录一下折腾Mongodb3.x的一些步骤,其中所有的内容都是通过阅读官方文档了解的。
一、Mongodb安装
由于大部分时候Mongodb serever都是跑在Linux环境下,所以这里默认操作系统都是Linux centos6。Mongodb版本为当前最新,v3.4.2。
- tgz包下载
wget 'https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel62-3.4.2.tgz'
- 解压缩
tar zxvf mongodb-linux-x86_64-amazon-3.4.2.tgzcd mongodb-linux-x86_64-amazon-3.4.2/bin
这里会看到所有Mongodb相关的可执行文件,目前只关注
二、Mongodb启动
1. 启动Server
知道了Mongodb server的启动文件是mongod,那么猜想 ./mongod既能启动server,但是很自然我们首先会关注这样几个问题。
1) 默认监听端口是多少,如果设置我自己想用的端口号
2) 运行日志在哪里看
3) 持久化的数据文件放在哪里
4) 是否有配置文件支持更多细节的配置
启动命令
./mongod --port 27017 --dbpath /mongodb/data --logpath /logs/mongodb.log -f /mongodb/server.conf
以上命令解答上面提到的4个问题。
--port 指定客户端连接端口号,默认27017--dbpath 持久化数据所在路径,启动前该路径必须存在--logpath 日志文件-f 指定配置文件,简单的properties文件,自己创建即可
如果个性化参数都写在配置文件中会让启动命令变得清爽一些,我自己是这样做的
./mongod -f /mongodb/server.conf
配置文件 cat /mongodb/server.conf
port=27017logpath=/logs/mongodb.loglogappend=true #日志生产方式 (追加/覆盖)dbpath=/mongodb/data
2. 客户端连接
Mongodb client的启动文件是mongo,而我们又知道mongodb服务的ip:port,猜都能猜到客户端连接命令
./mongo 127.0.0.1:27017
如果连接成功,mongodb的安装就到此结束了。
三、权限配置
现在mongodb已经安装启动可以使用了,但是很奇怪,一直都没有遇到过权限问题,如果其他人也能随意连上我的数据篡改数据岂不是麻烦了。那下一个要解决的问题 就是为我的数据库加上权限控制。
总的来说是以下几步:
1. 开启权限验证
在server.conf中加上一行
auth=true
2. 添加管理员账号
这里所说的管理员账号不是像linux里面无所不能的root,而是一个能分配账号的账号。在server所在的系统,用客户端连接上server,执行以下代码
use admindb.createUser({ user:'admin', pwd:'123456', roles:[{role:'userAdminAnyDatabase', db:'admin'}]})
这样就创建了一个账号,user为admin, 密码为123456,他能在admin库中管理任何库的用户。
3. 添加数据操作账号
一旦开启的权限管理,接下来所有的操作都必须用合适的账号去做,刚刚我们能成功的添加用户,是因为这是我们的第一个账号(第一就有特权,呵)。我们创建的admin账号只能管理用户,而我们真正需要的账号是要能用来读写数据的,那就需要创建一个可读写数据的账号。
接下来,我们要为一个名为”testDatabase”的库添加读写用户rwuser。
use admindb.auth("admin","123456")use testDatabasedb.createUser({ user:'rwuser', pwd:'123456', roles:[{role:'readWrite', db:'testDatabase'}]})
使用exit退出连接后,我们就可以使用该账号连接server了
./mongo 127.0.0.1:27017/testDatabase -urwuser -p123456
四. mongodb相关概念
mongodb也存在和mysql类似的“库”概念,大体概念是相似的,同样默认会有一个test库。Collection的概念则对应mysql中的表。
相关的命令:
在这里“库”的概念之下,我们回头看添加账号时的一些操作。
//use testDatabase =>use admindb.createUser({ user:'rwuser', pwd:'123456', roles:[{role:'readWrite', db:'testDatabase'}]})
admin账号登录后,为testDatabase库创建账号时,做了一次库切换use testDatabase
,可明明在roles:[{role:'readWrite', db:'testDatabase'}]
这一行代码里已经指明给该账号的是testDatabase库的读写权限,还需要多此一举吗。在mongodb里,这确实是有意义的。简单的说来,就是在某个库下创建的账号,只能用来登录到这个库,若再要操作其他库,则需要先做库切换。举个例子,如果上一节中use testDatabase改成use admin,登录命令则需要改成:
./mongo 127.0.0.1:27017/admin -urwuser -p123456
而此时连接成功后是登录到admin库,然后需要use testDatabase才能做后续的读写操作。
- Mongodb 3.x 安装及权限配置
- Centos 7下 mongodb 3.2.1 安装及权限配置
- Mongodb安装及配置
- MongoDB安装及配置
- mongodb安装及配置
- MongoDB基础配置及权限配置
- Mongodb下载及安装配置
- ubuntu安装mongodb及配置
- Win7安装mongodb及配置
- MongoDB安装配置及应用
- Windows MongoDB 安装及配置
- Windows MongoDB 安装及配置
- MongoDB 3.x 安全权限访问控制
- Docker 安装 MongoDB 3.x
- Mongodb在Windows下安装及配置
- Mongodb在Linux下安装及配置
- Mongodb在Windows下安装及配置
- mongodb安装配置及java应用
- wenzahang
- 移动端html5图片上传方法【更好的兼容安卓IOS和微信】
- 修改studio的字体大小
- 给nginx自定义错误页面
- redis 集群常用命令
- Mongodb 3.x 安装及权限配置
- 蓝桥杯 算法提高 7-1用宏求球的体积
- 美国大学最新排名备受关注 手握雅思高分做到万事无忧
- tomcat6 redis session共享
- 裸的tarjan(模板)
- 在C#中实现Socket端口复用
- 菱形继承与虚拟继承
- Java设计模式之Builder模式
- JS兼容各个浏览器的本地图片上传即时预览效果