【中间件安装】mongo安装

本文详细介绍了在Linux环境下安装MongoDB服务器的过程,包括配置yum源、安装、验证、启动及端口开放等步骤。此外,还讲解了客户端连接、问题处理方法,以及如何进行MongoDB认证,创建管理用户和开启auth参数。

安装方式:传统方式安装

第一部分:Linux上安装 mongo服务器

1、配置 yum源

# 查看服务器版本
# more /etc/redhat-release 
CentOS Linux release 7.2.1511 (Core)

# vi /etc/yum.repos.d/mongodb-org-3.2.repo 
[mongodb-org-3.2]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/3.2/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-3.2.asc

#把上面这一段,复制到mongodb-org-3.2.repo中,进行保存

2、安装 mongo

yum -y install mongodb-org   

出现下面的界面,就表示安装完成

3、验证

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

4、启动mongo

service mongod start

5、查看 mongo的端口号

netstat -nltp|grep mongo

6、服务器端 mongo的使用

直接输入mongo

7、开放端口号

# 开启6379
/sbin/iptables -I INPUT -p tcp --dport 27017 -j ACCEPT
service iptables save

 

第二部分:客户端连接 mongo

安装 Robo 3T

新建连接时,输入服务器的用户名,端口号,同时认证那里不用勾选,就可以连接上。如果失败,再到服务器去查看具体的原因。

 

第三部分:问题处理

主要使用 locate mongod.log ,/var/log/mongodb/mongod.log 查看启动时,查看失败的原因,逐条解决。

1、设置 mongo 为服务

     报错信息:systemd[1]: Failed to start SYSV: Mongo is a scalable, document-oriented database..

     将mongoDB添加到systemd

   

# vi /usr/lib/systemd/system/mongod.service
[Unit]
Description=mongodb database
 
[Service]
User=mongod
Group=mongod
Environment="OPTIONS=--quiet -f /etc/mongod.conf"
ExecStart=/usr/bin/mongod $OPTIONS run
PIDFile=/var/run/mongodb/mongod.pid
 
[Install]
WantedBy=multi-user.target

 

建立链接

ln -s /usr/lib/systemd/system/mongod.service /etc/systemd/system/multi-user.target.wants/

重新加载systemctl

# systemctl daemon-reload

2、有遇到的解决方法有  rm mongod.lock,rm /tmp/mongodb-27017.sock

3、Error parsing YAML config file: yaml-cpp: error at line 30, column 4: end of map not found

解决方法:修改 /etc/mongod.conf,把改动过的条目,前面的缩进格,都重新用空格键缩进一遍

第四部分:mongo 认证

mongodb安装好后第一次进入是不需要密码的,也没有任何用户。  在安装MongoDB之后,先关闭auth认证,启动服务端:

  1、现在需要创建一个帐号,该账号需要有grant权限,即:账号管理的授权权限。注意一点,帐号是跟着库走的,所以在指定库里授权,必须也在指定库里验证(auth)。

   添加管理用户:

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

 

  Built-In Roles(内置角色):
    1. 数据库用户角色:read、readWrite;
    2. 数据库管理角色:dbAdmin、dbOwner、userAdmin;
    3. 集群管理角色:clusterAdmin、clusterManager、clusterMonitor、hostManager;
    4. 备份恢复角色:backup、restore;
    5. 所有数据库角色:readAnyDatabase、readWriteAnyDatabase、userAdminAnyDatabase、dbAdminAnyDatabase
    6. 超级用户角色:root 
    // 这里还有几个角色间接或直接提供了系统超级用户的访问(dbOwner 、userAdmin、userAdminAnyDatabase)
    7. 内部角色:__system

具体角色:

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

刚建立了 userAdminAnyDatabase 角色,用来管理用户,可以通过这个角色来创建、删除用户。

2.开启auth参数,认证通过后才能访问数据库

3、查看mongo版本

mongo --version

 

 

 

 

