MongoDB 部署(亲测有效)
目录
- 前言
- 一、环境
- 二、安装
- 2.1 Yum 安装
- 2.2 二进制安装
- 小结
前言
MongoDB 有两个版本:Community Edition(社区版) 和 Enterprise Edition(企业版),不同版本适用于不同的平台,从 3.4 版本开始,已经不再支持 32 位 x86 平台,同时在较新版本 5.0+ 已经不再支持 RHEL / CentOS 6、Ubuntu 16.04、macOS 10.13,其他版本可支持的平台大家可以查看其官方文档https://docs.mongodb.com/manual/installation/,有详细说明,大家根据自己的系统版本选择对应的 MongoDB 版本,不要盲目安装。
一、环境
OS | Server | Version | Port |
---|---|---|---|
CentOS 8.3(10.150.16.95) | MongoDB | 5.0+ | 8090(默认27017) |
二、安装
2.1 Yum 安装
1、配置包管理系统
vim /etc/yum.repos.d/mongodb-org-5.0.repo[mongodb-org-5.0]
name=MongoDB Repository
baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/5.0/x86_64/
gpgcheck=1
enabled=1
gpgkey=https://www.mongodb.org/static/pgp/server-5.0.asc
如果要安装其他版本,更改一下上面内容即可;
更改地方:
- baseurl:xxx
- gpgkey:xxx(或者说把 gpgcheck=1 改成 gpgcheck=0,就不用更改这一项了)
2、建立缓存
yum makecache
3、安装
# 安装最新版
yum install -y mongodb-org# 安装指定版
yum install -y \
mongodb-org-5.0.3 \
mongodb-org-database-5.0.3 \
mongodb-org-server-5.0.3 \
mongodb-org-shell-5.0.3 \
mongodb-org-mongos-5.0.3 \
mongodb-org-tools-5.0.3
4、固定封装,防止意外升级(针对 yum 方式安装)
# 最新版本封装
echo "exclude=mongodb-org,mongodb-org-database,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools" >> /etc/yum.conf# 指定版本封装
echo "mongodb-org-5.0.5,mongodb-org-database-5.0.5,mongodb-org-server-5.0.5,mongodb-org-shell-5.0.5,mongodb-org-mongos-5.0.5,mongodb-org-tools-5.0.5" >> /etc/yum.conf
5、默认安装路径
/var/lib/mongo
(数据目录)/var/log/mongodb
(日志目录)
6、更改默认路径(可选)
新建空目录
mkdir -p /data/mongodb/data # 数据存储路径 mkdir -p /data/mongodb/logs # 日志存储路径 touch /data/mongodb/logs/mongod.log# 修改属主和属组 cd /data/ chown -R mongod:mongod mongodb/
修改配置文件
... # 日志路径配置 systemLog:destination: filelogAppend: truepath: /data/mongodb/logs/mongod.log# 数据路径配置 storage:dbPath: /data/mongodb/datajournal:enabled: true# 其他配置 net:port: 8090 # 自定义,不要冲突(默认端口27017)bindIp: 10.150.16.95 # 绑定自身IP...
7、启动服务
[root@zhurs data]# systemctl enable mongod.service
[root@zhurs data]# systemctl start mongod.service
[root@zhurs data]# netstat -lntp |grep mongo
tcp 0 0 10.150.16.95:8090 0.0.0.0:* LISTEN 1776642/mongod
如何卸载?
停止 MongoDB
systemctl stop mongod.service
删除包
yum remove -y `rpm -qa | grep mongodb-org`
删除数据目录
# 默认的(因为安装时会生成) rm -rf /var/log/mongodb rm -rf /var/lib/mongo# 自定义的 rm -rf /data/mongodb
至此,yum 方式安装/卸载的步骤已经完成!!
2.2 二进制安装
安装包下载路径:
1、wget在线下载或上传至服务器并解压
tar -xzf mongodb-linux-x86_64xxx.tgz -C /opt/
2、添加环境变量(软连接)
ln -s /opt/mongodb-linux-x86_64xxx/bin/* /usr/local/bin/
3、创建存储目录
mkdir -p /data/mongodb/data # 数据存储路径
mkdir -p /data/mongodb/logs # 日志存储路径
touch /data/mongodb/logs/mongod.log
4、创建 mongod 启动用户
默认情况下,MongoDB 使用
mongod
用户帐户运行。
useradd -r mongod -s /shin/nologin # 创建一个非登录的系统用户
5、存储目录授权
chown -R mongod:mongod /data/mongodb/
6、创建配置文件
Github 获取:https://github.com/mongodb/mongo/blob/master/rpm/mongod.conf
vim /etc/mongod.conf
# mongod.conf# for documentation of all options, see:
# http://docs.mongodb.org/manual/reference/configuration-options/# where to write logging data.
systemLog:destination: filelogAppend: truepath: /data/mongodb/logs/mongod.log# Where and how to store data.
storage:dbPath: /data/mongodb/datajournal:enabled: true
# engine:
# wiredTiger:# how the process runs
processManagement:fork: true # fork and run in backgroundpidFilePath: /data/mongodb/data/mongod.pid # location of pidfiletimeZoneInfo: /usr/share/zoneinfo# network interfaces
net:port: 27017bindIp: 0.0.0.0 # Enter 0.0.0.0,:: to bind to all IPv4 and IPv6 addresses or, alternatively, use the net.bindIpAll setting.#security:#operationProfiling:#replication:#sharding:## Enterprise-Only Options#auditLog:#snmp:
主要修改几个部分:
- systemLog.path: /data/mongodb/logs/mongod.log
- storage.dbPath: /data/mongodb/data
- processManagement.pidFilePath: /data/mongodb/data/mongod.pid
- net.bindIp: 0.0.0.0(或本机IP)
7、配置 systemd 管理
cd /usr/lib/systemd/system/
cat >>mongodb.service<<"EOF"
[Unit]
Description=mongodb
After=network.target remote-fs.target nss-lookup.target[Service]
Type=forking
ExecStart=/usr/local/bin/mongod --config /etc/mongod.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/usr/local/bin/mongod --shutdown --config /etc/mongod.conf
PrivateTmp=true[Install]
WantedBy=multi-user.target
EOF
8、启动服务
[root@zhurs mongodb]# systemctl daemon-reload
[root@zhurs mongodb]# systemctl enable mongodb.service
[root@zhurs mongodb]# systemctl start mongodb.service
[root@zhurs mongodb]# netstat -lntp |grep mongo
tcp 0 0 0.0.0.0:27017 0.0.0.0:* LISTEN 1787469/mongod
如何卸载?
停止 MongoDB
systemctl stop mongod.service
删除包(二进制)
[root@zhurs opt]# which mongo /usr/local/bin/mongo [root@zhurs opt]# ll /usr/local/bin/mongo lrwxrwxrwx 1 root root 22 Dec 31 11:44 /usr/local/bin/mongo -> /opt/mongodb/bin/mongo [root@zhurs opt]# rm -rf /opt/mongodb
删除数据目录
# 自定义的 rm -rf /data/mongodb
至此,二进制方式安装/卸载的步骤已经完成!!
小结
自工作以来,部署过无数种应用,刚开始接触的时候,是疯狂的从百度上查阅别人的博客教程,但最后会发现全部是坑,因为他们的一些配置非常不规范,非常容易出错。因此,以上的部署过程基本上都是参照官方部署文档来执行的,这样可以保证别人查阅我资料的时候尽量少踩坑,因为我们的博客是用来帮助别人的,而不是让别人来踩坑的,同时这也是对自己博客的一种规范。
<点击跳转至开头>
MongoDB 部署(亲测有效)相关推荐
- Linux安装PHP MongoDB扩展(亲测)
本文将讲述一下本人安装MongoDB扩展的过程,大家可以略作参考 亲测,但是一些步骤不太一样,比如 ./configure需要添加 --with-config参数 安装环境 Linux环境:CentO ...
- centos7安装MongoDB(亲测)
简介 MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的.他支持的数据结构非常松散,是类似json的bson格式,因此可以存储比较复杂的数据类 ...
- uwsgi+django在ubuntu下命令部署亲测ok
项目目录: 我的setting文件: """ Django settings for jango_one project.Generated by 'django-adm ...
- 在服务器上运行本地的项目 (部署亲测有效)转载请注明出处
1)内容都是一样的就是文件名不同而已.底层是C语言的不过这第一步只针对现在使用的项目部署所需要的文件.后面的步骤就适合大部分项目了. libSDF_fabu.so, libSDF_zhuce.so, ...
- centos7.4.3 部署python-pcl亲测可用(采坑记)
最近工作里用到PCL库,处理点云数据.点云抽稀能极大的减少点云数据. 通过python-pcl调用C++的PCL库.windows下运行ok,linux下部署踩了很多坑,试了多种办法,包括源码安装,都 ...
- 连接MongoDB 3.x 报 Authorization failed 解决办法(创建账号的部分亲测)
最近安装了mongodb3.1.4,并启用了权限验证,在dos窗口下操作没有任何问题,为了维护方便就下载了一个客户端工具Robomongo 0.8.5,用户名.密码的等配置好点击测试,结果连接服务没有 ...
- 连接MongoDB 3.x 报 Authorization failed 解决办法(自己只用到了创建mongodb账号和密码的部分亲测)
最近安装了mongodb3.1.4,并启用了权限验证,在dos窗口下操作没有任何问题,为了维护方便就下载了一个客户端工具Robomongo 0.8.5,用户名.密码的等配置好点击测试,结果连接服务没有 ...
- Oracle 数据怎么实时同步到 MongoDB | 亲测干货分享建议收藏
摘要: 很多 DBA 同学经常会遇到要从一个数据库实时同步到另一个数据库的问题,同构数据还相对容易,遇上异构数据.表多.数据量大等情况就难以同步.我自己亲测了一种方式,可以非常方便地完成 Oracle ...
- centos7.3部署django用uwsgi和nginx[亲测可用]
centos7.3部署django用uwsgi和nginx[亲测可用] 现在nginx nginx version: nginx/1.10.2 uwsgi 2.0.17 django2.0.5 都已经 ...
- CentOS 8下 MySQL 8.0 安装部署(亲测)
MySQL 8正式版8.0.11已发布,官方表示MySQL8要比MySQL 5.7快2倍,还带来了大量的改进和更快的性能!到底谁最牛呢?请看:MySQL 5.7 vs 8.0,哪个性能更牛? 下载地址 ...
最新文章
- DOM和Diff算法你应该知道的那些事,快收藏!
- 异步IO\数据库\队列\缓存
- eclipse html自动编译,eclipse不自动编译解决方法 不编译要怎么办
- c# linq的差集,并集,交集,去重【转】
- 利用python模拟菜刀反弹shell绕过限制
- ik分词器 分词原理_ElasticSearch 集成Ik分词器
- 广义动量定理之质量m的应用案例分析
- java 线程 listview_android使用Thread实现json数据的传递,并且使用ListView显示
- ros::spin() 和 ros::spinOnce() 区别及详解
- 日记 [2007年01月22日]QMAIL服务器完整安装手册-4
- win7 x64从IE10升级IE11失败
- 电信显示isp服务器连不上,电信拨号上网连接不上的原因是什么
- AtCoder Beginner Contest 156 D Bouquet 失之交臂 容斥原理+二项式定理+乘法逆元+快速幂+模后负数 多余担心
- 微信小程序如何创建云开发根目录
- 有了这款 GitHub 开源神器,以后再也不怕找不到电影资源啦!
- linux 目录 问号 原因,linux – 如何修复所有问号作为权限的目录
- 手机计算机游戏攻略,计算器游戏攻略 计算器游戏怎么玩
- 测试人生 | 从外行到外包,从手工测试到知名互联大厂测开 这个90后是怎么腾飞的?
- RSA算法习题 (采用RSA算法,其中e=7,p=11,q=13,求出公钥和私钥,并求出明文85进行加密后的密文。)
- ABAP---BDC批导入
热门文章
- 华为鸿蒙系统深圳,深圳华为鸿蒙系统
- 七、Openpyxl工作表对象的属性和方法-5(打印设置1/2)
- 峰回路转?贾跃亭重组班底拿融资;插画师的噩梦:AI能根据故事文本画图了;批量图片转文字;机器学习数据工程实战教程;前沿论文 | ShowMeAI资讯日报
- 身份证最后一位校验算法(ISO 7064:1983.MOD 11-2)
- 周记From 2016/8/24 to 2016/8/30
- 14-Teleport
- Wal-mart沃尔玛验厂有哪些内容 ?
- compressnet 管理实用程序
- mapgis如何制作1:50000标准图幅比例尺
- 读书三得:向钱穆大师学习读书方法