Bootstrap

CentOS 7 安装 MongoDB社区版5.0.2

二进制包安装

1、下载二进制包

MongoDB版本以第二位奇偶数来划分,基数为发行版本,偶数为稳定版本。因此,在生产环境中,必须使用偶数版本。

官网下载地址:https://www.mongodb.com/try/download/community?tck=docs_server
iShot2023-04-16 21.18.35

# 进入安装目录
[root@localhost ~]# cd /usr/local/src
# 获取下载链接后使用wget下载
[root@localhost src]# wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-5.0.2.tgz
2、检查相关依赖

MongoDB需要libcurl、openssl和xz-libs依赖才能正常运行,因此我们先检查依赖。

# 查看libcurl依赖
[root@localhost src]# rpm -qa|grep libcurl
# 查看openssl依赖
[root@localhost src]# rpm -qa|grep openssl
# 查看xz-libs依赖
[root@localhost src]# rpm -qa|grep xz-libs
3、解压并重命名二进制包
# 解压二进制包
[root@localhost src]# tar -xzvf mongodb-linux-x86_64-rhel70-5.0.2.tgz
# 重命名
[root@localhost src]# mv mongodb-linux-x86_64-rhel70-5.0.2 mongodb
4、配置环境变量

我们配置环境变量之后,就不用再使用绝对路径去运行mongodb命令。配置环境变量有两种方法:

  • 拷贝二进制文件至/usr/local/bin
  • 建立软连接

我这里使用拷贝二进制文件。

# 拷贝二进制文件
[root@localhost src]# cp /usr/local/src/mongodb/bin/* /usr/local/bin
5、安装mongosh

这个是可选项,官网建议我们安装这个命令,来使用mongosh来替代mongo客户端,并明确表示会在未来的版本中删除mongo命令。我们可以使用存储库来下载rpm包,上传到服务器中进行安装。

存储库地址:https://repo.mongodb.org/yum/redhat/

# 安装
[root@localhost src]# rpm -ivh mongodb-mongosh-1.0.5.el7.x86_64.rpm
6、创建用户和组

mongodb官网不建议运行在root下,因此,我们创建mongod用户和组。

# 创建组
[root@localhost src]# groupadd mongod
# 创建用户,并加入到组中
[root@localhost src]# useradd -g mongod -m mongod
7、进入目录,并创建目录

创建的目录作用是用来存储持久化数据和运行日志,最好使用磁盘空间较大的目录。

# 进入mongodb目录
[root@localhost src]# cd mongodb
# 创建目录
[root@localhost mongodb]# mkdir db logs
# 授权给mongod用户和组
[root@localhost mongodb]# chown mongod:mongod -R /usr/local/src/mongodb
8、编辑配置文件
# 编辑配置文件
[root@localhost mongodb]# vim mongodb.conf

dbpath = /usr/local/src/mongodb/db
logpath = /usr/local/src/mongodb/logs/mongodb.log
logRotate = rename
logappend=true
port = 27017
fork = true
auth=true
bind_ip = 0.0.0.0

# 再次授权给mongod
[root@localhost mongodb]# chown mongod:mongod mongodb.conf

参数介绍:

  • dbpath 持久化数据目录
  • logpath 运行日志目录
  • logRotate 日志的切割格式,rename是重命名新文件
  • logappend 日志是否追加
  • port 端口号
  • fork 是否以守护进程运行
  • auth 是否开启认证,不开启的话,任何用户都可以连接数据库
  • bind_ip 默认为127.0.0.1,仅本地能够连接,改为0.0.0.0表示任何ip都可以访问。
9、关闭selinux

检查selinux是否处于enforcing。
如果运行在enforcing模式,需要按官方文档配置selinux。
否则,直接检查是否关闭即可。

# 查看selinux模式
[root@localhost mongodb]# getenforce
# 关闭enforcing模式
[root@localhost mongodb]# setenforce 0
# 再次查看selinux模式
[root@localhost mongodb]# getenforce
10、开放端口

检查firewalld是否启用,如果未启用,则无需执行此步骤,如果正常启用,则需要开放端口,生产环境中建议启用,如果有其它安全策略更好。

# 查看firewalld状态
[root@localhost mongodb]# systemctl status firewalld
# 永久开放27017端口
[root@localhost mongodb]# firewall-cmd --permanent --zone=public --add-port=27017/tcp
# 重启firewalld
[root@localhost mongodb]# systemctl restart firewalld
11、配置用户资源以提高性能

在类Unix中,默认都会限制资源使用。MongoDB建议我们配置资源参数,以提高MongoDB数据库的性能。

# 配置用户资源文件
[root@localhost mongodb]# vim /etc/security/limits.conf

mongod soft fsize unlimited
mongod hard fsize unlimited
mongod soft cpu unlimited
mongod hard cpu unlimited
mongod soft memlock unlimited
mongod hard memlock unlimited
mongod soft as unlimited
mongod hard as unlimited
mongod soft nofile 64000
mongod hard nofile 64000
mongod soft nproc 64000
mongod hard nproc 64000
12、启动MongoDB

启动我们不能直接启动,需要切换到mongod用户,并指定配置文件所在位置。

# 切换用户
[root@localhost mongodb]# su - mongod
# 启动MongoDB
[mongod@localhost ~]$ mongod --config /usr/local/src/mongodb/mongodb.conf
13、查看进程

启动完毕后,我们检查一下进程。

# 查看进程
[mongod@localhost ~]$ ps -ef|grep mongo
14、配置MongoDB自启动

这里的自启动可不是出错后自动启动,而是在服务器重启后会自动启动MongoDB数据库,避免我们的服务器在重启后还需要手动去启动。在rc.local中增加记录,需要root权限,因此我们切换到root用户。

# 切换root用户
[mongod@localhost ~]$ su - root
# rc.local文件增加配置
[root@localhost ~]# echo 'su - mongod -c "/usr/local/src/mongodb/bin/mongod --config /usr/local/src/mongodb/mongodb.conf"' >>/etc/rc.d/rc.local
# 授权运行权限
[root@localhost ~]# chmod +x /etc/rc.d/rc.local

结束

至此,一台单机的MongoDB就成功安装并启动完毕。

;