安装及简单用户操作
- 下载
- 简单的安装
- 解压至指定文件夹
- 配置环境变量
- 创建数据库目录
- 启动
- MongoDb web 用户界面
- MongoDB 设置账号和密码
- 1.首先普通登陆
- 2.认账登陆
- 3.添加数据库用户
- 4.查看系统用户
- 5.删除用户
- 6.MongoDB role 类型
下载
curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6.tgz
简单的安装
解压至指定文件夹
tar -zxvf mongodb-linux-x86_64-3.0.6.tgz -C ../bigdata/
配置环境变量
export MONGODB_HOME=/opt/bigdata/mongodb306
export PATH=$PATH:$MONGODB_HOME/bin
创建数据库目录
MongoDB的数据存储在data目录的db目录下,但是这个目录在安装过程不会自动创建,所以你需要手动创建data目录,并在data目录中创建db目录。
以下实例中我们将data目录创建于根目录下(/)。
注意:/data/db 是 MongoDB 默认的启动的数据库路径(–dbpath)。
mkdir -p /data/db
启动
你可以再命令行中执行mongo安装目录中的bin目录执行mongod命令来启动mongdb服务。
注意:如果你的数据库目录不是/data/db,可以通过 --dbpath 来指定。
mongod
2015-09-25T16:39:50.549+0800 I JOURNAL [initandlisten] journal dir=/data/db/journal
2015-09-25T16:39:50.550+0800 I JOURNAL [initandlisten] recover : no journal files present, no recovery needed
2015-09-25T16:39:50.869+0800 I JOURNAL [initandlisten] preallocateIsFaster=true 3.16
2015-09-25T16:39:51.206+0800 I JOURNAL [initandlisten] preallocateIsFaster=true 3.52
2015-09-25T16:39:52.775+0800 I JOURNAL [initandlisten] preallocateIsFaster=true 7.7
完成上一步以后,打开一个新的 shell 页面
$ cd /usr/local/mongodb/bin
$ ./mongo
MongoDB shell version: 3.0.6
connecting to: test
Welcome to the MongoDB shell.
……
由于它是一个JavaScript shell,您可以运行一些简单的算术运算,以此来进行测试
> 2+2
4
> 3+6
9
现在让我们插入一些简单的数据,并对插入的数据进行检索:
db.runoob.insert({x:10})
WriteResult({ “nInserted” : 1 })
db.runoob.find()
{ “_id” : ObjectId(“5604ff74a274a611b0c990aa”), “x” : 10 }
MongoDb web 用户界面
MongoDB 提供了简单的 HTTP 用户界面。 如果你想启用该功能,需要在启动的时候指定参数 --rest 。
注意:该功能只适用于 MongoDB 3.2 及之前的早期版本。
$ ./mongod --dbpath=/data/db --rest
MongoDB 的 Web 界面访问端口比服务的端口多1000。
如果你的MongoDB运行端口使用默认的27017,你可以在端口号为28017访问web用户界面,即地址为:http://localhost:28017。
MongoDB 设置账号和密码
MongoDB 默认安装完成以后,只允许本地连接,同时不需要使用任何账号密码就可以直接连接MongoDB,这样就容易被黑,让支付一些比特币,所以为了避免这些不
必要的麻烦,所以我们需要给Mongo设置一个账号密码;
1.首先普通登陆
[root@iZ2ze2pbbffhmn53ao4tuaZ bin]# ./mongod
去另外一个页面创建管理员用户
[root@cailuo bin]# ./mongo
> use test
switched to db test
> db.createUser({user:"test",pwd:"test",roles:[{role:"readWrite",db:"test"}]})
Successfully added user: { "user" : "admin", "roles" : [ "test" ] }
然后两个页面均ctrl+c退出,用以下的方法重新用新建的用户登陆
2.认账登陆
# 启用认证
[root@iZ2ze2pbbffhmn53ao4tuaZ bin]# ./mongod --auth
去另外一个页面
> db.auth("test", "test")
3.添加数据库用户
> use flowpp
switched to db flowpp
> db.createUser({user: "flowpp", pwd: "flopww", roles: [{ role: "dbOwner", db: "flowpp" }]}) # 创建用户flowpp,设置密码flopww,设置角色dbOwner
4.查看系统用户
复制代码
> use admin
switched to db admin
> db.system.users.find() # 显示当前系统用户
{ "_id" : "admin.admin", "user" : "admin", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "9jXmylyRAK22TZmzv1Thig==", "storedKey" : "z76cVrBjX/CTFmn5RujtU+dz7Nw=", "serverKey" : "JQGonM84iDMI1nIXW7FdyOE55ig=" } }, "roles" : [ { "role" : "root", "db" : "admin" } ] }
{ "_id" : "flowpp.flowpp", "user" : "flowpp", "db" : "flowpp", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "KvocqWZA9E2tXBHpKpdAeQ==", "storedKey" : "50Kxc3LEgCSVN1z16S8g4A6jVp8=", "serverKey" : "0RSnsxd/7Yzmqro/YOHf/kfbHCk=" } }, "roles" : [ { "role" : "dbOwner", "db" : "flowpp" } ] }
5.删除用户
复制代码
1.切换admin ,删除用户flowpp ,删除失败
> use admin
switched to db admin
> db.dropUser("flowpp")
false
2.切换flowpp ,删除用户flowpp,删除成功
> use flowpp
switched to db flowpp
> db.dropUser("flowpp")
true
说明:
删除用户的时候需要切换到用户管理的数据库才可以删除;
6.MongoDB role 类型
数据库用户角色(Database User Roles)
read:授予User只读数据的权限
readWrite:授予User读写数据的权限
数据库管理角色(Database Administration Roles):
dbAdmin:在当前dB中执行管理操作
dbOwner:在当前DB中执行任意操作
userAdmin:在当前DB中管理User
备份和还原角色(Backup and Restoration Roles):
backup
restore
跨库角色(All-Database Roles):
readAnyDatabase:授予在所有数据库上读取数据的权限
readWriteAnyDatabase:授予在所有数据库上读写数据的权限
userAdminAnyDatabase:授予在所有数据库上管理User的权限
dbAdminAnyDatabase:授予管理所有数据库的权限
集群管理角色(Cluster Administration Roles):
clusterAdmin:授予管理集群的最高权限
clusterManager:授予管理和监控集群的权限,A user with this role can access the config and local databases, which are used in sharding and replication, respectively.
clusterMonitor:授予监控集群的权限,对监控工具具有readonly的权限
hostManager:管理Server