序章

管理対象データベースには、自動更新、簡素化されたスケーリング、高可用性など、自己管理型データベースに比べて多くの利点があります。 管理対象データベースの操作に慣れていない場合、データベースへの接続など、特定のタスクを実行するための最良の方法は自明ではない場合があります。

このガイドでは、 PostgreSQL MySQL Redis MongoDB [などのさまざまなデータベース管理システム(DBMS)用のクライアントプログラムをインストールする方法の概要を説明します。 X184X] —Ubuntu18.04サーバー上。 また、これらのプログラムを使用して管理対象データベースインスタンスに接続する方法についても説明します。

注:このガイドで概説されている手順は、 DigitalOceanマネージドデータベースでテストされていますが、通常、クラウドプロバイダーのマネージドデータベースで機能するはずです。 ただし、別のプロバイダーからプロビジョニングされたデータベースへの接続で問題が発生した場合は、そのプロバイダーのドキュメントを参照してください。

前提条件

このガイドで詳しく説明されている手順に従うには、次のものが必要です。

  • Ubuntu18.04を実行しているサーバーへのアクセス。 このサーバーには、管理者権限を持つroot以外のユーザーと、で構成されたファイアウォールが必要です。 ufw. これを設定するには、 Ubuntu18.04の初期サーバーセットアップガイドに従ってください。
  • 管理対象データベースインスタンス。 このチュートリアルでは、さまざまなデータベース管理システム、特にPostgreSQL、MySQL、Redis、MongoDBに接続する方法について説明します。 DigitalOceanマネージドデータベースをプロビジョニングするには、選択したDBMSのドキュメントを確認してください。
  • PostgreSQL

これらの前提条件が整ったら、データベース管理システム(DBMS)に対応するセクションにジャンプします。

マネージドPostgreSQLデータベースへの接続

マネージドPostgreSQLデータベースに接続するには、次を使用できます。 psql、Postgresの標準コマンドラインクライアント。 これはオープンソースであり、PostgreSQL開発グループによって維持されており、通常、PostgreSQLサーバーをインストールするときに含まれます。

インストールできます psql をインストールすることによってそれ自体で postgresql-client パッケージにはAPTが含まれていますが、デフォルトのUbuntu 18.04リポジトリからインストールすると、バージョン10がインストールされます。 psql、PostgreSQLの最新のメジャーバージョンはバージョン13です。 一部のマネージドデータベースプロバイダーは、データベースで使用するPostgreSQLのバージョンにさまざまなオプションを提供しています。 この記事の執筆時点で、DigitalOceanは、マネージドPostgreSQLデータベース用にバージョン10から13を提供しています。

一般的に、あなたはまだのバージョンを使用することができます psql データベースのバージョンと一致しません。 ただし、 psql Postgresデータベースのバージョンよりも古い場合、新しいバージョンのデータベースに含まれている特定の機能を使用できない場合があります。

特定のバージョンのをインストールする1つの方法 psql クライアントは、公式のPostgreSQLAPTリポジトリをコンピュータのAPTリソースのリストに追加します。 これを行うには、最初に次のcURLコマンドを実行してリポジトリの署名キーをインポートします。

cURLは、データの転送に使用される多くのオペレーティングシステムで使用できるコマンドラインツールです。 渡されたURLに保存されているデータをすべて読み取り、その内容をシステムの出力に出力します。 次の例では、cURLはGPGキーファイルのコンテンツを出力し、それを次のファイルにパイプします sudo apt-key add - コマンドを実行し、GPGキーを信頼できるキーのリストに追加します。

また、これに注意してください curl コマンドはオプションを使用します -fsSL これは一緒になって、本質的にcURLにサイレントに失敗するように指示します。 これは、何らかの理由でcURLがGPGサーバーに接続できない場合、またはGPGサーバーがダウンしている場合でも、結果のエラーコードが信頼できるキーのリストに誤って追加されないことを意味します。

  1. curl -fsSL https://www.postgresql.org/media/keys/ACCC4CF8.asc | sudo apt-key add -

このコマンドは OK キーが正常に追加された場合:

Output
OK

キーが正しく追加されたことを再確認する場合は、次のコマンドを使用して行うことができます。

  1. 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がダウンロードおよびインストールするパッケージのオンラインソースを探す場所は2つあります。 sources.list ファイルと sources.list.d ディレクトリ。どちらも /etc/apt/ ディレクトリ。 sources.list は、APTデータのアクティブなソースを一覧表示するファイルで、1行に1つのソースがリストされ、最も優先されるソースが最初に一覧表示されます。 The sources.list.d ディレクトリはあなたがそのようなものを追加することを可能にします sources.list 個別のファイルとしてのエントリ。

