MongoDB 是跨平台的,既可以在 Windows 系统下安装,也可以在 Linux 系统下安装,本节我们就来介绍一下如何在 Linux 系统下安装 MongoDB。
MongoDB 官方提供了多种 Linux 发行版的安装包,您可以在官网下载合适的版本。在安装 MongoDB 前我们需要先安装 Linux 平台的依赖包,安装方法如下:
Red Hat/CentOS:
sudo yum install libcurl openssl
Ubuntu 18.04 LTS ("Bionic")/Debian 10 "Buster":
sudo apt-get install libcurl4 openssl
Ubuntu 16.04 LTS ("Xenial")/Debian 9 "Stretch":
sudo apt-get install libcurl3 openssl
待依赖包安装完成后,我们就可以去 MongoDB 官网(https://www.mongodb.com/try/download/community)下载合适的安装包了,如下图所示:
注意:以下演示过程都是在 CentOS 系统下进行的。
我们选择好要使用的安装包后并不需要在浏览器中直接下载,只需要复制下载链接即可,之后使用 Linux 命令来下载 MongoDB 的安装包,如下所示:
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-rhel70-4.4.3.tgz
相对于在 Windows 下安装 MongoDB,在 Linux 系统下安装 MongoDB 要简单很多,只需简单的几步即可。
【步骤 1】解压下载好的安装包,并将解压得到的文件移动到指定的目录中,命令如下:
tar -zxvf mongodb-linux-x86_64-rhel70-4.4.3.tgz # 解压
mv mongodb-src-r4.4.3 /usr/local/mongodb # 将解压后的文件拷贝到指定目录
【步骤 2】打开系统配置文件,命令如下:
sudo vi /etc/profile
接下来在 vim 编辑器中按 i 或者 insert 键来进入 insert 模式对系统配置文件进行编辑,并在配置文件中添加如下配置信息:
export PATH = <directory>/bin:$PATH
其中 <directory> 为 MongoDB 的安装路径,例如【步骤 1】中使用到的 /usr/local/mongodb,完整的配置信息如下:
export PATH=/usr/local/mongodb4/bin:$PATH
编辑完成后按 esc键退出 insert 模式,然后按 shift + : 键并输入 wq 来保存并退出系统配置文件。
系统配置文件保存成功后可以使用如下命令来使配置文件生效:
source /etc/profile
【步骤 3】创建数据库目录,默认情况下 MongoDB 启动后会初始化以下两个目录:
所以我们在启动 MongoDB 前可以先创建这两个目录并设置读写权限,命名如下:
sudo mkdir -p /var/lib/mongodb
sudo mkdir -p /var/log/mongodb
sudo chown `whoami` /var/lib/mongodb # 设置权限
sudo chown `whoami` /var/log/mongodb # 设置权限
其中 mkdir -p 命令用来确保目录名称存在,如果不存在就建一个。chown `whoami` 命令用来指定文件所有者为用户自身,whoami 为显示自身名称的命令。
完成上述步骤后 MongoDB 就安装完成了,您可以使用下面的命令来启动 MongoDB 服务:
mongod --dbpath /var/lib/mongodb --logpath /var/log/mongodb/mongod.log --fork
输入 tail -10f /var/log/mongodb/mongod.log 命令,若看到类似下面的信息则说明 MongoDB 运行成功:
{"t":{"$date":"2021-02-05T13:10:40.423+08:00"},"s":"I", "c":"NETWORK", "id":23015, "ctx":"listener","msg":"Listening on","attr":{"address":"/tmp/mongodb-27017.sock"}}
{"t":{"$date":"2021-02-05T13:10:40.424+08:00"},"s":"I", "c":"NETWORK", "id":23015, "ctx":"listener","msg":"Listening on","attr":{"address":"127.0.0.1"}}
{"t":{"$date":"2021-02-05T13:10:40.424+08:00"},"s":"I", "c":"NETWORK", "id":23016, "ctx":"listener","msg":"Waiting for connections","attr":{"port":27017,"ssl":"off"}}