psql による接続
psql を使用して、データベース内で作成されたデータ構造を直接対話およびモニターします。 psql は、照会とパフォーマンスのテストとモニター、スクリプトのインストールと変更、およびその他の管理アクティビティーにも役立ちます。
「 admin 」ユーザーは、「 PostgreSQL 」という事前定義されたロールのメンバーであり pg_monitor。これにより、 PostgreSQL の監視ビューや機能へのアクセスが可能になります。
デフォルトでは、 admin ユーザーには、SQLコマンドで作成したユーザーが作成したオブジェクトに対する権限がありません。
admin を使用してデータベースに接続するには、事前にパスワードを設定しておく必要があります。 詳しくは、管理者パスワードの設定のページを参照してください。
psql のインストール
psql を使用するには、ローカルシステムに PostgreSQL クライアントツールをインストールしてください。 PostgreSQL のダウンロードページから、またはお使いのOSのパッケージマネージャーを使用してインストールできます。
psql の詳細については、『 PostgreSQL 』のドキュメントを参照してください。
PostgreSQL ツールのインストール手順のほとんどは、データベースもインストールすることを前提としています。 クラウドまたはリモート・サーバーで PostgreSQL へのアクセス権限を持たないユーザーを対象にしている場合は、妥当な前提条件です。
以下は、macOS, Linux および Windows にスタンドアロン・ツールとして psql をインストールする手順です。
Homebrew を使用した macOS への psql のインストール
macOSのパッケージ・マネージャーとして Homebrew をお勧めします。 Homebrew を使用すると、通常は /usr/local/bin で使用可能なプログラムを使用して、多数のアプリケーションをインストールできます。 PostgreSQL クライアント・ツール用のホーム・ブリューのパッケージは、 libpq パッケージです。 Brew を使用すると、以下のように簡単にインストールできます。
brew install libpq
ただし、 libpq はそれ自体を /usr/local/bin ディレクトリーにインストールすることはありません。 これを行うには、以下を実行する必要があります。
brew link --force libpq
これにより、 libpq だけでなく、すべてのツールが /usr/local/bin ディレクトリーにシンボリック・リンク (別のファイルまたはフォルダーを指すファイル) されます。
Ubuntu への postgresql-client のインストール
Linux システムは、macOS, とは異なり、パッケージマネージャが組み込まれています。 Ubuntu (および Debian ベースのディストリビューション) では、apt コマンドです。 PostgreSQL クライアントは postgresql-client という名前で配布されています。 インストールするには、次のようなコマンドを実行する:
sudo apt-get install postgresql-client
これでPostgreSQLクライアントがインストールされます。
Red Hat Enterprise Linux への psql のインストール
Red Hat をベースとするディストリビューションについては、『 PostgreSQL 』のインストール手順に従ってください。 PostgreSQL のバージョン、プラットフォーム、アーキテクチャを選択し、リポジトリを設定するコマンドを実行してください。 次に、クライアントパッケージのみをインストールしてください。例えば、
sudo dnf install -y postgresql18 などです。 PostgreSQL サーバーをインストール、初期化、または起動しなくても、デプロイメントに接続できます。
Windows での psql のインストール
Windowsの場合は、エンタープライズDBからのPostgreSQL インストーラを使います。 これはWindows上のPostgreSQLの完全なインストールパッケージですが、psql のようにコマンドラインツールだけをインストールするように設定することもできます。
PostgreSQLとWindowsのバージョンを選択してください。 実行ファイルをダウンロードしたら、それを実行する。 サーバーをインストールする必要がない場合は、Command Line Toolsのみを選択してください。
インストールが終わったら、コマンドプロンプトで psql クライアントを使えるようにWindowsの環境変数を設定する。 「 コントロールパネル 」> 「システムとセキュリティ 」>「 システム 」の順に選択し、「システムの詳細設定」を選択します。 そこから、システムのプロパティというボックスが表示されます。
**「環境変数」**を選択します。 ウィンドウに2つの環境変数が表示される。 一番上の "User variables for... "と書かれたセットで、PATH エントリーを選択し、編集ボタンをクリックします。 編集ウィンドウが表示されます。 新規をクリックし、psql クライアントへのパスを追加します。 パスはPostgreSQLがインストールされている場所に依存しますが、通常は以下のようになります:
C:\Program Files\PostgreSQL\<POSTGRES_VERSION>\bin
その後、OK を2、3回クリックしてデスクトップに戻る。 新しいコマンドプロンプトを起動して、psql を実行してください。
psql 接続ストリング
接続文字列は、デプロイメントの「 概要 」にある「 エンドポイント 」パネルに表示されます。また、 Cloud Databases のCLIプラグイン や API からも取得できます。
psql との接続を確立するために必要な情報は、接続文字列の「cli」セクション内にあります。 参照用に、接続文字列の構成要素を次の表に示します。
| フィールド名 | 索引 | 説明 |
|---|---|---|
Bin |
接続を作成するための推奨バイナリー。この場合は psql になります。 |
|
Composed |
デプロイメントへの接続を確立するための構成済みのコマンド。 このコマンドは、Bin 実行可能プログラムと Environment 変数設定を組み合わせ、コマンド・ライン・パラメーターとして Arguments を使用します。 |
|
Environment |
環境変数として設定したキー/値のリスト。 | |
Arguments |
0... | Bin フィールドに示されているコマンドに引数として渡される情報 |
Certificate |
Base64 | アプリケーションが適切なサーバーに接続していることを確認するために使用される、サービス固有の証明書。 base64 でエンコードされています。 |
Certificate |
名前 | サービス専用証明書に割り当てられた名前。 |
Type |
この接続情報を使用するパッケージのタイプ。この場合は cli です。 |
0...は、1 つの配列にこれらのエントリーが 1 つ以上ある可能性があることを示しています。
コマンド行クライアント接続の作成
コマンド行クライアント接続を作成する前に、デプロイメントの 管理者パスワードを設定 しておく必要があります。
ibmcloud cdb deployment-connectionsコマンドは、コマンド行クライアント接続の作成に関係するすべてのものを処理します。 例えば、「example-postgres」という名前のデプロイメントに接続するには、次のコマンドを使用します。
ibmcloud cdb deployment-connections <INSTANCE_NAME_OR_CRN> --start
または
ibmcloud cdb cxn <INSTANCE_NAME_OR_CRN> -s
このコマンドは、管理者パスワードの入力を求めるプロンプトを出し、psqlコマンド・ライン・クライアントを実行してデータベースに接続します。
Cloud Databases CLIプラグインをインストールしていない場合は、 psql を使用して、「composed」接続文字列を指定し、 PostgreSQL データベースに接続してください。 環境変数 PGPASSWORD および PGSSLROOTCERT が提供されます。 PGPASSWORD を管理者のパスワードに、 PGSSLROOTCERT をサービスの独自証明書のパスまたはファイル名に設定してください。
PGPASSWORD=$PASSWORD PGSSLROOTCERT=0b22f14b-7ba2-11e8-b8e9-568642342d40 psql 'host=4a8148fa-3806-4f9c-b3fc-6467f11b13bd.8f7bfd7f3faa4218aec56e069eb46187.databases.appdomain.cloud port=32325 dbname=ibmclouddb user=admin sslmode=verify-full'
プライベートエンドポイントのみを使用してデプロイメントに接続する
プライベートエンドポイントのみを使用するデプロイメントの場合、 IBM Cloud® CLI を使用して接続情報を取得する際に、エンドポイントの種類を指定してください:
ibmcloud cdb cxn <INSTANCE_NAME_OR_CRN> -s -e private
-e private オプションは、プライベートエンドポイントの接続情報を返します。 プライベートエンドポイントにアクセスできるのは、VPC、 Cloud VPN、 Cloud Shell など、プライベートネットワークに接続可能な IBM Cloud リソースからのみです。
サービス独自証明書の使用
- _「エンドポイント」_パネルまたは接続情報の Base64 フィールドから証明書情報をコピーします。
- 必要に応じて、Base64 ストリングをテキストにデコードします。
- 証明書をファイルに保存します (提供される名前、または独自のファイル名を使用できます)。
- 証明書のパスを
ROOTCERT環境変数に指定します。
デプロイメントのデコードされた証明書を、CLI プラグインで次のコマンドを使用して表示することができます。
ibmcloud cdb deployment-cacert <INSTANCE_NAME_OR_CRN>
このコマンドは、base64 をテキストにデコードします。 コマンドの出力をコピーしてファイルに保存し、ファイルのパスを ROOTCERT 環境変数に指定します。
もう 1 つのオプションは、接続ストリングに &sslrootcert=/path/to/cert を追加することです。以下に例を示します。
postgres://$USERNAME:$PASSWORD@6eb96148-90bc-49a0-a5a4-dc2b53334653.btdl8mld0r95fevivv30.databases.appdomain.cloud:32109/ibmclouddb?sslmode=verify-full&sslrootcert=/path/to/cert