欢迎来到魔幻小生的博客

CentOS7安装部署MongoDB

1.下载

  官方下载地址:https://www.mongodb.com/download-center/community

2.解压

tar -zxvf mongodb-linux-x86_64-rhel70-5.0.3.tgz

3.配置环境变量

vi /etc/profile

在配置文件中添加如下内容(路径应对应mongodb安装路径)

export MONGODB_HOME=/opt/mongodb-linux-x86_64-rhel70-5.0.3
export PATH=$PATH:${MONGODB_HOME}/bin

记得使环境变量生效

source /etc/profile

4.相关配置

创建db目录和log目录

cd /opt/mongodb-linux-x86_64-rhel70-5.0.3
mkdir -p ./data/db
mkdir -p ./logs
touch ./logs/mongodb.log

创建mongodb.conf配置文件,内容如下(路径应对应之前创建的db/log目录):

#端口号
port=27017
#db目录
dbpath=/opt/mongodb-linux-x86_64-rhel70-5.0.3/data/db
#日志目录
logpath=/opt/mongodb-linux-x86_64-rhel70-5.0.3/logs/mongodb.log
#后台
fork=true
#日志输出
logappend=true
#允许远程IP连接
bind_ip=0.0.0.0

5.启动测试

mongod --config mongodb.conf
mongo

 连接成功!

6.设置开机自启动

编辑开机启动文件

vi /etc/rc.d/rc.local

加入如下语句,以便启动时执行:

mongod --config /opt/mongodb-linux-x86_64-rhel70-5.0.3/mongodb.conf      #mongodb.conf修改为对应路径

可以重启服务器,检测是否设置成功:

7.设置用户名、密码与数据库连接

通过向表admin中添加用户来设置

如添加root用户:

use admin  
db.createUser({
  user: 'root',  // 用户名
  pwd: '12345678',  // 密码
  roles:[{
    role: 'root',  // 角色
    db: 'admin'  // 数据库
  }]
})

 查看是否创建成功:

show users;

在mongodb.conf配置文件中开启验证,添加如下语句:

auth=true

 重启MongoDB验证是否设置成功:

显示连接成功,但是当我们输入其他指令时,会提示没有权限

登录数据库:

// 方式一
mongo
use admin
db.auth('root', '12345678')

// 方式二
mongo admin -uroot -p12345678

这时候我们就可以正常访问和操作数据了。

除了可以设置数据库的超级管理员以外,还可以给每个数据库设置单独的管理员。其只有操作单独数据的一定权限。

use test  // 如果数据库不存在,则创建数据库,否则切换到指定数据库
db.createUser({
  user: 'testadmin',  // 用户名
  pwd: '12345678',  // 密码
  roles:[{
    role: 'readWrite',  // 角色
    db: 'test'  // 数据库名
  }]
})

随便用一个MongoDB可视化工具访问测试是否连接成功(如MongoDB Compass\NoSQLBooster for MongoDB)

 

 连接成功:

 常用命令:

show users  // 查看当前库下的用户

db.dropUser('testadmin')  // 删除用户

db.updateUser('root', {pwd: '87654321'})  // 修改用户密码

db.auth('root', '87654321')  // 密码认证

MongoDB 数据库默认角色

1 数据库用户角色:read、readWrite
2 数据库管理角色:dbAdmin、dbOwner、userAdmin
3 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager
4 备份恢复角色:backup、restore
5 所有数据库角色: readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
6 超级用户角色:root
posted @ 2021-10-22 16:55  魔幻小生  阅读(867)  评论(0编辑  收藏  举报