centos7安装MongoDB
MongoDB 源码下载地址:Try MongoDB Products | MongoDBmongdb需要设置数据库路径,默认是/data/db,否则要启动时要--dbpath指定数据库路径,--logpath 指定日志输出文件位置--fork 守护进程启动方式--port 指定服务端口号,默认端口27017--bind 绑定服务器IP,若绑定127.0.0.1则只能本机访问,0.0.0.0则是任
一.安装配置
MongoDB 源码下载地址:Try MongoDB Products | MongoDB
mongdb需要设置数据库路径,默认是/data/db,否则要启动时要--dbpath指定数据库路径,--logpath 指定日志输出文件位置
--fork 守护进程启动方式
--port 指定服务端口号,默认端口27017
--bind 绑定服务器IP,若绑定127.0.0.1则只能本机访问,0.0.0.0则是任意ip可访问
--auth 启用验证
--config 指定配置文件路径
cd /home
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.2.17.tgz
tar -zxvf mongodb-linux-x86_64-rhel70-4.2.17.tgz
mv mongodb-linux-x86_64-rhel70-4.2.17 mongodb
cd /home/mongodb
mkdir log
touch log/mogodb.log
mkdir -p data/db
cd /home/mongodb/bin
./mongod --dbpath /home/mongodb/data/db
./mongod --dbpath /home/mongodb/data/db --logpath /home/mongodb/log/mogodb.log --fork
如果感觉参数太多启动太麻烦也可以创建一个配置文件mongodb.conf,--mongodb.conf 来指定启动参数
./mongod --shutdown --dbpath /home/mongodb/data/db
mkdir /home/mongodb/etc/
vi /home/mongodb/etc/mongodb.conf
dbpath=/home/mongodb/data/db
logpath=/home/mongodb/log/mongodb.log
port=27017
bind_ip=0.0.0.0
fork=true
配置环境变量,使任何目录下都能启动mongodb
vi /etc/profile
export PATH=/home/mongodb/bin:$PATH
source /etc/profile
./mongod --config /home/mongodb/etc/mongodb.conf
函数关闭mongodb法
mongo
use admin
db.shutdownServer()
Ctrl c
使用mongodb命令关闭法
mongod --shutdown --config /home/mongodb/etc/mongodb.conf
二.权限管理
mongodb 用户权限列
read 允许用户读取指定数据库
readWrite 允许用户读写指定数据库
dbAdmin 允许用户在指定数据库中执行管理函数,如索引创建、删除,查看统计或访问system.profile
userAdmin 允许用户向system.users集合写入,可以找指定数据库里创建、删除和管理用户
clusterAdmin 只在admin数据库中可用,赋予用户所有分片和复制集相关函数的管理权限
readAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读权限
readWriteAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的读写权限
userAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的userAdmin权限
dbAdminAnyDatabase 只在admin数据库中可用,赋予用户所有数据库的dbAdmin权限
root 只在admin数据库中可用。超级账号,超级权限
创建管理员用户,管理员用户只能用来管理普通用户,没有数据库读写权限
use admin
db.system.users.find()
创建管理员用户
我们现在需要在admin库中创建一个名为bjsxt的管理员用户,密码为bjsxtpwd。
db.createUser({user:'bjsxt',pwd:'bjsxtpwd',roles:[{role:'userAdminAnyDatabase',db:'admin'}]})
重启MongoDB在管理员账户创建完成后,我们需要重新启动MongoDB,并开启验证。
重新启动函数:db.shutdownServer()。
在默认的情况下MongoDB是不开启用户认证的。如果我们添加用户,那么需要开启用户认证机制。通过修改mongodb.conf配置文件,在文件中添加auth=true即可。
mongod --config /home/mongodb/etc/mongodb.conf
use admin
db.auth('bjsxt','bjsxtpwd')
db.system.users.find()
创建普通用户使用管理员用户登录
普通用户需要由管理员创建并授权。所以,我们首先做的就是用管理员账户登录数据库。
创建sxt数据库use命令切换数据库时如果该库不存在,那么则会创建该数据库。
db.createUser({user:'itsxt',pwd:'itsxtpwd',roles:[{role:'readWrite',db:'sxt'}]})
use sxt
db.auth("itsxt","itsxtpwd")
db.sxt.insert({id:"1000"}) #插入数据
db.sxt.find() #查数据库
db.updateUser("itsxt",{roles:[{"role":"userAdminAnyDatabase","db":"admin"},{"role":"dbAdminAnyDatabase","db":"admin"}]}) #更新权限
db.updateUser("用户名",{"pwd":"新密码"}) 更新密码
db.dropUser('itsxt') #删除用户
show dbs #显示数据库
db.dropDatabase() #删除数据库
db.dev.insert({title:"北京尚学堂",description:"程序员的摇篮",url:"www.bjsxt.com",tags:["Java","大数据","Python"]}) 插入文档
db.dev.find() #查看文档
MongoDB创建管理员账户
要创建管理员账户,您需要使用具有超级用户权限的用户登录 MongoDB,并在 admin 数据库中创建管理员账户。以下是创建管理员账户的步骤:
1、打开终端或命令提示符
2、以管理员权限运行 命令,连接到 MongoDB 实例:mongo
mongo
3、切换到 admin 数据库:
use admin
4、创建管理员账户并授予角色:
创建管理员账户并授予 root 角色,这是 MongoDB 中最高权限的角色,可以访问所有数据库和执行所有操作
db.createUser({
user: "创建账号",
pwd: "密码",
roles: [ { role: "root", db: "admin" } ]
})
例如
db.createUser({
user: "root",
pwd: "znst@123",
roles: [ { role: "root", db: "admin" } ]
})
完成后,可以使用该账户访问 MongoDB 实例
MongoDB用户角色
在 MongoDB 中,用户角色用于控制用户对数据库和集合的访问权限。MongoDB 中的角色可以分为以下几类:
内置角色:MongoDB 包含一组内置角色,这些角色是预定义的角色,可以用于访问和管理数据库。其中一些角色包括:read、readWrite、dbAdmin、userAdmin 等。
自定义角色:除了内置角色之外,还可以创建自定义角色,以控制用户对数据库和集合的访问权限。可以使用 db.createRole() 方法创建自定义角色。
特殊角色:MongoDB 包含一些特殊的角色,例如 root 角色,该角色具有 MongoDB 中最高级别的权限,可以访问所有数据库和执行所有操作。
以下是一些常见的内置角色及其说明:
read:允许用户读取指定数据库中的数据。
readWrite:允许用户读取和写入指定数据库中的数据。
dbAdmin:允许用户执行有关数据库的管理任务,如备份和还原数据。
userAdmin:允许用户管理指定数据库中的用户和角色。
dbOwner:允许用户执行关于指定数据库的所有操作,包括读取和写入数据,以及管理用户和角色。
clusterAdmin:允许用户执行有关整个集群的管理任务,如添加和删除节点。
backup:允许用户备份数据。
restore:允许用户还原数据。
root:允许用户访问所有数据库和执行所有操作。
可以使用 db.grantRolesToUser() 方法将角色授予用户,使用 db.revokeRolesFromUser() 方法将角色从用户中删除
MongoDB默认用户和密码
默认情况下,MongoDB 实例不包含任何管理员账户或用户账户,因此不需要用户名和密码即可访问 MongoDB 实例。但是,在 MongoDB 4.0 之后的版本中,MongoDB 引入了身份验证功能,为了提高安全性,建议在生产环境中启用身份验证功能并创建用户账户。
如果在生产环境中启用了身份验证功能并创建了用户账户,那么默认情况下,MongoDB 实例不包含任何管理员账户或用户账户。必须通过创建管理员账户和用户账户来配置 MongoDB 实例的安全性。
在创建管理员账户之后,可以使用以下命令来创建用户账户:
切换到要创建账号的数据库
use 数据库名
创建
db.createUser({
user: "创建账号",
pwd: "密码",
roles: [ { role: "readWrite", db: "数据库名" } ]
})
示例
# 切换库
use mydatabase
# 创建
db.createUser({
user: "myuser",
pwd: "mypassword",
roles: [ { role: "readWrite", db: "mydatabase" } ]
})
# readWrite 读写权限
centos7 服务器远程mongodb
//指定用户名和密码连接到指定的MongoDB数据库
mongo 192.168.1.200:27017/test -u user -p password
mongo 10.0.21.33:30083/admin -u root -p znst@123
mongodb数据迁移
1. mongodump备份数据库
命令语法
mongodump -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 -o 文件存在路径
1
如果没有用户,可以去掉-u和-p
如果导出本机的数据库,可以去掉-h
如果是默认端口,可以去掉–port
如果想导出所有数据库,可以去掉-d
需要注意的是: 导出的数据不是以单文件形式存在, 所以-o参数指定的路径需要是一个目录, 目标mongo实例中的数据库将以目录的形式存放在这里面.
实际备份使用命令
mongodump -h 10.0.21.33 --port 30083 -u root -p 'znst@123' -o /home
2. mongorestore还原数据库
命令语法
mongorestore -h IP --port 端口 -u 用户名 -p 密码 -d 数据库 --drop 文件存在路径
1
--drop的意思是,先删除所有的记录,然后恢复
2.1 恢复所有数据库到mongodb中
[root@localhost mongodb]# mongorestore mongodatas/ #这里的路径是所有库的备份路径
1
2.2 还原指定的数据库
[root@localhost mongodb]# mongorestore -d guild mongodatas/guild/
#将guild还原到目标mongo实例的guild_new数据库中
[root@localhost mongodb]# mongorestore -d guild_new mongodatas/guild/
实际还原使用命令
mongorestore -h 10.0.21.18 --port 30083 -u root -p 'znst@123' --drop /home
远程登陆
mongo 10.0.21.33:30083 -u root -p znst@123
mongo 10.0.21.18:30083 -u root -p znst@123
备份
mongodump -h 10.0.21.33 --port 30083 --authenticationDatabase admin -u root -p znst@123 -o ./
还原
./mongorestore -h 10.0.21.18 --port 30083 --authenticationDatabase admin -u root -p 'znst@123' -d daudit --drop ./daudit/
MongoDB删除数据库详解
语法
use database
db.dropDatabase()
更多推荐
所有评论(0)