次のコマンドを実行します。これにより、ファイルが作成されます。 sources.list.d 名前の付いたディレクトリ pdgd.list. このファイルの唯一の内容は、1行の読み取りです deb https://apt.postgresql.org/pub/repos/apt bionic-pgdg main:

  1. echo "deb https://apt.postgresql.org/pub/repos/apt bionic-pgdg main" | sudo tee /etc/apt/sources.list.d/pgdg.list

この1行は、ソースが何であるか、およびソースがどこにあるかについて知る必要があるすべてをAPTに伝えます。

  • deb:これは、ソースエントリが通常のDebianアーキテクチャを参照していることを意味します。 その他の場合、行のこの部分は次のようになります。 deb-src、これは、ソースエントリがDebianディストリビューションのソースコードを表すことを意味します。
  • https://apt.postgresql.org/pub/repos/apt:これは、APTデータを見つけることができる場所を指すURIです。 この場合、URIは公式のPostgreSQLリポジトリが配置されているHTTPSアドレスを指します。
  • bionic-pgdg:Ubuntuリポジトリには、複数のリリースのパッケージを含めることができます。 行のこの部分は、APTがファイルをダウンロードする必要があることを指定します。 bionic Ubuntuのリリース(「BionicBeaver」はUbuntu 18.04のコードネームです)。 また、このリポジトリは追加することに注意してください -pgdg (「PostgreSQLグローバル開発グループ」の略)すべてのリリース名の最後まで。
  • main:この部分は、APTが4つのUbuntuリポジトリコンポーネントの1つを指していることを示しています。 この場合は、メインコンポーネントを指しています。

このコマンドを実行した後、サーバーのローカルパッケージインデックスを更新して、APTがインストールするパッケージの場所を認識できるようにします。 psql シェル:

  1. sudo apt update

マシンのローカルパッケージインデックスを更新すると、選択したバージョンの psql. を提供するパッケージ psql クライアントはすべて postgresql-client、したがって、次のコマンドを実行することにより、それらすべてに関する情報を見つけることができます。

  1. apt-cache search postgresql-client

これにより、名前に含まれる利用可能なすべてのパッケージのリストが返されます。 postgresql-client、およびそれぞれの簡単な説明:

Output
postgresql-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をインストールします。

  1. sudo apt install postgresql-client-13

APTは、パッケージをインストールすることを確認するように求めます。 を押してそうします ENTER.

その操作がインストールを完了すると、それ以上の構成を必要とせずに、管理対象のPostgresデータベースに接続できます。 そうするために、あなたは呼び出すかもしれません psql 次のフラグを使用します。

  • -U、接続するPostgreSQLユーザー
  • -h、管理対象データベースのホスト名またはIPアドレス
  • -p、管理対象データベースが接続をリッスンしているTCPポート
  • -d、接続する特定のデータベース
  • --set、他の接続変数および変数の値の前にあります。 たとえば、接続時にデータベースのCA証明書を検証する場合は、次のようにします。 --set=sslmode=require あなたのコマンドで
  • -Wpsql PostgreSQLユーザーのパスワードの入力を求めるプロンプトが表示されます。 あなたが先行することができることに注意してください psql でコマンド PGPASSWORD=password、ただし、コマンドラインにパスワードを含めない方が一般的に安全であると考えられています

これらのフラグが含まれていると、 psql コマンドの構文は次のようになります。

  1. psql -U user -h host -p port -d database --set=variable=value -W

または、管理対象データベースプロバイダーが接続用の URI(URI)を提供している場合は、次の構文を使用できます。

  1. psql postgresql://username:password@host:port/database?option_1=value&option_n=value

DigitalOceanマネージドPostgreSQLデータベースに接続している場合、この接続情報はすべてクラウドコントロールパネルにあります。 左側のサイドバーメニューでデータベースをクリックし、接続するデータベースをクリックして下にスクロールし、接続の詳細セクションを見つけます。 そこから、次のいずれかを実行します。

  • 接続パラメータオプションを選択し、関連するフィールドを個別ににコピーします。 psql 前に詳述した構文
  • 接続文字列オプションを選択し、上記の接続URI構文に貼り付けることができる既製の接続URIをコピーします
  • Flags オプションを選択し、すぐに使用できるものをコピーします psql ターミナルに貼り付けて接続できるコマンド

