介绍
与自我管理的数据库相比,托管数据库具有许多优势,包括自动更新、简化的扩展和高可用性。如果您刚开始使用托管数据库,那么执行某些任务(例如连接到数据库)的最佳方式可能不是不言而喻的。
本指南概述了如何在 Ubuntu 18.04 服务器上为各种数据库管理系统 (DBMS)(包括PostgreSQL、MySQL、Redis和MongoDB)安装客户端程序。它还将解释如何使用这些程序连接到托管数据库实例。
注意:本指南中概述的说明已使用DigitalOcean 托管数据库进行了测试,但它们通常适用于来自任何云提供商的托管数据库。但是,如果您在连接到其他提供商提供的数据库时遇到问题,您应该查阅他们的文档以获得帮助。
先决条件
要按照本指南中的详细说明进行操作,您需要:
- 访问运行 Ubuntu 18.04 的服务器。此服务器应具有具有管理权限的非 root 用户和配置为
ufw
. 要进行设置,请按照我们的 Ubuntu 18.04 初始服务器设置指南进行操作。 - 托管数据库实例。本教程提供有关如何连接到各种数据库管理系统的说明,特别是 PostgreSQL、MySQL、Redis 和 MongoDB。要配置 DigitalOcean 托管数据库,请查看我们为您选择的 DBMS 提供的文档:
- PostgreSQL
具备这些先决条件后,跳转到与您的数据库管理系统 (DBMS) 相符的任何部分。
连接到托管 PostgreSQL 数据库
要连接到托管的 PostgreSQL 数据库,您可以使用psql
Postgres 的标准命令行客户端。它是开源的,由 PostgreSQL Development Group 维护,通常在您安装 PostgreSQL 服务器时包含在内。
您可以安装psql
通过安装本身postgresql-client
与APT包,但如果你从Ubuntu默认18.04仓库安装它,它会安装版本10的psql
,而PostgreSQL最新的主要版本为13。一些托管数据库提供程序为您希望数据库使用的 PostgreSQL 版本提供了各种选项。在撰写本文时,DigitalOcean为其托管 PostgreSQL 数据库提供了10到13版本。
通常,您仍然可以使用psql
与数据库版本不匹配的版本。但是,如果您的版本psql
比 Postgres 数据库的版本旧,您可能无法使用较新的数据库版本中包含的某些功能。
安装特定版本psql
客户端的一种方法是将官方 PostgreSQL APT 存储库添加到您计算机的 APT 资源列表中。为此,首先通过运行以下 cURL 命令导入存储库的签名密钥。
cURL 是一个命令行工具,可用于许多用于传输数据的操作系统。它读取存储在传递给它的 URL 中的任何数据,并将内容打印到系统的输出。在以下示例中,cURL 打印 GPG 密钥文件的内容,然后通过管道将其导入以下sudo apt-key add -
命令,从而将 GPG 密钥添加到您的受信任密钥列表中。
另外,请注意,此curl
命令使用的选项-fsSL
一起实质上是告诉 cURL 静默失败。这意味着如果由于某种原因 cURL 无法联系 GPG 服务器或 GPG 服务器关闭,它不会意外地将生成的错误代码添加到您的受信任密钥列表中:
- curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -
OK
如果密钥添加成功,此命令将返回:
OutputOK
如果您想仔细检查是否正确添加了密钥,可以使用以下命令执行此操作:
- apt-key list
这将在输出中的某处返回 PostgreSQL 键:
Output/etc/apt/trusted.gpg
--------------------
pub rsa4096 2011-10-13 [SC]
B97B 0AFC AA1A 47F0 44F2 44A0 7FCC 7D46 ACCC 4CF8
uid [ unknown] PostgreSQL Debian Repository
. . .
此时,您的 APT 安装只有 PostgreSQL 存储库的签名密钥。它不知道在哪里可以找到存储库或它托管的包。
在您的服务器上有两个位置,APT 会在其中查找要下载和安装的在线软件包源:sources.list
文件和sources.list.d
目录,两者都可以在/etc/apt/
目录中找到。 sources.list
是一个文件,列出了 APT 数据的活动源,每行一个源,最喜欢的源首先列出。该sources.list.d
目录允许您将此类sources.list
条目添加为单独的文件。
运行以下命令,这将在sources.list.d
名为的目录中创建一个文件pdgd.list
。该文件中唯一的内容是一行阅读deb https://apt.postgresql.org/pub/repos/apt bionic-pgdg main
:
- echo "deb https://apt.postgresql.org/pub/repos/apt bionic-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list
这一行告诉 APT 它需要知道的关于来源是什么以及在哪里可以找到它的一切:
deb
:这意味着源条目引用了常规的 Debian 架构。在其他情况下,该行的这一部分可能为deb-src
,这意味着源条目代表 Debian 发行版的源代码。https://apt.postgresql.org/pub/repos/apt
:这是一个指向可以找到 APT 数据的位置的 URI。在这种情况下,URI 指向官方 PostgreSQL 存储库所在的 HTTPS 地址。bionic-pgdg
:Ubuntu 存储库可以包含多个版本的包。该行的这一部分指定 APT 应该只从bionic
Ubuntu 版本下载文件(“Bionic Beaver”是 Ubuntu 18.04 的代号)。另请注意,此存储库将-pgdg
(“PostgreSQL Global Development Group”的缩写)附加到每个版本名称的末尾。main
:这部分将 APT 指向四个 Ubuntu 存储库组件之一。在这种情况下,它指向main
component。
运行此命令后,更新服务器的本地包索引,以便 APT 知道在哪里可以找到安装psql
shell的包:
- sudo apt update
更新机器的本地包索引后,您就可以安装所选版本的psql
. 提供psql
客户端的软件包都以 开头postgresql-client
,因此您可以通过运行以下命令找到有关所有这些软件包的信息:
- apt-cache search postgresql-client
这将返回名称包含的所有可用包的列表postgresql-client
,以及每个包的简要说明:
Outputpostgresql-client - front-end programs for PostgreSQL (supported version)
postgresql-client-10 - front-end programs for PostgreSQL 10
postgresql-client-common - manager for multiple PostgreSQL client versions
postgresql-client-10-dbgsym - debug symbols for postgresql-client-10
postgresql-client-11 - front-end programs for PostgreSQL 11
postgresql-client-11-dbgsym - debug symbols for postgresql-client-11
postgresql-client-12 - front-end programs for PostgreSQL 12
postgresql-client-12-dbgsym - debug symbols for postgresql-client-12
postgresql-client-13 - front-end programs for PostgreSQL 13
postgresql-client-13-dbgsym - debug symbols for postgresql-client-13
postgresql-client-8.2 - front-end programs for PostgreSQL 8.2
postgresql-client-8.3 - front-end programs for PostgreSQL 8.3
postgresql-client-8.4 - front-end programs for PostgreSQL 8.4
postgresql-client-9.0 - front-end programs for PostgreSQL 9.0
postgresql-client-9.1 - front-end programs for PostgreSQL 9.1
postgresql-client-9.2 - front-end programs for PostgreSQL 9.2
postgresql-client-9.3 - front-end programs for PostgreSQL 9.3
postgresql-client-9.4 - front-end programs for PostgreSQL 9.4
postgresql-client-9.5 - front-end programs for PostgreSQL 9.5
postgresql-client-9.6 - front-end programs for PostgreSQL 9.6
找到与您的托管 Postgres 数据库正在运行的版本最匹配的包,然后使用apt install
命令安装它。以下示例将安装版本13的客户端:
- sudo apt install postgresql-client-13
APT 会要求您确认是否要安装该软件包。按下 即可ENTER
。
一旦该操作完成安装,您就可以连接到您的托管 Postgres 数据库,而无需进一步配置。为此,您可以psql
使用以下标志进行调用:
-U
,您要作为连接的 PostgreSQL 用户-h
, 托管数据库的主机名或 IP 地址-p
,托管数据库在其上侦听连接的 TCP 端口-d
,您要连接的特定数据库--set
, 在其他连接变量和变量的值之前。例如,如果您想在连接时验证数据库的 CA 证书,您可以--set=sslmode=require
在命令中包含-W
,它告诉psql
您提示您输入 PostgreSQL 用户的密码。请注意,您可以在psql
命令之前使用,但通常认为在命令行中不包含密码更安全PGPASSWORD=password
包含这些标志后,psql
命令的语法如下所示:
- psql -U user -h host -p port -d database --set=variable=value -W
或者,如果您的托管数据库提供程序提供用于连接的统一资源标识符(URI),您可以使用以下语法:
- psql postgresql://username:password@host:port/database?option_1=value&option_n=value
如果您要连接到 DigitalOcean Managed PostgreSQL 数据库,您可以在云控制面板中找到所有这些连接信息。点击数据库在左侧边栏菜单,然后单击要连接到和向下滚动找到它的数据库连接详细信息部分。从那里,您执行以下操作之一:
- 选择连接参数选项并将相关字段分别复制到
psql
前面详述的语法中 - 选择连接字符串选项并复制一个现成的连接 URI,您可以将其粘贴到上面概述的连接 URI 语法中
- 选择Flags选项并复制一个随时可用的
psql
命令,您可以将其粘贴到终端中以建立连接
这样,您就可以开始使用您的托管 PostgreSQL 实例了。有关如何与 PostgreSQL 交互的更多信息,请遵循我们关于如何管理 SQL 数据库的指南。您可能还会发现我们的PostgreSQL 查询简介很有用。
连接到托管 MySQL 数据库
要访问托管 MySQL 数据库,您需要在计划建立连接的计算机上安装 MySQL 客户端。可以使用MySQL 命令行客户端mysql
提供的命令进行连接,但此命令不支持连接字符串。为了在连接方式上获得更大的灵活性,我们建议您改用允许您使用官方MySQL Shell的命令,因为它使您可以自由地使用标志或连接 URI 进行连接。mysqlsh
为了访问 DigitalOcean Managed MySQL 数据库,您需要安装 8.0 或更高版本的 MySQL shell。为此,您必须在安装mysql-shell
软件包之前先添加 MySQL 软件存储库。
首先导航到Web 浏览器中的MySQL APT 存储库页面。找到右下角的下载按钮,然后点击进入下一页。此页面将提示您登录或注册 Oracle Web 帐户。您可以跳过它,而是查找显示不,谢谢,只需开始我的下载的链接。右键单击链接并选择复制链接地址(此选项的措辞可能有所不同,具体取决于您的浏览器)。
您现在可以下载文件了。在您的服务器上,移动到您可以写入的目录。/tmp/
是在 Linux 系统上找到的临时目录,默认情况下通常是普遍可写的:
- cd /tmp
使用 下载文件curl
,记住粘贴您刚刚复制的地址以代替以下命令的突出显示部分。您还需要将两个命令行标志传递给curl
. -O
指示curl
输出到文件而不是标准输出。该L
标志使curl
跟随 HTTP 重定向,在这种情况下这是必要的,因为您复制的地址实际上会在文件下载之前重定向到另一个位置:
- curl -OL https://dev.mysql.com/get/mysql-apt-config_0.8.17-1_all.deb
此命令会将文件下载到您当前的工作目录。列出文件以确保:
- ls
此命令将列出新下载的文件:
Outputmysql-apt-config_0.8.17-1_all.deb
. . .
现在您可以将 MySQL APT 存储库添加到系统的存储库列表中。该dpkg
命令用于安装、删除和检查.deb
软件包。以下命令包含-i
标志,指示您要从指定文件安装:
- sudo dpkg -i mysql-apt-config*
在安装过程中,您将看到一个配置屏幕,您可以在其中指定您喜欢的 MySQL 版本,以及为其他 MySQL 相关工具安装存储库的选项。默认值将添加 MySQL 的最新稳定版本的存储库信息,仅此而已。这就是我们想要的,所以使用向下箭头导航到Ok
菜单选项并点击ENTER
。
之后,该包将完成添加存储库。刷新您的apt
软件包缓存以使新软件包可用:
- sudo apt update
接下来,您可以稍微清理一下系统并删除您下载的文件,因为您将来不需要它。这不是绝对必要的,因为写入/tmp/
目录的任何文件将在十天后自动删除,但您现在可以使用以下命令删除文件:
- rm mysql-apt-config*
注意:如果您需要更新这些存储库的配置,请运行以下命令以选择新选项:
- sudo dpkg-reconfigure mysql-apt-config
选择新选项后,运行以下命令刷新包缓存:
- sudo apt update
现在您已经添加了 MySQL 存储库,您已准备好安装实际的 MySQL Shell 软件。使用以下apt
命令执行此操作:
- sudo apt install mysql-shell
该命令完成后,检查软件版本号以确保您拥有最新版本:
- mysqlsh --version
Outputmysqlsh Ver 8.0.25 for Linux on x86_64 - for MySQL 8.0.25 (MySQL Community Server (GPL))
安装mysql-shell
软件包后,您可以通过运行mysqlsh
带有以下标志作为参数的命令来访问托管数据库:
-u
,您要作为连接的 MySQL 用户-p
, 告诉mysqlsh
提示输入用户的密码。您可以直接在连接命令中的-p
标志后面包含您的密码(没有空格,如),但出于安全原因,通常不建议这样做-ppassword
-h
, 数据库的主机名或 IP 地址-P
,MySQL 侦听连接的 TCP 端口-D
,您要连接的特定数据库
此外,您可能希望包括该--sql
选项。当 MySQL Shell 打开一个新会话时,它会以三种模式之一进行操作:SQL、JavaScript 或 Python。SQL 模式打开一个会话,您可以在其中使用 SQL 查询和操作数据,以及创建数据库、表、组或任何其他需要存储和管理数据的内容。JavaScript 和 Python 模式允许您使用这些各自语言中可用的函数来创建许多会话对象。这使您可以使用来自同一个 MySQL Shell 实例的多个 MySQL 服务器实例。
默认情况下,MySQL Shell 将在 JavaScript 模式下打开会话。因此,如果您想像通常使用 MySQL 命令行客户端那样运行 SQL 查询,则需要指定--sql
在 SQL 模式下建立连接的选项。
使用这些标志,mysqlsh
语法将如下所示:
- mysqlsh -u user -p -h host -P port -D database --sql
或者,如果您有可用于连接的连接 URI,则可以使用如下语法:
- mysqlsh --sql mysql://user:password@host:port/database?option_1=value&option_n=value
如果您要连接到 DigitalOcean 托管数据库,您可以在云控制面板中找到所有这些连接信息。点击数据库在左侧边栏菜单,然后单击要连接到和向下滚动找到它的数据库连接详细信息部分。从那里,您执行以下操作之一:
- 选择连接参数选项并将相关字段分别复制到
mysqlsh
前面概述的语法中 - 选择连接字符串选项并复制一个现成的连接 URI,您可以将其粘贴到上面详述的连接字符串命令中
这样,您就可以开始使用您的托管 MySQL 实例了。
如果您不熟悉 MySQL Shell,需要注意的一件事是,为了关闭连接,exit
其他 MySQL 客户端中使用的命令将不起作用。相反,您可以运行\q
快捷方式:
- \q
OutputBye!
有关如何与 MySQL 交互的更多信息,我们鼓励您阅读我们关于如何管理 SQL 数据库的指南。您可能还会发现我们的MySQL 查询简介很有用。
关于 MySQL 8 中密码认证的注意事项
在 MySQL 8.0 和更新版本中,默认的身份验证插件是caching_sha2_password
. 但是,在撰写本文时,PHP 不支持caching_sha2_password
. 如果您计划将托管 MySQL 数据库与使用 PHP 的应用程序(例如 WordPress 或 phpMyAdmin)一起使用,则这可能会导致应用程序尝试连接到数据库时出现问题。
如果您有权访问数据库的配置文件,则可以添加一个设置以强制它使用 PHP 支持的身份验证插件——例如mysql_native_password
——默认情况下:
[mysqld]
default-authentication-plugin=mysql_native_password
但是,某些托管数据库提供商(包括 DigitalOcean)不会向最终用户提供数据库配置文件。在这种情况下,您可以连接到数据库并ALTER USER
为需要连接到数据库的任何现有 MySQL 用户运行命令,但不能使用caching_sha2_password
插件执行此操作:
- ALTER USER user IDENTIFIED WITH mysql_native_password BY 'password';
当然,您可以mysql_native_password
通过在各自的CREATE USER
语句中指定插件来设置新用户进行身份验证:
- CREATE USER user IDENTIFIED WITH mysql_native_password BY 'password';
如果您使用的是 DigitalOcean 托管数据库,请注意,如果您将用户配置为使用插件进行身份验证,caching_sha2_password
那么您将无法在云控制面板中找到该用户的密码。出于这个原因,您应该确保mysql_native_password
在安全位置记下任何使用或其他插件进行身份验证的用户的密码。
连接到托管 Redis 数据库
在本地安装 Redis 时,它带有redis-cli
Redis 命令行界面。您可以使用redis-cli
连接到远程托管 Redis 实例,但它本身不支持 TLS/SSL 连接。您可以通过多种方式进行配置redis-cli
以安全地连接到托管 Redis 实例(例如,通过配置 TLS 隧道),但还有其他具有内置 TLS 支持的 Redis 客户端。
对于 DigitalOcean 托管 Redis 数据库,我们建议您安装 Redli,这是一个开源的交互式 Redis 终端。为此,请导航到Redli GitHub 项目上的发布页面并找到最新发布的资产表。在撰写本文时,这将是版本0.5.2。
在那里,找到以linux_amd64.tar.gz
. 此链接指向一个称为tarball的存档文件,解压缩后会在您的系统上创建一些文件。右键单击此链接并选择复制链接地址(此选项可能因您的 Web 浏览器而异)。
在您的服务器上,移动到您可以写入的目录:
- cd /tmp
然后,将链接粘贴到以下wget
命令中,替换突出显示的 URL。此命令会将文件下载到您的服务器:
- wget https://github.com/IBM-Cloud/redli/releases/download/v0.5.2/redli_0.5.2_linux_amd64.tar.gz
将文件下载到您的服务器后,解压缩 tarball:
- tar xvf redli_0.5.2_linux_amd64.tar.gz
这将在您的服务器上创建以下文件:
OutputLICENSE.txt
README.md
redli
该redli
文件是 Redli二进制文件。将其移动到/usr/local/bin
目录,即 Ubuntu 查找可执行文件的位置:
sudo mv redli /usr/local/bin/
此时,您可以稍微清理一下系统并删除 tarball:
- rm redli_0.5.2_linux_amd64.tar.gz
现在您可以使用 Redli 连接到您的托管 Redis 实例。您可以通过运行redli
后跟这些标志的命令来实现:
-h
,要连接的主机。这可以是主机名或 IP 地址-a
,用于向 Redis 实例进行身份验证的密码-p
,要连接的端口
包含这些标志后,redli
语法如下。请注意,此示例还包含该--tls
选项,该选项允许您通过 TLS/SSL 连接到托管 Redis 数据库,而无需隧道:
- redli --tls -h host -a password -p port
Redli 的一个好处redis-cli
是它了解rediss
协议,该协议用于指定指向 Redis 数据库的 URI。这允许您使用连接字符串访问您的数据库:
- redli --tls -u rediss://user:password@host:port
请注意,此示例包含-u
标志,该标志指定以下参数将是连接 URI。
如果您要连接到 DigitalOcean 托管数据库,您可以在云控制面板中找到所有这些连接信息。点击数据库在左侧边栏菜单,然后单击要连接到和向下滚动,找到对数据库连接细节部分。从那里,您执行以下操作之一:
- 选择连接参数选项并将相关字段分别复制到
redli
前面详述的语法中 - 选择连接字符串选项并复制一个现成的连接 URI,您可以将其与上面概述的连接字符串语法一起使用
- 选择Flags选项并复制一个随时可用的
redli
命令,您可以将其粘贴到终端中以建立连接
之后,您可以开始与托管的 Redis 实例进行交互。有关如何使用 Redis 的更多信息,请查看我们关于如何管理 Redis 数据库的系列备忘单。
连接到托管 MongoDB 数据库
当您在本地设置 MongoDB 服务器时,它会随包一起安装,该包提供称为mongo
shell的程序。该mongo
外壳是一个基于JavaScript的shell界面,你可以用它来管理和交互与蒙戈数据。
您可以mongo
通过mongodb
从默认 Ubuntu 存储库下载并安装软件包来安装shell 以及完整的 MongoDB 服务器。但是,在撰写本文时,默认 APT 存储库中可用的 MongoDB 版本为3.6.1版。此版本与撰写本文时的最新稳定版本4.4.6显着不同。
通常,旧版本的mongo
shell 仍可与较新版本的 MongoDB 服务器一起使用,但这种版本不匹配可能会导致某些命令出现问题,而这些命令仅在较新版本中可用。
DigitalOcean Managed MongoDB Databases 运行Mongo 4.4版,其他提供托管 Mongo 数据库即服务的云供应商通常也只提供比3.6版更新的版本。如果您使用的是 DigitalOcean 托管 MongoDB 数据库或任何运行比默认 Ubuntu 存储库中可用版本更新的版本的托管 MongoDB 数据库,则建议您安装匹配版本的mongo
shell。
获取最新版本的mongo
shell 软件的一种方法是将 MongoDB 的专用包存储库添加到您的 APT 源。为此,首先通过运行以下命令导入最新稳定版 MongoDB 的公共 GPG 密钥。如果您打算使用4.4以外的 MongoDB 版本,请务必更改4.4
此命令的 URL 部分以与您要安装的版本保持一致:
- curl -fsSL https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
cURL 是一个命令行工具,可用于许多用于传输数据的操作系统。它读取存储在传递给它的 URL 中的任何数据,并将内容打印到系统的输出。在前面的示例中,cURL 打印 GPG 密钥文件的内容,然后将其通过管道传输到后续sudo apt-key add -
命令中,从而将 GPG 密钥添加到您的受信任密钥列表中。
另外,请注意,此curl
命令使用的选项-fsSL
一起实质上是告诉 cURL 静默失败。这意味着如果由于某种原因 cURL 无法联系 GPG 服务器或 GPG 服务器关闭,它不会意外地将生成的错误代码添加到您的受信任密钥列表中。
OK
如果密钥添加成功,此命令将返回:
OutputOK
如果您想仔细检查是否正确添加了密钥,可以使用以下命令执行此操作:
- apt-key list
这将在输出中的某处返回 MongoDB 键:
Output/etc/apt/trusted.gpg
--------------------
pub rsa4096 2019-05-28 [SC] [expires: 2024-05-26]
2069 1EEC 3521 6C63 CAF6 6CE1 6564 08E3 90CF B1F5
uid [ unknown] MongoDB 4.4 Release Signing Key <[email protected]>
. . .
此时,您的 APT 安装仍然不知道在哪里可以找到安装最新版本mongo
shell所需的包。
在您的服务器上有两个位置,APT 会在其中查找要下载和安装的软件包的在线源:sources.list
文件和sources.list.d
目录。 sources.list
是一个文件,列出了 APT 数据的活动源,每行一个源,最喜欢的源首先列出。该sources.list.d
目录允许您将此类sources.list
条目添加为单独的文件。
运行以下命令,这将在sources.list.d
名为的目录中创建一个文件mongodb-org-4.4.list
。该文件中唯一的内容是一行阅读deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse
:
- 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
因为这个文件在/etc/apt/sources.list.d/
目录中,所以 APT 知道在搜索包时读取它。该文件中的单行告诉 APT 在远程存储库中查找包需要知道什么:
deb
:这意味着源条目引用了常规的 Debian 架构。在其他情况下,该行的这一部分可能为deb-src
,这意味着源条目代表 Debian 发行版的源代码。[ arch=amd64,arm64 ]
:这指定了 APT 数据应该下载到哪些架构。在这种情况下,它指定了amd64
和arm64
体系结构。https://repo.mongodb.org/apt/ubuntu
:这是一个 URI,表示可以找到 APT 数据的位置。在这种情况下,URI 指向官方 MongoDB 存储库所在的 HTTPS 地址。bionic/mongodb-org/4.4
:Ubuntu 存储库可以包含多个不同的版本。这指定您只需要可用于Ubuntu 发行版4.4
的mongodb-org
软件包bionic
版本(“Bionic Beaver”是 Ubuntu 18.04 的代号)。multiverse
:这部分将 APT 指向四个 Ubuntu 存储库类别或组件之一。在这种情况下,它指向multiverse
component。
运行此命令后,更新服务器的本地包索引,以便 APT 知道在哪里可以找到安装mongo
shell的包:
- sudo apt update
之后,您可以安装mongodb-org-shell
软件包以安装mongo
外壳:
- sudo apt install mongodb-org-shell
安装后,您可以使用mongo
shell 连接到托管的 MongoDB 实例。执行此操作的一种方法是调用该mongo
命令并在其后使用连接 URI 作为参数。不过,请务必注意,如果您使用连接 URI 访问托管 MongoDB 实例,则必须将连接字符串括在引号中,如下例所示:
- mongo "mongodb://username:password@managed_db_hostname_or_URL:port/connection_options"
此示例 MongoDB 连接 URI 包含以下元素:
mongodb://
: 此前缀指定其后的元素遵循 MongoDB 的连接 URI 格式username
:您的 MongoDB 用户名password
:您的 MongoDB 用户密码managed_db_hostname_or_URL
:可以访问 MongoDB 数据库的主机port
:运行托管 MongoDB 实例的端口号。仅当您的数据库在 Mongo 默认端口以外的端口上运行时才需要包含此项,27017
connection_options
:附加连接选项
此外,一些云提供商(包括 DigitalOcean)要求您使用加密的 TLS 连接连接到托管的 MongoDB 数据库。为此,您必须在您的连接 URI--tls
后面跟一个选项——它告诉 MongoDB 客户端使用 TLS 加密连接到托管数据库——以及--tlsCAFile
必须跟一个指向有效 CA 证书的文件路径的选项。
包含这些附加选项后,mongo
语法如下所示:
- mongo "mongodb://username:password@managed_db_hostname_or_URL:port/connection_options" --tls --tlsCAFile /path/to/CA/file
如果您从 DigitalOcean 连接到托管 MongoDB 数据库,您可以在云控制面板中找到所有这些连接信息。点击数据库在左侧边栏菜单,然后单击要连接到和向下滚动,找到了Mongo的数据库连接细节部分。从那里,您执行以下操作之一:
- 选择连接参数选项并将相关字段分别复制到
mongo
前面详述的语法中 - 选择连接字符串选项并复制一个现成的连接 URI,您可以将其与前面概述的连接字符串语法一起使用
- 选择Flags选项并复制一个随时可用的
mongo
命令,您可以将其粘贴到终端中以建立连接
您还必须将托管 MongoDB 数据库的 CA 证书添加到要连接的计算机。为此,请单击“连接详细信息”部分中的⤓ 下载 CA 证书链接,这会将证书下载到您的本地计算机。如果要从虚拟专用服务器连接到数据库,则可以使用以下工具将证书传输到服务器:scp
- scp ~/local/path/to/CA/certificate sammy@your_server_ip
从您用来连接到托管 MongoDB 数据库的任何机器上,按照上一个示例中概述的带有--tls
选项、--tlsCAFile
选项和 CA 证书文件路径的连接 URI 。
之后,您可以开始与托管的 MongoDB 实例进行交互。有关如何使用 Mongo 的更多信息,我们鼓励您查看我们完整的 MongoDB 相关内容集合。
结论
作为云服务中相对较新的发展,许多以自我管理的数据库而闻名的实践并未广泛或全面地记录在云提供商管理的数据库中。这些做法中最基本的一种做法,即访问数据库,对于刚开始使用托管数据库的人来说可能不会立即清楚。本教程的目标是帮助您开始使用托管数据库来存储数据。
有关使用数据库的更多信息,我们鼓励您查看我们的各种数据库相关内容,包括直接针对PostgreSQL、MySQL、Redis和MongoDB 的教程。
要了解有关 DigitalOcean 托管数据库的更多信息,请查看我们的托管数据库产品文档。