阿丹:
前面了解了mongodb的一些基本概念。本节文章对安装mongodb进行讲解以及汇总。
安装 MongoDB - MongoDB-CN-Manual
下面是各个版本的选择请在安装以及选择版本的时候参考一下:
这个版本引入了聚合管道(Aggregation Pipeline)功能,这是MongoDB中一种利用数据管道原理实现数据聚合操作的功能,类似于SQL中的GROUP BY和HAVING子句。此外,2.x版本还增加了分片集群(Sharded Cluster)和可插拔存储引擎(Pluggable Storage Engines)等重要特性。
这个版本对分片集群(Sharded Cluster)进行了改进,使得配置分片集群更加简单和灵活。此外,3.2版本还增加了部分索引(Partial Indexes)、文档校验(Document Validation)和聚合管道(Aggregation Pipeline)等特性。
这个版本在数据复制(Replication)和故障恢复(Fault Tolerance)方面进行了改进,使得系统更加可靠和可用。此外,3.4版本还增加了地理空间索引(Geospatial Indexing)、二进制数据(Binary Data)和用户自定义函数(User-Defined Functions)等特性。
这个版本引入了MongoDB 4.0,这个版本主要聚焦于可扩展性(Scalability)、性能(Performance)和可靠性(Reliability)。它引入了多文档事务(Multi-Document Transactions)、聚合管道(Aggregation Pipeline)和ACID保证(ACID Guarantees)等新特性。
这个版本在查询和聚合方面有了很大的提升,新增了文本搜索(Text Search)、地理位置查询(Geo-Spacial Query)和固定集合(Fixed View)等特性。同时,4.2版本还增强了聚合管道(Aggregation Pipeline),使其支持更多的操作和操作符。
简而言之:
不需要事务,建议选择3.4
需要简单事务,建议选择4.0
需要分布式事务或其他必要功能,建议选择4.2
学习用途,建议选择最新版本
目前最新:
此外,还修复了一些已知的漏洞和错误,提高了系统的稳定性和安全性。总体来说,MongoDB 7.0.0-rc10 引入了许多新特性和改进,有助于提高数据可用性、一致性和性能
官方网页 (官方下载网址)
Install MongoDB Community Kubernetes Operator | MongoDB
我这里因为是学习需要所以选择了最新版本。
注意打包的格式一定是tgz
使用服务器连接工具完成即可。要注意自己的存储路径。
首先进入压缩包所在目录
解压目标文件,linux中解压文件代码如下
cd /压缩包存在路径
tar -zxvf 目标压缩文件.tgz
解压完成后我们就会获得一个mongodb的文件夹。这个时候可以把之前的压缩包删除掉就可以了。
该文件夹中包含了bin等文件夹。
cd /usr/local
mkdir mongodb
注意在哪里创建文件夹要根据自己给mongodb存放在哪里了。
cd mongodb #进入文件夹
mkdir data
mkdir logs
touch /usr/local/mongodb/logs/mongodb.log
将解压后的文件中的所有文件全部移动到咱们自己进行创建的文件夹中去方便管理:
linux语法注意:/*是所有子文件 移动文件使用mv语法
mv mongodb-linux-x86_64-rhel70-7.0.0-rc10/* /usr/local/mongodb
注意:
1、在当前的文件夹下面,也就是说按照文章的路径来说就是需要到/usr/local路径下面
2、后面的路径是要移动到的目标路径
如果不做环境配置每次启动的时候就要写很多启动参数。
配置环境变量的启动:
vim /etc/profile
在文件中添加一下配置
export MONGODB_HOME=/usr/local/mongodb
export PATH=$MONGODB_HOME/bin:$PATH
在书写配置文件的时候一定要注意配置文件中的规范,不要出现多余空格,以及需要注意环境变量中的路径。
注意!!!!:
在修改完环境变量以后一定要进行重启或者使用下面代码重新加载修改过的配置文件
source /etc/profile
使用上述代码将会重新加载 /etc/profile
文件并应用最新的环境变量设置,而无需关闭和重新打开终端。
或者将终端关闭重新打开也可以重新加载环境
添加对应配置文件,使用代码编辑配置文件。
vim /etc/mongodb.conf
添加一下常用配置:
#指定数据库路径
dbpath=/usr/local/mongodb/data
#指定MongoDB日志文件
logpath=/usr/local/mongodb/logs/mongodb.log
# 使用追加的方式写日志
logappend=true
#端口号
port=27017
#方便外网访问,外网所有ip都可以访问,不要写成固定的linux的ip
bind_ip=0.0.0.0
fork=true # 以守护进程的方式运行MongoDB,创建服务器进程
#auth=true #启用用户验证
#bind_ip=0.0.0.0 #绑定服务IP,若绑定127.0.0.1,则只能本机访问,不指定则默认本地所有IP
sudo chmod -R 777 /usr/local/mongodb
cd /usr/local/mongodb/bin
mongod -f /etc/mongodb.conf
mongod --shutdown -f /etc/mongodb.conf
#查看进程
ps -ef | grep mongod
使用可视化工具进行连接测试
注意!!!:
在连接前要确定线上的安全组是否放行端口号,以及在linux上的防火墙端口号是否已经开放。
下面是关闭防火墙的一些指令。
在Linux中,关闭防火墙的指令取决于您使用的具体发行版。大多数发行版都使用了防火墙工具,如iptables或firewalld。
以下是几个常见发行版的关闭防火墙指令:
在Ubuntu或Debian上,可以使用以下命令关闭防火墙:
sudo ufw disable
在CentOS或RHEL上,可以使用以下命令关闭防火墙:
sudo systemctl stop firewalld
或者
sudo iptables -P INPUT ACCEPT
sudo iptables -P output ACCEPT
sudo iptables -P forward ACCEPT
sudo iptables -t nat -P PREROUTING ACCEPT
sudo iptables -t nat -P POSTrouting ACCEPT
sudo iptables -t mangle -P PREROUTING ACCEPT
sudo iptables -t mangle -P POSTrouting ACCEPT
sudo iptables -P INPUT DROP
sudo iptables -P FORWARD DROP
sudo iptables -P OUTPUT DROP
sudo iptables -t nat -P PRERouting DROP
sudo iptables -t nat -P postrouting DROP
sudo iptables -t mangle -P PREROUTING DROP
sudo iptables -t mangle -P POSTrouting DROP
这些命令将关闭iptables防火墙,但是请注意,这些命令可能会对系统造成安全风险
docker pull mongo:4.2
docker images
创建目录:
mkdir -p /root/mongo/data
mkdir -p /root/mongo/conf
mkdir -p /root/mongo/log
创建文件:
cd /root/mongo/conf
vim mongodb.conf
#端口
port=27017
#数据库文件存放目录
dbpath=/root/mongo/data
#日志文件存放路径
logpath=/root/mongo/log
#使用追加方式写日志
logappend=true
#以守护线程的方式运行,创建服务器进程
fork=true
#最大同时连接数
maxConns=100
#不启用验证
#noauth=true
#每次写入会记录一条操作日志
journal=true
#存储引擎有mmapv1、wiredTiger、mongorocks
storageEngine=wiredTiger
#访问IP
bind_ip=0.0.0.0
#用户验证
#auth=true
注意上面路径以及连接配置的路径可自定义,根据自己的需求来进行配置已经安排。
docker run -d \
--name mongodb \
-p 27017:27017 \
-v /root/mongo/data:/data/db \
-v /root/mongo/conf:/data/conf \
-v /root/mongo/log:/data/log \
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=123456 \
--privileged=true \
--restart always \
mongo:4.2
这段代码是用于在Docker中运行一个名为"mongodb"的容器,并将其映射到本地主机的27017端口。容器的数据、配置和日志目录都被指定到了本地的/root/mongo/data、/data/conf和/data/log目录下。
同时,该容器还设置了两个环境变量:MONGO_INITDB_ROOT_USERNAME和MONGO_INITDB_ROOT_password,分别设置为"admin"和"123456"。这些环境变量可以在容器内部使用,用于MongoDB的初始化数据库设置。
另外,该容器还使用了特权模式(--privileged=true),这可以让容器拥有更多的系统权限。最后,使用了--restart always选项,这意味着容器将始终在退出后自动重启。
综上所述,这段代码的功能是在Docker中运行一个名为"mongodb"的MongoDB容器,并将其映射到本地主机的27017端口,同时将容器的数据、配置和日志目录映射到本地的/root/mongo/data、/data/conf和/data/log目录下,并设置了MongoDB的初始化数据库用户名和密码。容器使用特权模式,并且将始终自动重启。
注意:用户和密码这行并不是必须的。如何不需要这可以将
-e MONGO_INITDB_ROOT_USERNAME=admin \
-e MONGO_INITDB_ROOT_PASSWORD=123456 \
这两行代码删除掉即可。
docker ps -a
使用账号密码连接方式。
在下面输入用户名和密码。