1.Windows单机版

下载

下载地址:https://www.mongodb.com/try/download/community
如图,选择windows->msi版本,具体版本看自己需要
image.png

安装

一路next即可,需要注意一下几点

  1. 此处记得选择custom自定义安装路径,不然又要安装到C盘了

image.png

  1. 此处记得取消掉对应的勾选,不然会去外网下载这个可视化客户端工具,我们可以自己下载其他更好用的可视化工具

image.png

配置

  1. 进入安装时自定义安装目录的/data下
  2. 新建db文件夹
  3. 新建log文件夹

image.png

  1. 在log文件夹下新建mongo.log日志文件

image.png

  1. 进入安装时自定义安装目录下,记下文件路径
  2. 将第5步的文件路径,创建新的环境变量MONGODB_PATH

image.png

  1. 在环境变量path中添加 %MONGODB_PATH%\bin;

image.png

  1. 打开cmd,输入mongo,出现如下情况代表配置并启动完成

image.png

  1. 控制台输入:http://127.0.0.1:27017/ ,出现如下页面代表已启动成功。此时虽然已启动,但是重启后服务会消失

image.png

配置开机自启

启动命令:mongod —dbpath “D:\Code\Base\MongoDB\data\db” —logpath “D:\Code\Base\MongoDB\data\log\mongo.log” -install -serviceName “MongoDB”
以管理员身份打开cmd,运行上述命令,出现如图代表运行成功
image.png
win+R输入services.msc
image.png
如图:mongo服务已经启动成功,并会自动启动

可视化软件连接

个人更喜欢使用DataGrip
如图,没有设置用户名与密码,直连即可
image.png
出现如图,链接成功,windows下mongoDB部署完成
image.png

2.Linux单机版

进入目录

cd /usr/local

下载

下载地址:https://www.mongodb.com/try/download/community
如图,选择centos->tgz版本,具体版本看自己需要
image.png
复制下载链接,下载命令示例:
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel80-4.4.15.tgz

解压缩

  1. tar -zxvf mongodb-linux-x86_64-rhel80-4.4.15.tgz
  2. rm -rf mongodb-linux-x86_64-rhel80-4.4.15.tgz
  3. mv mongodb-linux-x86_64-rhel80-4.4.15/ mongodb
  4. ls

image.png

创建数据以及日志存放文件夹

  1. cd mongodb/
  2. mkdir data
  3. cd data
  4. mkdir db
  5. mkdir log
  6. ls

