一、yum安装
cat >> /etc/yum.repos.d/mongodb-org.repo << 'EOF'
[mngodb-org-7.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/8/mongodb-org/7.0/x86_64/
gpgcheck=0
enabled=1
EOF
yum -y install mongodb-org
/etc/mongod.conf 配置文件
sed -i 's/bindIp: 127.0.0.1/bindIp: 0.0.0.0/' /etc/mongod.conf
启动
systemctl start mongod
登录
mongosh
> use admin;
> db.createUser({user: "admin",pwd: "123456",roles: ["root"]});
开启认证
vi /etc/mongod.conf
security:
authorization: enabled
注意缩进,参照其他的值来改,若是缩进不对,可能导致后面服务不能重启
重启,使认证生效
systemctl restart mongod
登录
mongosh
> use admin;
> db.auth("admin","123456")
创建数据库并授权
> use education;
> db.createUser({user: "roncoo",pwd: "123456",roles: [ { role: "dbOwner", db: "education" } ]});
删除用户必须由账号管理员来删,所以,切换到admin角色
> use admin
> db.auth("admin","password")
> db.system.users.remove({user:"roncoo"})
二、源码安装
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"
三、用户管理
查看用户信息
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 /路径/数据库名/