MongoDB-linux下安装

15次阅读

共计 3222 个字符,预计需要花费 9 分钟才能阅读完成。

Centos 7

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

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

添加配置信息

[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-org

  • 指定版本

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-tools

验证安装

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

启动

启动服务
systemctl start mongod.service

开启端口
netstat -natp | grep 27017

查看进程
ps -aux | grep mongod

验证
mongo

常用命令

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

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

// 3、卸载 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.conf

# 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.
  1. 重启

sudo service mongod restart

  1. 开放端口
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 则失败
  1. 远程连接

mongo your server address:27017

设置密码

  1. (创建)进入 admin 数据库

use admin

  1. 创建管理员账号

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

  1. 测试

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

  1. 开启验证

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

security:
  authorization: enabled
  1. 重启服务

sudo service mongod restart

  1. 测试 admin 数据库

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

  1. 创建其他数据库密码

首先需要 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']})

  1. 测试其他数据库

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

  1. 测试远程连接

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

  1. 完成~~

角色表

分类 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

正文完
 0