一、安装
1.下载解压
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.6.tgz
tar -zxvf mongodb-linux-x86_64-rhel70-4.2.6.tgz -C /usr/local/mongodb
或 yum install mongodb -y
3.新建目录
mkdir /var/log/mongodb
mkdir /home/mongo/data
mkdir /var/run/mongodb
4.增加配置文件内容
vi /etc/mongod.conf
dbPath: /home/mongo/data
bindIp: 0.0.0.0
启动:
mongod --dbpath=/home/mongo/data --logpath=/var/log/mongodb/mongod.log --logappend --port=27017 --fork --auth
停止:
mongod --shutdown --config /etc/mongod.conf 或登陆后操作:db.shutdownServer();
登录:
mongo --port 27017 -u "username" -p "url编码" --authenticationDatabase "admin"
启动报错:
mongodb出现启动失败 child process failed, exited with 1 To see additional information in this output
解决方式:
i. 检查创建的mongod.conf文件中两个path指向路径跟创建路径名是否一致。
ii.进入到数据存储路径,将该 “xxx.lock 文件” mongod.lock删除掉就好。
二、内置角色
1.数据库用户角色:read、readWrite
2.数据库管理角色:dbAdmin、dbOwner、userAdmin
3.集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
4.备份恢复角色:backup、restore
5.所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6.超级用户角色:root
7.内部角色:__system
三、用户管理
查看用户信息
use admin
db.getUser("username")
1.添加用户,切换到需要添加用户的db
use xxxx
执行添加
db.addUser(
{
user:"username",
pwd:"password_url编码",
roles:[
{role:"read", db:"xxxx"},
{role:"readWrite", db:"test"}
]
}
)
添加超级用户,切换到admin数据库
use admin
执行添加
db.addUser(
{
user:"username",
pwd:"password_url编码",
roles:[
{role:"root", db:"admin"},
{role:"dbAdminAnyDatabase",db:"admin"}
]
}
)
2.删除用户,切换到用户授权的db
use xx
执行删除操作
db.dropUser("username") 或者:db.system.users.remove({user:"test"})
3.更新用户
切换到用户授权的db
use xx
执行更新,字段会覆盖原来的内容
db.updateUser("username",{
pwd:"new password_url编码",
customData:{
"title":"PHP developer"
}
})
更新用户密码
use xx
db.changeUserPassword("username","newpassword_url编码")
删除用户角色
use xx
db.revokeRolesFromUser(
"usename",
[
{ role: "readWrite", db: "accounts" }
]
)
添加用户角色
use xx
db.grantRolesToUser(
"reportsUser",
[
{ role: "root", db: "admin" }
]
)
四、基本操作
查看帮助:db.help() 查询数据库:show dbs
创建数据库:use dbName
查看表:show tables;
插入数据:db.<tableName>.insert();
如:db.members.insert({name:"Michael",age:18,...});
查询:db.<tableName>.find(); 或 db.system.users.find(); 或 show users;
修改:如:db.members.update({name:"Michael"},{$set:{age:20}});
删除表中的数据:如:db.members.remove({name:"Michael"});
删除全部:db.members.remove({});
删除表:db.members.drop();
删除数据库:db.dropDatabase();
五,角色管理
查看角色信息
use admin
db.getRole("rolename",{showPrivileges:true})
六,备份和恢复
#备份
mongodump -h ip:端口 -uroot -p密码 -d 数据库 -o 路径 #备份数据库
mongodump -uroot -p密码 -d 数据库 -c 集合名 -o 路径 #备份数据库某个集合
mongorestore -h ip:端口 -u用户名 -p密码 -d 数据库 --drop --dir /路径/数据库名/
#加密后备份
mongodump -h ip:端口-uroot -p密码 -d 数据库 --authenticationDatabase admin -o 路径
mongodump -uroot -p密码 -d 数据库 -c 集合名 --authenticationDatabase admin -o 路径
mongorestore -uroot -p密码 -d 数据库 --authenticationDatabase admin --drop --dir /路径/数据库名/