介绍
MongoDB是一个免费的开源NoSQL文档数据库,在Web应用程序中经常使用。在本教程中,您将安装MongoDB,学习如何管理其服务并启用远程访问。
准备
要学习本教程,您需要:
- 一个Ubuntu服务器,我建议您使用腾讯云免费的开发者专属在线实验平台进行试验。 或购买腾讯云数据库服务。
第一步、安装MongoDB
Ubuntu的官方软件包存储库包含最新版本的MongoDB,这意味着我们可以使用apt
安装必要的软件包。
首先,更新软件包列表以获得最新版本的软件库列表:
代码语言:javascript复制sudo apt update
现在安装MongoDB包:
代码语言:javascript复制sudo apt install -y mongodb
此命令将安装包含最新稳定版MongoDB的多个软件包,以及MongoDB服务器的管理工具。安装后会自动启动数据库服务器。
接下来,让我们验证服务器是否正常运行。
第二步、检查服务和数据库
安装过程将自动启动MongoDB,我们需要验证服务是否已启动并且数据库是否正常工作。
首先,检查服务的状态:
代码语言:javascript复制sudo systemctl status mongodb
您会看到如下输出:
代码语言:javascript复制● mongodb.service - An object/document-oriented database
Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: active (running) since Sat 2018-05-26 07:48:04 UTC; 2min 17s ago
Docs: man:mongod(1)
Main PID: 2312 (mongod)
Tasks: 23 (limit: 1153)
CGroup: /system.slice/mongodb.service
└─2312 /usr/bin/mongod --unixSocketPrefix=/run/mongodb --config /etc/mongodb.conf
根据systemd
显示,MongoDB服务器已启动并运行。
我们可以通过连接到数据库并执行诊断命令来进一步验证这一点。
执行以下命令:
代码语言:javascript复制mongo --eval 'db.runCommand({ connectionStatus: 1 })'
这将输出当前数据库版本,服务器地址和端口以及status命令:
代码语言:javascript复制MongoDB shell version v3.6.3
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.6.3
{
"authInfo" : {
"authenticatedUsers" : [ ],
"authenticatedUserRoles" : [ ]
},
"ok" : 1
}
ok
的值为1
的时候表示服务器正常工作。
接下来,我们将了解如何管理服务器实例。
第三步、管理MongoDB服务
MongoDB是作为systemd服务安装的,这意味着您可以使用标准systemd命令以及Ubuntu中的所有其他系统服务来管理它。
要验证服务的状态,请输入:
代码语言:javascript复制sudo systemctl status mongodb
您可以通过输入以下命令随时停止服务器:
代码语言:javascript复制sudo systemctl stop mongodb
要在启动服务器,请输入:
代码语言:javascript复制sudo systemctl start mongodb
您还可以使用以下命令重新启动服务器:
代码语言:javascript复制sudo systemctl restart mongodb
默认情况下,MongoDB会配置为自动启动服务器。如果要禁用自动启动,请输入:
代码语言:javascript复制sudo systemctl disable mongodb
若要再次启用它,请输入:
代码语言:javascript复制sudo systemctl enable mongodb
接下来,让我们调整MongoDB安装的防火墙设置。
第四步、调整防火墙(可选)
如果您希望能够从Internet连接到MongoDB服务器,则必须允许传入连接ufw的流量。
要允许从任何地方访问27017
端口上的MongoDB ,您可以使用sudo ufw allow 27017
命令。但是,这样操作非常不安全,我们还是建议你按照下面的步骤来做。
在大多数情况下,只能从某些受信任的位置访问MongoDB,例如托管应用程序的另一台服务器。您可以允许访问MongoDB的默认端口,同时指定将明确允许连接的另一台服务器的IP地址:
代码语言:javascript复制sudo ufw allow from your_other_server_ip/32 to any port 27017
您可以使用以下命令验证防火墙设置的更改ufw
:
sudo ufw status
您应该看到输出中允许27017
端口流量:
Status: active
To Action From
-- ------ ----
OpenSSH ALLOW Anywhere
27017 ALLOW Anywhere
OpenSSH (v6) ALLOW Anywhere (v6)
27017 (v6) ALLOW Anywhere (v6)
如果您决定仅允许某个IP地址连接到MongoDB服务器,请在输出中列出允许位置的IP地址。
即使端口是打开的,MongoDB目前也只监听本地地址127.0.0.1
。若要允许远程连接,请将服务器的可公共路由IP地址添加到mongod.conf
文件中。
在编辑器中打开MongoDB配置文件:
代码语言:javascript复制sudo nano /etc/mongodb.conf
将服务器的IP地址添加到bindIP值:
代码语言:javascript复制...
logappend=true
bind_ip = 127.0.0.1,your_server_ip
#port = 27017
...
保存文件,退出编辑器,然后重新启动MongoDB:
代码语言:javascript复制sudo systemctl restart mongodb
MongoDB现在将侦听远程连接,且已经按照您的防火墙配置。如何更简单的配置防火墙呢?您可以按照我们腾讯云安全组配置了解如何配置常规用户帐户并为您的服务器设置防火墙。
参考文献:《How to Install MongoDB on Ubuntu 18.04》