<think>好的,用户现在想了解MongoDB相关的中间件解决方案和工具。首先,我需要明确中间件的定义,通常中间件是指帮助不同系统或组件之间通信、数据管理或提供额外功能的软件。MongoDB作为NoSQL数据库,常见的中间件可能包括连接池、ODM工具、数据集成工具、监控工具等。 接下来,我应该根据已有的知识库来查找相关信息。用户提供的引用[1]提到的是MongoDB的数据模式与建模,这可能涉及到ORM/ODM工具,比如Mongoose。所以我可以从这里切入,先介绍Mongoose作为中间件的一种。 然后,连接池和驱动也是中间件的一部分,比如官方提供的MongoDB Driver,以及像MongoDB Connector for BI这样的工具,用于与BI工具集成,这些都属于中间件的范畴。 数据集成和ETL工具方面,用户可能需要将MongoDB的数据与其他数据库或数据仓库同步,这时候像Apache Kafka、Talend、MongoDB Connector for Spark都是相关的中间件解决方案。 监控和管理工具部分,比如MongoDB Atlas自带的监控功能,以及第三方工具如Datadog、Prometheus,这些也是辅助管理MongoDB的中间件。 安全中间件方面,需要考虑访问控制、加密等,MongoDB Enterprise版的安全功能,或者第三方工具如Vault,都是这方面的解决方案。 分片和集群管理属于MongoDB自身的架构,但也可以视为中间件的一部分,用于处理分布式数据。 最后,需要确认这些信息是否符合用户的需求,用户可能需要具体的工具名称和用途,因此要分门别类地列出,并给出简要说明。同时,确保每个部分都有对应的引用支持,比如引用[1]提到的数据模式与建模,可以关联到ODM工具的应用场景。 另外,用户可能还关心如何选择适合的中间件,因此相关问题部分可以引导他们进一步了解选型因素、性能优化、安全设置等。这样整个回答结构会比较清晰,覆盖主要中间件类型,并提供实际例子,帮助用户更好地理解和应用。</think>### MongoDB中间件解决方案及工具 MongoDB的中间件解决方案主要围绕数据集成、查询优化、集群管理和安全增强等场景展开。以下是关键工具和解决方案的分类说明: --- #### 1. **连接池与驱动工具** - **MongoDB官方驱动**:支持多种编程语言(如Python、Java、Node.js),提供连接池管理、负载均衡和故障转移功能。例如: ```python from pymongo import MongoClient client = MongoClient("mongodb://host:port/?maxPoolSize=200") ``` - **MongoDB Connector for BI**:将MongoDB数据映射为SQL表,供Tableau等BI工具直接查询[^1]。 --- #### 2. **数据建模与ODM工具** - **Mongoose (Node.js)**:通过Schema定义实现数据验证、事务管理和查询封装。例如: ```javascript const userSchema = new mongoose.Schema({ name: String, age: Number }); const User = mongoose.model('User', userSchema); ``` - **MongoDB Realm Sync**:支持客户端与MongoDB Atlas之间的数据实时同步,适用于移动端和边缘计算场景。 --- #### 3. **数据集成与ETL工具** - **Apache Kafka Connect**:通过MongoDB Source/Sink Connector实现流式数据管道。 - **Talend/MongoDB Connector for Spark**:用于大数据场景下的ETL处理,例如将HDFS数据写入MongoDB分片集群。 --- #### 4. **监控与运维工具** - **MongoDB Atlas内置监控**:提供性能指标(如操作延迟、内存使用)、索引优化建议和自动扩缩容功能。 - **Datadog/New Relic**:集成MongoDB监控插件,支持告警和可视化仪表盘。 --- #### 5. **安全中间件** - **MongoDB Enterprise LDAP/AD集成**:实现企业级身份认证和角色映射。 - **Vault (HashiCorp)**:管理MongoDB的敏感信息(如密码、证书),支持动态密钥轮换。 --- #### 6. **分片与集群管理** - **MongoDB Sharding**:通过配置片键(如哈希分片、范围分片)实现水平扩展,例如: $$ \text{sh.shardCollection("db.collection", { "shard_key": 1 }) } $$ - **Kubernetes Operator**:自动化MongoDB集群在K8s环境中的部署和运维。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值