Ubuntu18.04で管理対象データベースに接続する方法
序章
管理対象データベースには、自動更新、簡素化されたスケーリング、高可用性など、自己管理型データベースに比べて多くの利点があります。 管理対象データベースの操作に慣れていない場合、データベースへの接続など、特定のタスクを実行するための最良の方法は自明ではない場合があります。
このガイドでは、 PostgreSQL 、 MySQL 、 Redis 、
注:このガイドで概説されている手順は、 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サーバーがダウンしている場合でも、結果のエラーコードが信頼できるキーのリストに誤って追加されないことを意味します。
- 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がダウンロードおよびインストールするパッケージのオンラインソースを探す場所は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
:
- 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
シェル:
- 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
または、管理対象データベースプロバイダーが接続用の
- 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システムにある一時ディレクトリであり、通常はデフォルトで普遍的に書き込み可能です。
- cd /tmp
を使用してファイルをダウンロードします curl
、次のコマンドの強調表示された部分の代わりに、コピーしたばかりのアドレスを貼り付けることを忘れないでください。 また、2つのコマンドラインフラグをに渡す必要があります curl
. -O
指示する curl
標準出力の代わりにファイルに出力します。 The 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
. . .
これで、MySQLAPTリポジトリをシステムのリポジトリリストに追加できます。 The dpkg
コマンドは、インストール、削除、および検査に使用されます .deb
ソフトウェアパッケージ。 次のコマンドには、 -i
指定されたファイルからインストールすることを示すフラグ:
- sudo dpkg -i mysql-apt-config*
インストール中に、希望するMySQLのバージョンを指定できる構成画面と、他のMySQL関連ツールのリポジトリをインストールするオプションが表示されます。 デフォルトでは、MySQLの最新の安定バージョンのリポジトリ情報のみが追加されます。 これが私たちが望むものなので、下矢印を使用してに移動します Ok
メニューオプションとヒット ENTER
.
その後、パッケージはリポジトリの追加を終了します。 更新する apt
新しいソフトウェアパッケージを利用可能にするためのパッケージキャッシュ:
- sudo apt update
次に、システムを少しクリーンアップして、ダウンロードしたファイルを削除できます。これは、今後必要なくなるためです。 これは厳密には必要ありません。 /tmp/
ディレクトリは10日後に自動的に削除されますが、次のコマンドでファイルを削除できます。
- rm mysql-apt-config*
注:これらのリポジトリの構成を更新する必要がある場合は、次のコマンドを実行して新しいオプションを選択してください。
- sudo dpkg-reconfigure mysql-apt-config
新しいオプションを選択した後、次のコマンドを実行してパッケージキャッシュを更新します。
- sudo apt update
MySQLリポジトリを追加したので、実際のMySQLShellソフトウェアをインストールする準備が整いました。 次のようにしてください 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の3つのモードのいずれかで開きます。 SQLモードでは、SQLを使用してデータのクエリと操作を行ったり、データベース、テーブル、グループなど、データの保存と管理に必要なものを作成したりできるセッションが開きます。 JavaScriptモードとPythonモードでは、それぞれの言語で使用可能な関数を使用して、多数のセッションオブジェクトを作成できます。 これにより、同じMySQLシェルインスタンスから複数の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のクエリの概要が役立つ場合があります。
MySQL8でのパスワード認証に関する注意
MySQL 8.0以降では、デフォルトの認証プラグインは caching_sha2_password
. ただし、この記事の執筆時点では、PHPはサポートしていません caching_sha2_password
. 管理対象のMySQLデータベースをWordPressやphpMyAdminなどのPHPを使用するアプリケーションで使用する場合、アプリケーションがデータベースに接続しようとしたときに問題が発生する可能性があります。
データベースの構成ファイルにアクセスできる場合は、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データベースの場合、オープンソースのインタラクティブなRedisターミナルであるRedliをインストールすることをお勧めします。 これを行うには、Redli GitHubプロジェクトのリリースページに移動し、最新リリースのAssetsテーブルを見つけます。 この記事の執筆時点では、これはバージョン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
The 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が持つ1つの利点 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サーバーをローカルにセットアップすると、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部分で、インストールするバージョンに合わせます。
- 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
シェル。
サーバー上で、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
:
- 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リポジトリにはいくつかの異なるリリースを含めることができます。 これは、バージョンのみが必要であることを指定します4.4
のmongodb-org
利用可能なパッケージbionic
Ubuntuのリリース(「BionicBeaver」はUbuntu 18.04のコードネームです)。multiverse
:この部分は、APTが4つのUbuntuリポジトリカテゴリまたはコンポーネントの1つを指していることを示しています。 この場合、それはマルチバースコンポーネントを指しています。
このコマンドを実行した後、サーバーのローカルパッケージインデックスを更新して、APTがインストールするパッケージの場所を認識できるようにします。 mongo
シェル:
- sudo apt update
その後、をインストールすることができます mongodb-org-shell
インストールするパッケージ mongo
シェル:
- sudo apt install mongodb-org-shell
インストールすると、 mongo
管理対象のMongoDBインスタンスに接続するためのシェル。 これを行う1つの方法は、 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
オプション— TLS暗号化を使用して管理対象データベースに接続するようにMongoDBクライアントに指示します—および --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データベースへの接続に使用するマシンから、接続URIに従って --tls
オプション、 --tlsCAFile
オプション、および前の例で概説したCA証明書のファイルパス。
その後、マネージドMongoDBインスタンスとの対話を開始できます。 Mongoの操作方法の詳細については、MongoDB関連コンテンツの完全なコレクションを確認することをお勧めします。
結論
クラウドサービスの比較的新しい開発として、自己管理データベースでよく知られている多くのプラクティスは、クラウドプロバイダーによって管理されるデータベースについて広くまたは包括的に文書化されていません。 これらのプラクティスの最も基本的なものの1つであるデータベースへのアクセスは、管理対象データベースの操作に不慣れな人にはすぐにはわからない場合があります。 このチュートリアルの目標は、データの保存にマネージドデータベースの使用を開始するときに役立つことです。
データベースの操作の詳細については、 PostgreSQL 、 MySQL 、[ X205X] Redis 、およびMongoDB。
DigitalOceanマネージドデータベースの詳細については、マネージドデータベースの製品ドキュメントをご覧ください。