序章

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

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

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

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

psqlクライアントの特定のバージョンをインストールする1つの方法は、公式の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ディレクトリで、どちらも[にあります。 X194X]ディレクトリ。 sources.listは、APTデータのアクティブなソースをリストするファイルで、1行に1つのソースがあり、最も優先されるソースが最初にリストされています。 sources.list.dディレクトリでは、このようなsources.listエントリを個別のファイルとして追加できます。

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

  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がUbuntuのbionicリリースからのみファイルをダウンロードする必要があることを指定しています(「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を含めます。
  • -Wは、psqlに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コマンドを使用することをお勧めします。これにより、公式の MySQL Shell を使用できるようになります。これにより、フラグまたは接続URI。

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

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

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

  1. cd /tmp

curlを使用してファイルをダウンロードします。次のコマンドで強調表示されている部分の代わりに、コピーしたばかりのアドレスを貼り付けることを忘れないでください。 また、2つのコマンドラインフラグをcurlに渡す必要があります。 -Oは、curlに標準出力ではなくファイルに出力するように指示します。 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リポジトリをシステムのリポジトリリストに追加できます。 dpkgコマンドは、.debソフトウェアパッケージのインストール、削除、および検査に使用されます。 次のコマンドには、-iフラグが含まれており、指定されたファイルからインストールすることを示します。

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

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

Selecting mysql-apt-config configuration options

その後、パッケージはリポジトリの追加を終了します。 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シェルを初めて使用する場合は、接続を閉じるために、他のMySQLクライアントで使用されているexitコマンドが機能しないことに注意してください。 代わりに、\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を含む一部のマネージドデータベースプロバイダーは、データベース構成ファイルをエンドユーザーが利用できるようにしません。 この場合、データベースに接続して、データベースに接続する必要がある既存のMySQLユーザーに対してALTER USERコマンドを実行できますが、caching_sha2_passwordプラグインでは実行できません。

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

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

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

DigitalOceanマネージドデータベースを使用している場合、caching_sha2_password以外のプラグインで認証するようにユーザーを構成すると、クラウドコントロールパネルでそのユーザーのパスワードを見つけることができないことに注意してください。 このため、安全な場所でmysql_native_passwordまたは他のプラグインで認証するユーザーのパスワードを書き留めておく必要があります。

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

Redisをローカルにインストールすると、Redisコマンドラインインターフェイスであるredis-cliが付属します。 redis-cliを使用して、リモートのマネージドRedisインスタンスに接続できますが、TLS/SSL接続をネイティブにサポートしていません。 管理対象のRedisインスタンスに安全に接続するようにredis-cliを構成する方法はいくつかありますが(たとえば、 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

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

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がredis-cliより優れている点の1つは、Redisデータベースを指すURIを指定するために使用されるredissプロトコルを理解することです。 これにより、接続文字列を使用してデータベースにアクセスできます。

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

この例には、-uフラグが含まれていることに注意してください。このフラグは、次の引数が接続URIになることを指定します。

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

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

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

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

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

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

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

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

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

  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がダウンロードおよびインストールするパッケージのオンラインソースを探す場所は、sources.listファイルとsources.list.dディレクトリの2つです。 sources.listは、APTデータのアクティブなソースをリストするファイルで、1行に1つのソースがあり、最も優先されるソースが最初にリストされています。 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を読み取る1行です。

  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データをダウンロードするアーキテクチャを指定します。 この場合、amd64およびarm64アーキテクチャを指定します。
  • https://repo.mongodb.org/apt/ubuntu:これはAPTデータを見つけることができる場所を表すURIです。 この場合、URIは公式のMongoDBリポジトリが配置されているHTTPSアドレスを指します。
  • bionic/mongodb-org/4.4:Ubuntuリポジトリにはいくつかの異なるリリースを含めることができます。 これは、Ubuntuのbionicリリースで使用可能なmongodb-orgパッケージのバージョン4.4のみが必要であることを指定します(「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データベースへの接続に使用するマシンから、前の例で概説したように、--tlsオプション、--tlsCAFileオプション、およびCA証明書のファイルパスを使用して接続URIに従います。

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

結論

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

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