image.png

  1. cd log
  2. touch mongodb.log

    创建配置文件文件夹并编写

  3. cd /usr/local/mongodb

  4. mkdir etc
  5. cd etc
  6. touch mongodb.conf
  7. vim mongodb.conf
  8. 输入如下内容 ```shell

    数据存放路径

    dbpath=/usr/local/mongodb/data/db

日志存放路径

logpath=/usr/local/mongodb/data/log/mongodb.log

端口

port=27017

以守护进程形式后台运行

fork=true

开放IP限制请求

bind_ip=*

  1. <a name="NtHbn"></a>
  2. ### 启动
  3. 1. cd /usr/local/mongodb/bin
  4. 2. ./mongod --config /usr/local/mongodb/etc/mongodb.conf
  5. 如图:启动成功<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)
  6. 3. ps -ef|grep mongo
  7. ![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)
  8. <a name="J4j9L"></a>
  9. ### 可视化软件链接
  10. 个人更喜欢使用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)
  11. <a name="CY0kp"></a>
  12. ### 关闭
  13. 1. cd /usr/local/mongodb/bin
  14. 2. ./mongod -shutdown --config /usr/local/mongodb/etc/mongodb.conf
  15. <a name="Nk9a5"></a>
  16. ## 3.工具包部署
  17. mongo同样内置了一些工具,这些工具有时候需要自行下载并解压到安装的bin目录下
  18. <a name="ZzTJc"></a>
  19. ### 下载
  20. 下载地址:[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)
  21. 1. windows直接下载即可
  22. 2. linux通过 cat /etc/redhat-release 命令查看系统状态,选择下载项复制对应下载链接即可
  23. <a name="hOq4r"></a>
  24. ### 解压缩
  25. **下载解压后目录示例:**<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)
  26. <a name="S75QA"></a>
  27. ### 应用
  28. 无需重启,直接应用即可。对应的参数可以通过 --help获取
  29. <a name="qbsdW"></a>
  30. ## 4.linux副本集模式
  31. <a name="Dcyar"></a>
  32. ### 新建副本集文件夹
  33. 1. mkdir /usr/local/mongodb-set
  34. 2. cd /usr/local/mongodb-set
  35. <a name="xoUF3"></a>
  36. ### 下载
  37. 下载方法与linux单机版一致,不做过多累述
  38. <a name="Da402"></a>
  39. ### 解压缩
  40. 1. tar -zxvf mongodb-linux-x86_64-rhel80-5.0.9.tgz
  41. 2. rm -rf mongodb-linux-x86_64-rhel80-5.0.9.tgz
  42. 3. mv mongodb-linux-x86_64-rhel80-5.0.9/ mongo
  43. <a name="q2t51"></a>
  44. ### 规划节点
  45. | IP | 端口 | 节点角色 |
  46. | --- | --- | --- |
  47. | 192.168.128.208 | 27017 | PRIMARY |
  48. | 192.168.128.208 | 27018 | SECONDARY |
  49. | 192.168.128.208 | 27019 | ARBITER |
  50. <a name="E8Ig1"></a>
  51. ### 创建副本集目录
  52. 1. mkdir primary
  53. 2. mkdir secondary
  54. 3. mkdir arbiter
  55. <a name="UUY03"></a>
  56. ### 创建各个节点目录
  57. 1. cd /usr/local/mongodb-set/primary
  58. 2. mkdir data logs config pid
  59. 3. cd /usr/local/mongodb-set/secondary
  60. 4. mkdir data logs config pid
  61. 5. cd /usr/local/mongodb-set/arbiter
  62. 6. mkdir data logs config pid
  63. <a name="QtS8Z"></a>
  64. ### 编写各个节点配置文件
  65. 配置文件参考:[链接](https://www.mongodb.com/docs/manual/reference/configuration-options/#security-options)
  66. <a name="k2JfV"></a>
  67. #### 主节点
  68. vim /usr/local/mongodb-set/primary/config/mongod.conf
  69. ```powershell
  70. systemLog:
  71. #MongoDB发送所有日志输出的目标指定为文件
  72. destination: file
  73. #mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
  74. path: "/usr/local/mongodb-set/primary/logs/mongod.log"
  75. #当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾
  76. logAppend: true
  77. storage:
  78. #mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod
  79. dbPath: "/usr/local/mongodb-set/primary/data"
  80. journal:
  81. #启用或禁用持久性日志以确保数据文件保持有效和可恢复。
  82. enabled: true
  83. processManagement:
  84. #启用在后台运行mongos或mongod进程的守护进程模式。
  85. fork: true
  86. #指定用于保存mongos或mongod进程的进程ID的文件位置,其中mongos或mongod将写入其PID
  87. pidFilePath: "/usr/local/mongodb-set/primary/pid/mongod.pid"
  88. net:
  89. #服务实例绑定所有IP,有副作用,副本集初始化的时候,节点名字会自动设置为本地域名,而不是ip
  90. #bindIpAll: true
  91. #服务实例绑定的IP
  92. bindIp: 0.0.0.0
  93. #绑定的端口
  94. port: 27017
  95. replication:
  96. #副本集的名称
  97. replSetName: "ftc"

从节点

