psql
による接続
psql
を使用して、データベース内で作成されたデータ構造を直接対話およびモニターします。 psql
は、照会とパフォーマンスのテストとモニター、スクリプトのインストールと変更、およびその他の管理アクティビティーにも役立ちます。
admin
ユーザーには、 PostgreSQL デフォルト・ロールが付属しています。 pg_monitor
PostgreSQL モニタリング・ビューと機能へのアクセスを許可する。 デフォルトでは、 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」セクション内にあります。 参照用に、接続文字列の構成要素を次の表に示します。
フィールド名 | 索引 | 説明 |
---|---|---|
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'
サービス独自証明書の使用
- _「エンドポイント」_パネルまたは接続情報の 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