これで、マネージドPostgreSQLインスタンスの使用を開始する準備が整いました。 PostgreSQLとの対話方法の詳細については、SQLデータベースの管理方法に関するガイドに従ってください。 PostgreSQLのクエリの概要も役立つ場合があります。

マネージドMySQLデータベースへの接続

管理対象のMySQLデータベースにアクセスするには、接続を計画しているマシンにMySQLクライアントをインストールする必要があります。 を使用して接続することが可能です mysql MySQLコマンドラインクライアントによって提供されるコマンドですが、このコマンドは接続文字列をサポートしていません。 接続方法の柔軟性を高めるために、代わりに mysqlsh 公式のMySQLShell を使用できるコマンド。これにより、フラグまたは接続URIのいずれかで自由に接続できるようになります。

DigitalOceanマネージドMySQLデータベースにアクセスするには、MySQLシェルのバージョン8.0以降をインストールする必要があります。 これを行うには、インストールする前に、まずMySQLソフトウェアリポジトリを追加する必要があります。 mysql-shell パッケージ。

WebブラウザでMySQLAPTリポジトリページに移動することから始めます。 右下隅にあるダウンロードボタンを見つけて、クリックして次のページに進みます。 このページでは、OracleWebアカウントにログインまたはサインアップするように求められます。 それをスキップして、代わりにというリンクを探すことができます。いいえ、ダウンロードを開始してください。 リンクを右クリックして、リンクアドレスのコピーを選択します(このオプションは、ブラウザによって異なる表現になる場合があります)。

これで、ファイルをダウンロードする準備が整いました。 サーバー上で、書き込み可能なディレクトリに移動します。 /tmp/ Linuxシステムにある一時ディレクトリであり、通常はデフォルトで普遍的に書き込み可能です。

  1. cd /tmp

を使用してファイルをダウンロードします curl、次のコマンドの強調表示された部分の代わりに、コピーしたばかりのアドレスを貼り付けることを忘れないでください。 また、2つのコマンドラインフラグをに渡す必要があります curl. -O 指示する curl 標準出力の代わりにファイルに出力します。 The L フラグは curl HTTPリダイレクトに従います。これは、ファイルがダウンロードされる前に、コピーしたアドレスが実際には別の場所にリダイレクトされるため、この場合に必要です。

  1. curl -OL https://dev.mysql.com/get/mysql-apt-config_0.8.17-1_all.deb

このコマンドは、ファイルを現在の作業ディレクトリにダウンロードします。 次のことを確認するためにファイルをリストします。

  1. ls

このコマンドは、新しくダウンロードされたファイルを一覧表示します。

Output
mysql-apt-config_0.8.17-1_all.deb . . .

これで、MySQLAPTリポジトリをシステムのリポジトリリストに追加できます。 The dpkg コマンドは、インストール、削除、および検査に使用されます .deb ソフトウェアパッケージ。 次のコマンドには、 -i 指定されたファイルからインストールすることを示すフラグ:

  1. sudo dpkg -i mysql-apt-config*

インストール中に、希望するMySQLのバージョンを指定できる構成画面と、他のMySQL関連ツールのリポジトリをインストールするオプションが表示されます。 デフォルトでは、MySQLの最新の安定バージョンのリポジトリ情報のみが追加されます。 これが私たちが望むものなので、下矢印を使用してに移動します Ok メニューオプションとヒット ENTER.

その後、パッケージはリポジトリの追加を終了します。 更新する apt 新しいソフトウェアパッケージを利用可能にするためのパッケージキャッシュ:

  1. sudo apt update

次に、システムを少しクリーンアップして、ダウンロードしたファイルを削除できます。これは、今後必要なくなるためです。 これは厳密には必要ありません。 /tmp/ ディレクトリは10日後に自動的に削除されますが、次のコマンドでファイルを削除できます。

  1. rm mysql-apt-config*

注:これらのリポジトリの構成を更新する必要がある場合は、次のコマンドを実行して新しいオプションを選択してください。

  1. sudo dpkg-reconfigure mysql-apt-config

新しいオプションを選択した後、次のコマンドを実行してパッケージキャッシュを更新します。

  1. sudo apt update

MySQLリポジトリを追加したので、実際のMySQLShellソフトウェアをインストールする準備が整いました。 次のようにしてください apt 指図:

  1. sudo apt install mysql-shell