vim /usr/local/mongodb-set/secondary/config/mongod.conf

  1. systemLog:
  2. #MongoDB发送所有日志输出的目标指定为文件
  3. destination: file
  4. #mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
  5. path: "/usr/local/mongodb-set/secondary/logs/mongod.log"
  6. #当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾
  7. logAppend: true
  8. storage:
  9. #mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod
  10. dbPath: "/usr/local/mongodb-set/secondary/data"
  11. journal:
  12. #启用或禁用持久性日志以确保数据文件保持有效和可恢复。
  13. enabled: true
  14. processManagement:
  15. #启用在后台运行mongos或mongod进程的守护进程模式。
  16. fork: true
  17. #指定用于保存mongos或mongod进程的进程ID的文件位置,其中mongos或mongod将写入其PID
  18. pidFilePath: "/usr/local/mongodb-set/secondary/pid/mongod.pid"
  19. net:
  20. #服务实例绑定所有IP,有副作用,副本集初始化的时候,节点名字会自动设置为本地域名,而不是ip
  21. #bindIpAll: true
  22. #服务实例绑定的IP
  23. bindIp: 0.0.0.0
  24. #绑定的端口
  25. port: 27018
  26. replication:
  27. #副本集的名称
  28. replSetName: "ftc"

仲裁节点

vim /usr/local/mongodb-set/arbiter/config/mongod.conf

  1. systemLog:
  2. #MongoDB发送所有日志输出的目标指定为文件
  3. destination: file
  4. #mongod或mongos应向其发送所有诊断日志记录信息的日志文件的路径
  5. path: "/usr/local/mongodb-set/arbiter/logs/mongod.log"
  6. #当mongos或mongod实例重新启动时,mongos或mongod会将新条目附加到现有日志文件的末尾
  7. logAppend: true
  8. storage:
  9. #mongod实例存储其数据的目录。storage.dbPath设置仅适用于mongod
  10. dbPath: "/usr/local/mongodb-set/arbiter/data"
  11. journal:
  12. #启用或禁用持久性日志以确保数据文件保持有效和可恢复。
  13. enabled: true
  14. processManagement:
  15. #启用在后台运行mongos或mongod进程的守护进程模式。
  16. fork: true
  17. #指定用于保存mongos或mongod进程的进程ID的文件位置,其中mongos或mongod将写入其PID
  18. pidFilePath: "/usr/local/mongodb-set/arbiter/pid/mongod.pid"
  19. net:
  20. #服务实例绑定所有IP,有副作用,副本集初始化的时候,节点名字会自动设置为本地域名,而不是ip
  21. #bindIpAll: true
  22. #服务实例绑定的IP
  23. bindIp: 0.0.0.0
  24. #绑定的端口
  25. port: 27019
  26. replication:
  27. #副本集的名称
  28. replSetName: "ftc"

节点启动

  1. 主节点:/usr/local/mongodb-set/mongo/bin/mongod —config /usr/local/mongodb-set/primary/config/mongod.conf
  2. 从节点:/usr/local/mongodb-set/mongo/bin/mongod —config /usr/local/mongodb-set/secondary/config/mongod.conf
  3. 仲裁节点:/usr/local/mongodb-set/mongo/bin/mongod —config /usr/local/mongodb-set/arbiter/config/mongod.conf

如图:所有节点启动成功
image.png

初始化副本集

rs命令介绍请参考:链接

  1. 连接主节点:/usr/local/mongodb-set/mongo/bin/mongo
  2. 定义变量:变量内容如下(priority:优先级,主节点优先级最高,从节点依次递减即可)

    1. config={
    2. _id: "ftc",
    3. members: [
    4. { _id: 0, host: "120.48.107.224:27017",priority:2 },
    5. { _id: 1, host: "120.48.107.224:27018",priority:1 },
    6. { _id: 2, host: "120.48.107.224:27019",arbiterOnly:true }
    7. ]
    8. }
  3. 初始化节点:rs.initiate(config)

  4. 查看节点状态:rs.status()

    可视化软件链接

    image.png
    如图:副本集启动成功,并可提供对外链接
    image.png

    关闭节点(如有需要)

  5. 主节点:/usr/local/mongodb-set/mongo/bin/mongod —shutdown —config /usr/local/mongodb-set/primary/config/mongod.conf

  6. 从节点:/usr/local/mongodb-set/mongo/bin/mongod -shutdown —config /usr/local/mongodb-set/secondary/config/mongod.conf
  7. 仲裁节点:/usr/local/mongodb-set/mongo/bin/mongod -shutdown —config /usr/local/mongodb-set/arbiter/config/mongod.conf