这里以 Ubuntu 系统为例介绍如何安装 MongoDB。这里的操作过程在 18.04 版本上的 Ubuntu 验证通过。
1 安装
1.1 通过 APT 安装
首先需要导入 MongoDB 官方 Repo 的密钥。注意我们这里安装的是 4.4 版本。
1 | curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add - |
以上命令应该会输出 "OK"。然后我们需要向 apt
的源列表里面添加 MongoDB 的官方 Repo:
1 | echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-4.4.list |
之后我们就可以安装了:
1 | $ sudo apt update |
1.2 通过 Systemd 运行
安装之后 MongoDB 需要手动开始运行。安装过程中 MongoDB 已经自动配置了一个 systemd
的 Deamon 服务,我们可以通过 systemctl
命令来运行这个服务:
1 | $ sudo systemctl start mongod.service |
要让 MongoDB 开机自动运行,需要运行:
1 | $ sudo systemctl enable mongod |
1.3 安装验证
运行一下 mongo
命令来检查安装和运行是否成功吧:
1 | $ mongo --eval 'db.runCommand({ connectionStatus: 1 })' |
此项命令应该输出类似下面的内容:
1 | MongoDB shell version v4.4.1 |
2 安全性配置
默认情况下 MongoDB 没有创建管理用户,我们可以在 localhost 环境下直接访问数据库内容。这有两点不好:
- 本地服务器上的任意用户都可以访问数据库;
- 远程访问在这种情况下是被禁止的。
我们需要首先开启 MongoDB 的认证 (Authentication) 功能。
2.1 添加管理用户
进入 MongoDB Console 环境:
1 | $ mongo |
然后我们进入 MongoDB 默认创建的 admin
数据库。
1 | > use admin |
然后输入下面的命令以创建一个具有管理员权限的用户。
1 | > db.createUser( |
创建成功时你应该能看到类似下面的输出:
1 | Successfully added user: { |
2.2 启用认证
MongoDB 的配置文件夹位于 /etc/mongod.conf
。使用你习惯的命令行编辑器(vim/nano/emacs)打开这个文件进行编辑。注意需要 sudo
权限才能编辑这个文件。
1 | $ sudo vim /etc/mongod.conf |
找到被注释的 security
部分:
1 | . . . |
将其修改为:
1 | . . . |
然后重启 mongod
服务:
1 | $ sudo systemctl restart mongod |
在启用认证之后的,你就不能直接使用 mongo
命令访问数据库了(mongo
命令仍然会带你进入 Console 环境,但是你没有任何权限查看数据库内容)。这是你需要为 mongo
命令提供用户名参数:
1 | $ mongo -u AdminSammy |
然后 mongo
会提示你输入密码。密码校验成功之后就可以正常访问数据库了。
3 启用远程访问
首先要确保你的防火墙设置打开了 MongoDB 使用的端口。一般这个端口默认是 27017
,你也可以通过下面的命令来查看 MongoDB 使用的端口:
1 | $ sudo lsof -i | grep mongo |
然后我们来编辑 /etc/mongo.conf
文件。在 net:
配置选项下,修改 bindIp
设置。这里默认是 127.0.0.1
。要监听所有接口可以修改成 0.0.0.0
。
1 | . . . |
也可以指定要监听的接口的IP。多个IP使用逗号分隔:
1 | . . . |
然后重启 mongd
服务。
1 | $ sudo systemctl restart mongod |