そのコマンドが終了したら、ソフトウェアのバージョン番号をチェックして、最新のリリースであることを確認します。

  1. mysqlsh --version
Output
mysqlsh 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の3つのモードのいずれかで開きます。 SQLモードでは、SQLを使用してデータのクエリと操作を行ったり、データベース、テーブル、グループなど、データの保存と管理に必要なものを作成したりできるセッションが開きます。 JavaScriptモードとPythonモードでは、それぞれの言語で使用可能な関数を使用して、多数のセッションオブジェクトを作成できます。 これにより、同じMySQLシェルインスタンスから複数のMySQLサーバーインスタンスを使用できます。

MySQL Shellは、デフォルトでJavaScriptモードでセッションを開きます。 したがって、MySQLコマンドラインクライアントで通常行うようにSQLクエリを実行する場合は、を指定する必要があります。 --sql SQLモードで接続を確立するオプション。

これらのフラグを使用して、 mysqlsh 構文は次のようになります。

  1. mysqlsh -u user -p -h host -P port -D database --sql

または、接続に使用できる接続URIがある場合は、次のような構文を使用します。

  1. mysqlsh --sql mysql://user:password@host:port/database?option_1=value&option_n=value

DigitalOceanマネージドデータベースに接続している場合、この接続情報はすべてクラウドコントロールパネルにあります。 左側のサイドバーメニューでデータベースをクリックし、接続するデータベースをクリックして下にスクロールし、接続の詳細セクションを見つけます。 そこから、次のいずれかを実行します。

  • 接続パラメータオプションを選択し、関連するフィールドを個別ににコピーします。 mysqlsh 前に概説した構文
  • 接続文字列オプションを選択し、上記の接続文字列コマンドに貼り付けることができる既製の接続URIをコピーします

これで、マネージドMySQLインスタンスの使用を開始する準備が整いました。

MySQL Shellを初めて使用する場合は、接続を閉じるために、 exit 他のMySQLクライアントで使用されているコマンドは機能しません。 代わりに、を実行できます \q ショートカット:

  1. \q
Output
Bye!

MySQLとの対話方法の詳細については、SQLデータベースの管理方法に関するガイドを読むことをお勧めします。 また、MySQLのクエリの概要が役立つ場合があります。

MySQL8でのパスワード認証に関する注意

MySQL 8.0以降では、デフォルトの認証プラグインは caching_sha2_password. ただし、この記事の執筆時点では、PHPはサポートしていません caching_sha2_password. 管理対象のMySQLデータベースをWordPressやphpMyAdminなどのPHPを使用するアプリケーションで使用する場合、アプリケーションがデータベースに接続しようとしたときに問題が発生する可能性があります。

データベースの構成ファイルにアクセスできる場合は、PHPでサポートされている認証プラグインを使用するように強制する設定を追加できます。たとえば、 mysql_native_password —デフォルト:

MySQL構成ファイルの例
[mysqld]
default-authentication-plugin=mysql_native_password

ただし、DigitalOceanを含む一部のマネージドデータベースプロバイダーは、データベース構成ファイルをエンドユーザーが利用できるようにしません。 この場合、データベースに接続して、 ALTER USER データベースに接続する必要があるが、データベースに接続できない既存のMySQLユーザー用のコマンド caching_sha2_password プラグイン:

  1. ALTER USER user IDENTIFIED WITH mysql_native_password BY 'password';

もちろん、認証する新しいユーザーを設定することもできます mysql_native_password それぞれのプラグインを指定することによって CREATE USER ステートメント:

  1. 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データベースの場合、オープンソースのインタラクティブなRedisターミナルであるRedliをインストールすることをお勧めします。 これを行うには、Redli GitHubプロジェクトのリリースページに移動し、最新リリースのAssetsテーブルを見つけます。 この記事の執筆時点では、これはバージョン0.5.2になります。

そこで、で終わるファイルのリンクを見つけます linux_amd64.tar.gz. このリンクは、 tarball と呼ばれるアーカイブファイルを指しており、解凍すると、システム上にいくつかのファイルが作成されます。 このリンクを右クリックして、リンクアドレスのコピーを選択します(このオプションは、Webブラウザによって異なる場合があります)。

サーバーで、書き込み可能なディレクトリに移動します。

  1. cd /tmp

次に、リンクを次の場所に貼り付けます wget コマンド、強調表示されたURLを置き換えます。 このコマンドは、ファイルをサーバーにダウンロードします。

  1. wget https://github.com/IBM-Cloud/redli/releases/download/v0.5.2/redli_0.5.2_linux_amd64.tar.gz

