IBM Cloud Docs
psql による接続

psql による接続

psql を使用して、データベース内で作成されたデータ構造を直接対話およびモニターします。 psql は、照会とパフォーマンスのテストとモニター、スクリプトのインストールと変更、およびその他の管理アクティビティーにも役立ちます。

admin ユーザーには、 PostgreSQL デフォルト・ロールが付属しています。 pg_monitorPostgreSQL モニタリング・ビューと機能へのアクセスを許可する。 デフォルトでは、 admin ユーザーは、他のユーザーが作成したオブジェクトに対するパーミッションを持っていません。

データベースへの接続に使用する前に、 admin パスワードを設定する必要があります。 詳しくは、管理者パスワードの設定のページを参照してください。

psql のインストール

psql を使用するには、ローカル・システムに PostgreSQL クライアント・ツールをインストールしておく必要があります。 これらは、 postgresql.org から提供される完全な PostgreSQL パッケージと一緒に、 オペレーティング システムのパッケージ マネージャーからのパッケージとしてインストールできます。

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 への postgresql-client のインストール

Red Hat Enterprise Linux (または通常 RHEL と表記されるもの) では、Ubuntu よりも少し設定が必要です。 RHEL の場合、パッケージマネージャは Yum です。

まず、次のように Yum をPostgreSQLリポジトリに向ける必要があります:

sudo yum install https://download.postgresql.org/pub/repos/yum/10/redhat/rhel-7-x86_64/pgdg-redhat10-10-2.noarch.rpm

Yum URL にアクセスし、そのパッケージ・リポジトリーを使うように自分自身を設定する。 これでパッケージを名前で追加できる:

sudo yum install postgresql15

このコマンドはクライアント・パッケージだけをインストールする。 URL リポジトリがどこにあるのかわからない場合は、 Linux Downloads ( Red Hat Family) にアクセスしてください。 PostgreSQL バージョン、プラットフォーム、アーキテクチャを選択するフォームがあり、 Red Hat そのバージョンに適した説明が表示されます。 CentOS, Scientific Linux および Oracle Enterprise Linux が含まれます。 また、Fedoraも含まれている。 Fedora のデフォルトのリポジトリには、すでに PostgreSQL クライアントがあります。 Fedora 27および28以降では、 PostgreSQL クライアントをターミナルからインストールする:

sudo dnf install postgresql.x86_64

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」セクション内にあります。 参照用に、接続文字列の構成要素を次の表に示します。

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 プラグインをインストールしていない場合は、"composed" 接続文字列を指定して、 psql を使用して 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'

サービス独自証明書の使用

  1. _「エンドポイント」_パネルまたは接続情報の Base64 フィールドから証明書情報をコピーします。
  2. 必要に応じて、Base64 ストリングをテキストにデコードします。
  3. 証明書をファイルに保存します (提供される名前、または独自のファイル名を使用できます)。
  4. 証明書のパスを 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