阅读目录
Centos7 下 yum 安装 mongodb
简介
- MongoDB 是一个基于分布式 文件存储的 NoSQL 数据库
- 由 C++语言编写,运行稳定,性能高
- 旨在为 WEB 应用提供可扩展的高性能数据存储解决方案
- 查看官方网站
MongoDB 特点
- 模式自由 :可以把不同结构的文档存储在同一个数据库里
- 面向集合的存储:适合存储 JSON 风格文件的形式
- 完整的索引支持:对任何属性可索引
- 复制和高可用性:支持服务器之间的数据复制,支持主-从模式及服务器之间的相互复制。复制的主要目的是提供冗余及自动故障转移
- 自动分片:支持云级别的伸缩性:自动分片功能支持水平的数据库集群,可动态添加额外的机器
- 丰富的查询:支持丰富的查询表达方式,查询指令使用 JSON 形式的标记,可轻易查询文档中的内嵌的对象及数组
- 快速就地更新:查询优化器会分析查询表达式,并生成一个高效的查询计划
- 高效的传统存储方式:支持二进制数据及大型对象(如照片或图片)
Packages 包说明
MongoDB 官方源中包含以下几个依赖包:
mongodb-org: MongoDB 元数据包,安装时自动安装下面四个组件包:
1.mongodb-org-server: 包含 MongoDB 守护进程和相关的配置和初始化脚本。
2.mongodb-org-mongos: 包含 mongos 的守护进程。
3.mongodb-org-shell: 包含 mongo shell。
4.mongodb-org-tools: 包含 MongoDB 的工具: mongoimport, bsondump, mongodump, mongoexport, mongofiles, mongooplog, mongoperf, mongorestore, mongostat, and mongotop。
安装步骤
1.配置 MongoDB 的 yum 源
vim /etc/yum.repos.d/mongodb-org-3.4.repo #添加以下内容:
[mongodb-org-3.4]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.4/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.4.asc
#这里可以修改 gpgcheck=0, 省去 gpg 验证
[root@localhost ~]# yum makecache
2.安装 MongoDB
安装命令:
yum -y install mongodb-org
安装完成后
已安装: mongodb-org.x86_64 0:3.4.14-1.el7 作为依赖被安装: mongodb-org-mongos.x86_64 0:3.4.14-1.el7 mongodb-org-server.x86_64 0:3.4.14-1.el7 mongodb-org-shell.x86_64 0:3.4.14-1.el7 mongodb-org-tools.x86_64 0:3.4.14-1.el7 完毕!
[root@adminset yum.repos.d]
#
查看 mongo 安装位置 :
whereis mongod
查看修改配置文件 :
vim /etc/mongod.conf
3.启动 MongoDB
启动 mongodb :
systemctl start mongod.service
停止 mongodb :
systemctl stop mongod.service
查到 mongodb 的状态:
systemctl status mongod.service
4.外网访问需要关闭防火墙:
关闭 firewall:
systemctl stop firewalld.service #停止 firewall systemctl disable firewalld.service #禁止 firewall 开机启动
5.启动 Mongo shell
命令:
mongo
查看数据库:
show dbs
6.设置 mongodb 远程访问:
编辑 mongod.conf 注释bindIp,并重启 mongodb.(这句配置代表只能本机使用,所以需注释)
vim /etc/mongod.conf
重启 mongodb 使修改生效:
systemctl restart mongod.service
到这里就可以正常使用 mongodb 了
1.开启认证
MongoDB 默认安装完成以后,只允许本地连接,同时不需要使用任何账号密码就可以直接连接 MongoDB,这样就容易被黑,让支付一些比特币,所以为了避免这些不
必要的麻烦,所以我们需要给 Mongo 设置一个账号密码;
[root@iZ2ze2pbbffhmn53ao4tuaZ bin]# ./mongod --auth # 启用认证
2.创建管理员用户
> use admin switched to db admin > db.createUser({user:"admin",pwd:"password",roles:["root"]}) Successfully added user: { "user" : "admin", "roles" : [ "root" ] }
3.认证登录
> db.auth("admin", "password")
4.MongoDB role 类型
- 数据库用户角色(Database User Roles)
read:授予 User 只读数据的权限
readWrite:授予 User 读写数据的权限
- 数据库管理角色(Database Administration Roles):
dbAdmin:在当前 dB 中执行管理操作
dbOwner:在当前 DB 中执行任意操作
userAdmin:在当前 DB 中管理 User
- 备份和还原角色(Backup and Restoration Roles):
backup
restore
- 跨库角色(All-Database Roles):
readAnyDatabase:授予在所有数据库上读取数据的权限
readWriteAnyDatabase:授予在所有数据库上读写数据的权限
userAdminAnyDatabase:授予在所有数据库上管理 User 的权限
dbAdminAnyDatabase:授予管理所有数据库的权限
- 集群管理角色(Cluster Administration Roles):
clusterAdmin:授予管理集群的最高权限
clusterManager:授予管理和监控集群的权限,A user with this role can access the config and local databases, which are used in sharding and replication, respectively.
clusterMonitor:授予监控集群的权限,对监控工具具有 readonly 的权限
hostManager:管理 Server
5.添加数据库用户
> use flowpp switched to db flowpp > db.createUser({user: "flowpp", pwd: "flopww", roles: [{ role: "dbOwner", db: "flowpp" }]}) # 创建用户 flowpp,设置密码 flopww,设置角色 dbOwner
6.查看系统用户
> use admin switched to db admin > db.system.users.find() # 显示当前系统用户 { "_id" : "admin.admin", "user" : "admin", "db" : "admin", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "9jXmylyRAK22TZmzv1Thig==", "storedKey" : "z76cVrBjX/CTFmn5RujtU+dz7Nw=", "serverKey" : "JQGonM84iDMI1nIXW7FdyOE55ig=" } }, "roles" : [ { "role" : "root", "db" : "admin" } ] } { "_id" : "flowpp.flowpp", "user" : "flowpp", "db" : "flowpp", "credentials" : { "SCRAM-SHA-1" : { "iterationCount" : 10000, "salt" : "KvocqWZA9E2tXBHpKpdAeQ==", "storedKey" : "50Kxc3LEgCSVN1z16S8g4A6jVp8=", "serverKey" : "0RSnsxd/7Yzmqro/YOHf/kfbHCk=" } }, "roles" : [ { "role" : "dbOwner", "db" : "flowpp" } ] }
7.删除用户
1.切换 admin ,删除用户 flowpp ,删除失败
> use admin switched to db admin > db.dropUser("flowpp") false
2.切换 flowpp ,删除用户 flowpp,删除成功 > use flowpp switched to db flowpp > db.dropUser("flowpp") true
说明:
删除用户的时候需要切换到用户管理的数据库才可以删除;
在云服务器中安装 MongoDB 后(默认端口 27017),发现本地 telnet 该端口连接失败,无法连接远程的 MongoDB,解决方法如下。
1、查看原先的 mongodb 配置文件:
dbpath=C:\tableSpace_MongoDB\data
logpath=C:\tableSpace_MongoDB\log\mongodb.log
发现没有指定 bind_ip,会导致 mongodb 默认绑定为 127.0.0.1,导致外部无法访问。
2.修改 mongodb 配置文件如下:
bind_ip=0.0.0.0
port=27017
dbpath=C:\tableSpace_MongoDB\data
logpath=C:\tableSpace_MongoDB\log\mongodb.log
3.重启 mongodb 服务。
4.再次测试,发现 telnet 该端口成功,可以进行远程连接。
作者:WangCw 的夏天
来源:CSDN
原文:https://blog.csdn.net/qq_33404395/article/details/80566760
版权声明:本文为博主原创文章,转载请附上博文链接!