ファイルがサーバーにダウンロードされたら、tarballを抽出します。

  1. tar xvf redli_0.5.2_linux_amd64.tar.gz

これにより、サーバー上に次のファイルが作成されます。

Output
LICENSE.txt README.md redli

The redli ファイルはRedliバイナリファイルです。 に移動します /usr/local/bin ディレクトリ、Ubuntuが実行可能ファイルを探す場所:

sudo mv redli /usr/local/bin/

この時点で、システムを少しクリーンアップしてtarballを削除できます。

  1. rm redli_0.5.2_linux_amd64.tar.gz

これで、Redliを使用してマネージドRedisインスタンスに接続できます。 あなたはを実行することによってそうすることができます redli コマンドの後にこれらのフラグが続きます。

  • -h、接続するホスト。 これは、ホスト名またはIPアドレスのいずれかです。
  • -a、Redisインスタンスへの認証に使用されるパスワード
  • -p、接続するポート

これらのフラグが含まれていると、 redli 構文は次のようになります。 この例には、 --tls オプション。トンネルを必要とせずに、TLS/SSLを介してマネージドRedisデータベースに接続できます。

  1. redli --tls -h host -a password -p port

Redliが持つ1つの利点 redis-cli それが理解しているということです rediss プロトコル。Redisデータベースを指すURIを指定するために使用されます。 これにより、接続文字列を使用してデータベースにアクセスできます。

  1. redli --tls -u rediss://user:password@host:port

この例には、 -u フラグ。次の引数が接続URIになることを指定します。

DigitalOceanマネージドデータベースに接続している場合、この接続情報はすべてクラウドコントロールパネルにあります。 左側のサイドバーメニューでデータベースをクリックし、接続するデータベースをクリックして下にスクロールし、接続の詳細セクションを見つけます。 そこから、次のいずれかを実行します。

  • 接続パラメータオプションを選択し、関連するフィールドを個別ににコピーします。 redli 前に詳述した構文
  • 接続文字列オプションを選択し、上記の接続文字列構文で使用できる既製の接続URIをコピーします
  • Flags オプションを選択し、すぐに使用できるものをコピーします redli ターミナルに貼り付けて接続できるコマンド

その後、マネージドRedisインスタンスとの対話を開始できます。 Redisの操作方法の詳細については、Redisデータベースの管理方法に関する一連のチートシートを確認してください。

マネージドMongoDBデータベースへの接続

MongoDBサーバーをローカルにセットアップすると、MongoDBサーバーは、と呼ばれるプログラムを提供するパッケージと一緒にインストールされます。 mongo シェル。 The mongo shellはJavaScriptベースのシェルインターフェースであり、Mongoデータの管理と操作に使用できます。

あなたはインストールすることができます mongo シェル、および完全なMongoDBサーバーをダウンロードしてインストールすることにより、 mongodb デフォルトのUbuntuリポジトリからのパッケージ。 ただし、この記事の執筆時点では、デフォルトのAPTリポジトリから利用できるMongoDBのバージョンはバージョン3.6.1です。 このリリースは、この記事の執筆時点での最新の安定版リリースであるバージョン4.4.6とは大幅に異なります。

一般的に、古いバージョンの mongo シェルは引き続き新しいバージョンのMongoDBサーバーで動作しますが、そのようなバージョンの不一致により、新しいリリースでのみ使用可能な特定のコマンドで問題が発生する可能性があります。

DigitalOceanマネージドMongoDBデータベースはMongoのバージョン4.4を実行し、マネージドMongoデータベースをサービスとして提供する他のクラウドベンダーも通常、バージョン3.6よりも新しいリリースのみを提供します。 DigitalOceanマネージドMongoDBデータベース、またはデフォルトのUbuntuリポジトリで利用可能なものよりも新しいバージョンを実行するマネージドMongoDBデータベースを使用している場合は、一致するバージョンの mongo シェル。

最新バージョンを入手する1つの方法 mongo シェルソフトウェアは、MongoDBの専用パッケージリポジトリをAPTソースに追加することです。 これを行うには、次のコマンドを実行して、MongoDBの最新の安定バージョンの公開GPGキーをインポートすることから始めます。 4.4 以外のバージョンのMongoDBを使用する場合は、必ず変更してください 4.4 このコマンドのURL部分で、インストールするバージョンに合わせます。

  1. 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 キーが正常に追加された場合:

