1.Windows单机版
下载
下载地址:https://www.mongodb.com/try/download/community
如图,选择windows->msi版本,具体版本看自己需要
安装
一路next即可,需要注意一下几点
- 此处记得选择custom自定义安装路径,不然又要安装到C盘了
- 此处记得取消掉对应的勾选,不然会去外网下载这个可视化客户端工具,我们可以自己下载其他更好用的可视化工具
配置
- 进入安装时自定义安装目录的/data下
- 新建db文件夹
- 新建log文件夹
- 在log文件夹下新建mongo.log日志文件
- 进入安装时自定义安装目录下,记下文件路径
- 将第5步的文件路径,创建新的环境变量MONGODB_PATH
- 在环境变量path中添加 %MONGODB_PATH%\bin;
- 打开cmd,输入mongo,出现如下情况代表配置并启动完成
- 控制台输入:http://127.0.0.1:27017/ ,出现如下页面代表已启动成功。此时虽然已启动,但是重启后服务会消失
配置开机自启
启动命令:mongod —dbpath “D:\Code\Base\MongoDB\data\db” —logpath “D:\Code\Base\MongoDB\data\log\mongo.log” -install -serviceName “MongoDB”
以管理员身份打开cmd,运行上述命令,出现如图代表运行成功
win+R输入services.msc
如图:mongo服务已经启动成功,并会自动启动
可视化软件连接
个人更喜欢使用DataGrip
如图,没有设置用户名与密码,直连即可
出现如图,链接成功,windows下mongoDB部署完成
2.Linux单机版
进入目录
下载
下载地址:https://www.mongodb.com/try/download/community
如图,选择centos->tgz版本,具体版本看自己需要
复制下载链接,下载命令示例:
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-4.4.15.tgz
解压缩
- tar -zxvf mongodb-linux-x86_64-rhel80-4.4.15.tgz
- rm -rf mongodb-linux-x86_64-rhel80-4.4.15.tgz
- mv mongodb-linux-x86_64-rhel80-4.4.15/ mongodb
- ls
创建数据以及日志存放文件夹
- cd mongodb/
- mkdir data
- cd data
- mkdir db
- mkdir log
- ls
- cd log
-
创建配置文件文件夹并编写
cd /usr/local/mongodb
- mkdir etc
- cd etc
- touch mongodb.conf
- vim mongodb.conf
- 输入如下内容
```shell
数据存放路径
dbpath=/usr/local/mongodb/data/db
日志存放路径
logpath=/usr/local/mongodb/data/log/mongodb.log
端口
port=27017
以守护进程形式后台运行
fork=true
开放IP限制请求
bind_ip=*
<a name="NtHbn"></a>
### 启动
1. cd /usr/local/mongodb/bin
2. ./mongod --config /usr/local/mongodb/etc/mongodb.conf
如图:启动成功<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/28218714/1657291670586-0077b005-be9d-45be-87b2-1a90ec0aeae5.png#clientId=ubf88807e-4a8e-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=87&id=ijnY0&margin=%5Bobject%20Object%5D&name=image.png&originHeight=130&originWidth=1411&originalType=binary&ratio=1&rotation=0&showTitle=false&size=60273&status=done&style=none&taskId=ubbc6100f-84ed-4a08-9ac7-6dbd62b1eb6&title=&width=940.6666666666666)
3. ps -ef|grep mongo
![image.png](https://cdn.nlark.com/yuque/0/2022/png/28218714/1657291743854-4a15c50c-b912-4bc5-80ed-20e03db711e0.png#clientId=ubf88807e-4a8e-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=63&id=u69f981b8&margin=%5Bobject%20Object%5D&name=image.png&originHeight=95&originWidth=1748&originalType=binary&ratio=1&rotation=0&showTitle=false&size=51524&status=done&style=none&taskId=ued02ed4a-bc17-463f-babc-273758a2399&title=&width=1165.3333333333333)
<a name="J4j9L"></a>
### 可视化软件链接
个人更喜欢使用DataGrip<br />如图,没有设置用户名与密码,直连即可<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/28218714/1657291814374-93fc9406-c880-45d1-8d10-cf0462590698.png#clientId=ubf88807e-4a8e-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=757&id=uc77b5f6a&margin=%5Bobject%20Object%5D&name=image.png&originHeight=1135&originWidth=1416&originalType=binary&ratio=1&rotation=0&showTitle=false&size=103420&status=done&style=none&taskId=u127dc777-fb93-4ac4-b3c7-c13e0c29c61&title=&width=944)<br />出现如图,链接成功,linux下mongoDB部署完成<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/28218714/1657291841014-ff640b4c-9b56-4975-98bc-3eb1a1514fa6.png#clientId=ubf88807e-4a8e-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=204&id=ud55ac073&margin=%5Bobject%20Object%5D&name=image.png&originHeight=306&originWidth=659&originalType=binary&ratio=1&rotation=0&showTitle=false&size=34600&status=done&style=none&taskId=u01624ac5-5943-4d44-860f-ed8b1d89447&title=&width=439.3333333333333)
<a name="CY0kp"></a>
### 关闭
1. cd /usr/local/mongodb/bin
2. ./mongod -shutdown --config /usr/local/mongodb/etc/mongodb.conf
<a name="Nk9a5"></a>
## 3.工具包部署
mongo同样内置了一些工具,这些工具有时候需要自行下载并解压到安装的bin目录下
<a name="ZzTJc"></a>
### 下载
下载地址:[https://www.mongodb.com/try/download/database-tools](https://www.mongodb.com/try/download/database-tools)<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/28218714/1658148893324-2661c328-1834-48c5-a0a3-1e6aa1583a80.png#clientId=u47d2b908-0b66-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=897&id=ue2885153&margin=%5Bobject%20Object%5D&name=image.png&originHeight=1345&originWidth=2260&originalType=binary&ratio=1&rotation=0&showTitle=false&size=202583&status=done&style=none&taskId=u712c3138-788a-4131-9415-bf995cc9c00&title=&width=1506.6666666666667)
1. windows直接下载即可
2. linux通过 cat /etc/redhat-release 命令查看系统状态,选择下载项复制对应下载链接即可
<a name="hOq4r"></a>
### 解压缩
**下载解压后目录示例:**<br />D:\Downloads\MicrosoftEdge\mongodb-database-tools-windows-x86_64-100.5.3\mongodb-database-tools-windows-x86_64-100.5.3\bin<br />**所有的工具都在bin目录下,将工具类复制到安装目录的bin目录下即可**<br />linux命令:mv /xx/xx/* /xx/<br />![image.png](https://cdn.nlark.com/yuque/0/2022/png/28218714/1658149176473-0faa3d9d-f25d-4908-b2c5-faedf37d0bef.png#clientId=u47d2b908-0b66-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=369&id=u81d60ca5&margin=%5Bobject%20Object%5D&name=image.png&originHeight=554&originWidth=1203&originalType=binary&ratio=1&rotation=0&showTitle=false&size=49303&status=done&style=none&taskId=uf027ca62-ac88-49ea-8516-577fa2f9f87&title=&width=802)
<a name="S75QA"></a>
### 应用
无需重启,直接应用即可。对应的参数可以通过 --help获取
<a name="qbsdW"></a>
## 4.linux副本集模式
<a name="Dcyar"></a>
### 新建副本集文件夹
1. mkdir /usr/local/mongodb-set
2. cd /usr/local/mongodb-set
<a name="xoUF3"></a>
### 下载
下载方法与linux单机版一致,不做过多累述
<a name="Da402"></a>
### 解压缩
1. tar -zxvf mongodb-linux-x86_64-rhel80-5.0.9.tgz
2. rm -rf mongodb-linux-x86_64-rhel80-5.0.9.tgz
3. mv mongodb-linux-x86_64-rhel80-5.0.9/ mongo
<a name="q2t51"></a>
### 规划节点
| IP | 端口 | 节点角色 |
| --- | --- | --- |
| 192.168.128.208 | 27017 | PRIMARY |
| 192.168.128.208 | 27018 | SECONDARY |
| 192.168.128.208 | 27019 | ARBITER |
<a name="E8Ig1"></a>
### 创建副本集目录
1. mkdir primary
2. mkdir secondary
3. mkdir arbiter
<a name="UUY03"></a>
### 创建各个节点目录
1. cd /usr/local/mongodb-set/primary
2. mkdir data logs config pid
3. cd /usr/local/mongodb-set/secondary
4. mkdir data logs config pid
5. cd /usr/local/mongodb-set/arbiter
6. mkdir data logs config pid
<a name="QtS8Z"></a>
### 编写各个节点配置文件
配置文件参考:[链接](https://www.mongodb.com/docs/manual/reference/configuration-options/#security-options)
<a name="k2JfV"></a>
#### 主节点
vim /usr/local/mongodb-set/primary/config/mongod.conf
```powershell
systemLog:
#MongoDB发送所有日志输出的目标指定为文件
destination: file
#mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
path: "/usr/local/mongodb-set/primary/logs/mongod.log"
#当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾
logAppend: true
storage:
#mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod
dbPath: "/usr/local/mongodb-set/primary/data"
journal:
#启用或禁用持久性日志以确保数据文件保持有效和可恢复。
enabled: true
processManagement:
#启用在后台运行mongos或mongod进程的守护进程模式。
fork: true
#指定用于保存mongos或mongod进程的进程ID的文件位置,其中mongos或mongod将写入其PID
pidFilePath: "/usr/local/mongodb-set/primary/pid/mongod.pid"
net:
#服务实例绑定所有IP,有副作用,副本集初始化的时候,节点名字会自动设置为本地域名,而不是ip
#bindIpAll: true
#服务实例绑定的IP
bindIp: 0.0.0.0
#绑定的端口
port: 27017
replication:
#副本集的名称
replSetName: "ftc"
从节点
vim /usr/local/mongodb-set/secondary/config/mongod.conf
systemLog:
#MongoDB发送所有日志输出的目标指定为文件
destination: file
#mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
path: "/usr/local/mongodb-set/secondary/logs/mongod.log"
#当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾
logAppend: true
storage:
#mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod
dbPath: "/usr/local/mongodb-set/secondary/data"
journal:
#启用或禁用持久性日志以确保数据文件保持有效和可恢复。
enabled: true
processManagement:
#启用在后台运行mongos或mongod进程的守护进程模式。
fork: true
#指定用于保存mongos或mongod进程的进程ID的文件位置,其中mongos或mongod将写入其PID
pidFilePath: "/usr/local/mongodb-set/secondary/pid/mongod.pid"
net:
#服务实例绑定所有IP,有副作用,副本集初始化的时候,节点名字会自动设置为本地域名,而不是ip
#bindIpAll: true
#服务实例绑定的IP
bindIp: 0.0.0.0
#绑定的端口
port: 27018
replication:
#副本集的名称
replSetName: "ftc"
仲裁节点
vim /usr/local/mongodb-set/arbiter/config/mongod.conf
systemLog:
#MongoDB发送所有日志输出的目标指定为文件
destination: file
#mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
path: "/usr/local/mongodb-set/arbiter/logs/mongod.log"
#当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾
logAppend: true
storage:
#mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod
dbPath: "/usr/local/mongodb-set/arbiter/data"
journal:
#启用或禁用持久性日志以确保数据文件保持有效和可恢复。
enabled: true
processManagement:
#启用在后台运行mongos或mongod进程的守护进程模式。
fork: true
#指定用于保存mongos或mongod进程的进程ID的文件位置,其中mongos或mongod将写入其PID
pidFilePath: "/usr/local/mongodb-set/arbiter/pid/mongod.pid"
net:
#服务实例绑定所有IP,有副作用,副本集初始化的时候,节点名字会自动设置为本地域名,而不是ip
#bindIpAll: true
#服务实例绑定的IP
bindIp: 0.0.0.0
#绑定的端口
port: 27019
replication:
#副本集的名称
replSetName: "ftc"
节点启动
- 主节点:/usr/local/mongodb-set/mongo/bin/mongod —config /usr/local/mongodb-set/primary/config/mongod.conf
- 从节点:/usr/local/mongodb-set/mongo/bin/mongod —config /usr/local/mongodb-set/secondary/config/mongod.conf
- 仲裁节点:/usr/local/mongodb-set/mongo/bin/mongod —config /usr/local/mongodb-set/arbiter/config/mongod.conf
初始化副本集
rs命令介绍请参考:链接
- 连接主节点:/usr/local/mongodb-set/mongo/bin/mongo
定义变量:变量内容如下(priority:优先级,主节点优先级最高,从节点依次递减即可)
config={
_id: "ftc",
members: [
{ _id: 0, host: "120.48.107.224:27017",priority:2 },
{ _id: 1, host: "120.48.107.224:27018",priority:1 },
{ _id: 2, host: "120.48.107.224:27019",arbiterOnly:true }
]
}
初始化节点:rs.initiate(config)
-
可视化软件链接
关闭节点(如有需要)
主节点:/usr/local/mongodb-set/mongo/bin/mongod —shutdown —config /usr/local/mongodb-set/primary/config/mongod.conf
- 从节点:/usr/local/mongodb-set/mongo/bin/mongod -shutdown —config /usr/local/mongodb-set/secondary/config/mongod.conf
- 仲裁节点:/usr/local/mongodb-set/mongo/bin/mongod -shutdown —config /usr/local/mongodb-set/arbiter/config/mongod.conf