MongoDB linux下安装与设置密码

建立.repo文件,生成mongodb的源

vi /etc/yum.repos.d/mongodb-org-4.0.repomongodb

添加配置信息

[mongodb-org-4.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/4.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-4.0.asc
复制代码

安装

选择下载

  • 最稳定版本 sudo yum install -y mongodb-orgshell

  • 指定版本 sudo yum install -y mongodb-org-4.0.11 mongodb-org-server-4.0.11 mongodb-org-shell-4.0.11 mongodb-org-mongos-4.0.11 mongodb-org-tools-4.0.11数据库

  • 不升级版本 exclude = mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-toolsbash

验证安装

rpm -qa |grep mongodb rpm -ql mongodb-org-servertcp

启动

启动服务 systemctl start mongod.service函数

开启端口 netstat -natp | grep 27017测试

查看进程 ps -aux | grep mongodurl

验证 mongospa

经常使用命令

// 一、开启MongoDB
sudo service mongod start  或者 systemctl start mongod.service  # 开启MongoDB
sudo chkconfig mongod on  # 加入开机启动
sudo service mongod restart # 重启MongoDB

// 二、关闭MongoDB
sudo service mongod stop  # 关闭防火墙

// 三、卸载MongoDB
sudo yum erase $(rpm -qa | grep mongodb-org)    # 卸载MongoDB
sudo rm -r /var/log/mongodb  # 删除日志文件
sudo rm -r /var/lib/mongo    # 删除数据文件
复制代码

远程链接

1. 修改配置

vi /etc/mongod.confrest

# network interfaces
net:
  port: 27017
 # 127.0.0.1仅能主机链接,需改为0.0.0.0
  bindIp: 0.0.0.0  # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.
复制代码

2. 重启

sudo service mongod restart

3. 开放端口

systemctl status firewalld  # 查看防火墙状态
firewall-cmd --zone=public --add-port=27017/tcp --permanent # mongodb默认端口号
firewall-cmd --reload  # 从新加载防火墙

firewall-cmd --zone=public --query-port=27017/tcp # 查看端口号是否开放成功,输出yes开放成功,no则失败
复制代码

4. 远程链接

mongo your server address:27017

设置密码

1(建立)进入admin数据库

use admin

2. 建立管理员帐号

db.createUser({ user: "root", pwd: "123456", roles: [{ role: "userAdminAnyDatabase", db: "admin" }] })

3. 测试

db.auto('root','123456') 返回1则正确

4. 开启验证

sudo vi /etc/mongod.conf 修改 #security:

security:
  authorization: enabled
复制代码

5. 重启服务

sudo service mongod restart

6. 测试admin数据库

mongo进入数据库,use admin切换到admin数据库,运行show users会报错,由于你没有验证身份,须要先验证db.auth('root','123456'),再次运行show users则显示应有信息。

7. 建立其余数据库密码

首先须要use admin切换到admin验证身份db.auth('root','123456'),再切换到test数据库use test,即在对应数据库建立用户权限才能成功。在此建立一个对test数据库读写建立删除权限,其余数据库只读权限的用户。 db.createUser({user:'test',pwd:'test',roles:[{role:'readWrite',db:'test'},{role:'dbAdmin',db:'test'},'read']})

8. 测试其余数据库

exit退出数据再从新进入mongo,use test进入test数据库,show collections尝试查询集合,报错。db.auth('test','test')验证登陆,再次查询集合show collections,不报错(无collection时会不显示任何信息)。

9. 测试远程链接

mongo your server address:27017/test,测试权限,方法同第8步。

10. 完成~~

角色表

分类 role(角色) 简要说明
数据库用户角色(DB User Roles) read readWrite 为某个数据库建立一个用户, 分配该数据库的读写权力
数据库管理员角色(DB Admin Roles) dbAdmin dbOwner userAdmin 拥有建立数据库, 和建立用户的权力
集群管理角色(Culster Administration Roles) clusterAdmin clusterManager clusterMonitor hostManager 管理员组, 针对整个系统进行管理
备份还原角色(Backup and Restoration Roles) backup restore 备份数据库, 还原数据库
全部数据库角色(All-Database Roles) readAnyDatabase readWriteAnyDatabase userAdminAnyDatabase dbAdminAnyDatabase 拥有对admin操做的权限
Superuser Roles(超级管理员) root dbOwner userAdmin userAdminAnyDatabase这几个角色角色提供了任何数据任何用户的任何权限的能力,拥有这个角色的用户能够在任何数据库上定义它们本身的权限

角色描述

  • Read:容许用户读取指定数据库
  • readWrite:容许用户读写指定数据库
  • dbAdmin:容许用户在指定数据库中执行管理函数,如索引建立、删除,查看统计或访问system.profile
  • userAdmin:容许用户向system.users集合写入,能够在指定数据库里建立、删除和管理用户
  • clusterAdmin:只在admin数据库中可用,赋予用户全部分片和复制集相关函数的管理权限。
  • readAnyDatabase:只在admin数据库中可用,赋予用户全部数据库的读权限
  • readWriteAnyDatabase:只在admin数据库中可用,赋予用户全部数据库的读写权限
  • userAdminAnyDatabase:只在admin数据库中可用,赋予用户全部数据库的userAdmin权限
  • dbAdminAnyDatabase:只在admin数据库中可用,赋予用户全部数据库的dbAdmin权限。
  • root:只在admin数据库中可用。超级帐号,超级权限

角色操做

User Management Methods — MongoDB Manual

相关文章
相关标签/搜索