Output
OK

キーが正しく追加されたことを再確認する場合は、次のコマンドを使用して行うことができます。

  1. 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 シェル。

サーバー上で、APTがダウンロードおよびインストールするパッケージのオンラインソースを探す場所は2つあります。 sources.list ファイルと sources.list.d ディレクトリ。 sources.list は、APTデータのアクティブなソースを一覧表示するファイルで、1行に1つのソースがリストされ、最も優先されるソースが最初に一覧表示されます。 The sources.list.d ディレクトリはあなたがそのようなものを追加することを可能にします sources.list 個別のファイルとしてのエントリ。

次のコマンドを実行します。これにより、ファイルが作成されます。 sources.list.d 名前の付いたディレクトリ mongodb-org-4.4.list. このファイルの唯一の内容は、1行の読み取りです deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.4 multiverse:

  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

このファイルは /etc/apt/sources.list.d/ ディレクトリ、APTは、パッケージを検索するときはいつでもそれを読み取ることを知っています。 このファイルの1行は、リモートリポジトリでパッケージを見つけるために知っておくべきことをAPTに伝えます。

  • deb:これは、ソースエントリが通常のDebianアーキテクチャを参照していることを意味します。 その他の場合、行のこの部分は次のようになります。 deb-src、これは、ソースエントリがDebianディストリビューションのソースコードを表すことを意味します。
  • [ arch=amd64,arm64 ]:これは、APTデータをダウンロードするアーキテクチャを指定します。 この場合、それは指定します amd64arm64 アーキテクチャ。
  • https://repo.mongodb.org/apt/ubuntu:これは、APTデータを見つけることができる場所を表すURIです。 この場合、URIは公式のMongoDBリポジトリが配置されているHTTPSアドレスを指します。
  • bionic/mongodb-org/4.4:Ubuntuリポジトリにはいくつかの異なるリリースを含めることができます。 これは、バージョンのみが必要であることを指定します 4.4mongodb-org 利用可能なパッケージ bionic Ubuntuのリリース(「BionicBeaver」はUbuntu 18.04のコードネームです)。
  • multiverse:この部分は、APTが4つのUbuntuリポジトリカテゴリまたはコンポーネントの1つを指していることを示しています。 この場合、それはマルチバースコンポーネントを指しています。

このコマンドを実行した後、サーバーのローカルパッケージインデックスを更新して、APTがインストールするパッケージの場所を認識できるようにします。 mongo シェル:

  1. sudo apt update

その後、をインストールすることができます mongodb-org-shell インストールするパッケージ mongo シェル:

  1. sudo apt install mongodb-org-shell

インストールすると、 mongo 管理対象のMongoDBインスタンスに接続するためのシェル。 これを行う1つの方法は、 mongo コマンドを実行し、引数として接続URIを指定します。 ただし、接続URIを使用してマネージドMongoDBインスタンスにアクセスする場合は、次の例のように接続文字列を引用符で囲む必要があることに注意してください。

  1. 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 オプション— TLS暗号化を使用して管理対象データベースに接続するようにMongoDBクライアントに指示します—および --tlsCAFile 有効なCA証明書を指すファイルパスが後に続く必要があるオプション。

これらの追加オプションが含まれていると、 mongo 構文は次のようになります。

  1. 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:

  1. scp ~/local/path/to/CA/certificate sammy@your_server_ip

マネージドMongoDBデータベースへの接続に使用するマシンから、接続URIに従って --tls オプション、 --tlsCAFile オプション、および前の例で概説したCA証明書のファイルパス。

その後、マネージドMongoDBインスタンスとの対話を開始できます。 Mongoの操作方法の詳細については、MongoDB関連コンテンツの完全なコレクションを確認することをお勧めします。

結論

クラウドサービスの比較的新しい開発として、自己管理データベースでよく知られている多くのプラクティスは、クラウドプロバイダーによって管理されるデータベースについて広くまたは包括的に文書化されていません。 これらのプラクティスの最も基本的なものの1つであるデータベースへのアクセスは、管理対象データベースの操作に不慣れな人にはすぐにはわからない場合があります。 このチュートリアルの目標は、データの保存にマネージドデータベースの使用を開始するときに役立つことです。

データベースの操作の詳細については、 PostgreSQL MySQL 、[ X205X] Redis 、およびMongoDB

DigitalOceanマネージドデータベースの詳細については、マネージドデータベースの製品ドキュメントをご覧ください。