CentOS上安装MongoDB

696 阅读1分钟

在前面几篇介绍了mongodb的 新增删除修改查询 的详细使用,本篇开始讲解如何安装mongodb。我们本教程使用系统上的yum包管理器安装MongoDB 4.4版本,原因:虽然MongoDB可以通过下载的.tgz tarball文件手动安装,但是需要自己安装mongodb的依赖项,所以还是建议使用系统上的yum包管理器安装MongoDB,使用包管理器自动安装所有需要的依赖项,并且提供一个示例mongod.conf文件来启动,来简化未来的升级和维护任务。

注意:

MongoDB 3.4版本以后只支持64位版本。

1. 配置包管理系统(yum)

cd /etc/yum.repos.d 目录,创建mongodb-org-4.4.repo文件,写入如下内容:

[mongodb-org-4.4]

name=MongoDB Repository

baseurl=repo.mongodb.org/yum/redhat/…

gpgcheck=1

enabled=1

gpgkey=www.mongodb.org/static/pgp/…

2. 安装MongoDB包

要安装MongoDB的最新稳定版本,发出以下命令:

sudo yum install -y mongodb-org

另外,要安装特定版本的MongoDB,需要分别指定每个组件包,并将版本号附加到包名中,示例如下:

sudo yum install -y mongodb-org-4.4.2 mongodb-org-server-4.4.2 mongodb-org-shell-4.4.2 mongodb-org-mongos-4.4.2 mongodb-org-tools-4.4.2

您可以指定任何可用的MongoDB版本。不过,当有新的版本可用时,yum会升级这些包。要防止意外升级,请固定该包。要固定一个包,在/etc/yum.conf文件中添加以下exclude指令:

exclude=mongodb-org,mongodb-org-server,mongodb-org-shell,mongodb-org-mongos,mongodb-org-tools

本教程安装MongoDB最新稳定版本

3. 运行MongoDB

3.1. 先决条件

ulimit

大多数类unix操作系统限制进程可以使用的系统资源。这些限制可能会对MongoDB的运行产生负面影响,需要进行调整。

注意:

MongoDB 4.4启动时,打开文件数ulimit小于64000会产生启动错误,可以通过执行

ulimit -a 命令查看当前系统的open files(打开文件数),例如下图:

如果小于64000,可以通过ulimit -n <值> 命令设置。

3.2. 目录路径

使用默认目录

默认情况下,MongoDB使用mongod用户运行,并使用以下默认目录:

/var/lib/mongo 数据目录

/var/log/mongodb 日志目录

如果您通过包管理器安装,

创建默认目录,并将这些目录的所有者和组设置为mongod。

如果你通过下载tarball来安装,

MongoDB的默认目录未创建。创建MongoDB的数据和日志目录。

sudo mkdir -p /var/lib/mongo

sudo mkdir -p /var/log/mongodb

默认情况下,MongoDB使用mongod用户运行。一旦创建,设置这些目录的所有者和组为mongod:

sudo chown -R mongod:mongod

3.2.1. 使用非默认目录

使用默认目录以外的数据目录和/或日志目录:

1.创建一个或多个新的目录,例如执行如下命令在/usr/local/soft目录创建mongodb文件夹:

mkdir mongodb

2.编辑配置文件**/etc/mongod.conf,**修改如下字段:

storage.dbPath:指定一个新的数据目录路径(例如/usr/local/soft/mongodb/data)

systemLog.path:指定一个新的日志文件路径(例如/usr/local/soft/mongodb/log/mongod.log)

3.确保运行MongoDB的用户可以访问以下目录:

sudo chown -R mongod:mongod

示例:sudo chown -R mongod:mongod usr/local/soft/mongodb

3.3. 玩转MongoDB

3.3.1. 启动MongoDB

执行:

sudo systemctl start mongod

如果你在启动mongod时收到类似以下的错误:

Failed to start mongod.service: Unit mongod.service not found.。

先运行如下命令:

sudo systemctl daemon-reload

3.3.2. 检查MongoDB是否启动成功

执行:

sudo systemctl status mongod

出现下图代表运行成功

3.3.3. 设置开机自启动MongoDB

执行:

sudo systemctl enable mongod

3.3.4. 停止MongoDB

执行:

sudo systemctl stop mongod

3.3.5. 重新启动MongoDB

执行:

sudo systemctl restart mongod

3.3.6. 开始连接MongoDB

在刚刚安装mongodb的主机上,运行如下命令:

mongo

可以看到已经连接上了mongodb,默认端口是27017

4. CentOS卸载MongoDB

4.1. 停止MongoDB

执行:

sudo service mongod stop

4.2. 删除包

删除之前安装的MongoDB包:

sudo yum erase $(rpm -qa | grep mongodb-org)

4.3. 删除数据和日志目录

执行:

sudo rm -r /usr/local/soft/mongodb/data

sudo rm -r /usr/local/soft/mongodb/log/mongod.log

5. 注意点

注意:

默认情况下,MongoDB启动时将bindIp设置为127.0.0.1,绑定到本地主机网络接口。这意味着mongod只能接受来自运行在同一台机器上的客户机的连接。远程客户端将不能连接到mongod,并且mongod将不能初始化复制集,除非该值被设置为有效的网络接口。

可以通过修改MongoDB配置文件(编辑配置文件/etc/mongod.conf)中的bindIp字段或在启动的时候通过命令行参数——bind_ip来更改