このトピックでは、PolarDB for PostgreSQL (Oracle 互換) クラスタに接続する方法について説明します。
準備
クラスタに接続する前に、次の操作を実行します。
準備が完了したら、クラスタに接続できます。
クラスタへの接続
クラスタに接続する方法はたくさんあります。実際のビジネス要件に基づいて、最適な接続方法を選択できます。以下は、クラスタに接続する方法の例です。
DMS を使用してクラスタに接続する
データ管理 (DMS) は、Alibaba Cloud が提供するグラフィカルなデータ管理ツールです。データ管理、スキーマ管理、ユーザー管理、セキュリティ監査、データトレンド、データ追跡、ビジネスインテリジェンス (BI) チャート、パフォーマンス最適化、サーバー管理など、さまざまなデータ管理サービスを提供します。他のツールを使用せずに、DMS を使用して PolarDB クラスタを直接管理できます。
PolarDB コンソール にログインします。クラスタリストで、接続するクラスタの ID をクリックして、[基本情報] ページに移動します。ページの右上隅にある [データベースにログイン] をクリックします。

表示されるダイアログボックスで、クラスタ用に作成したデータベースアカウントとパスワードを入力し、[ログイン] をクリックします。

クラスタにログインした後、左側のナビゲーションウィンドウで を選択して、 クラスタを管理します。

クライアントを使用してクラスタに接続する
クライアントを使用して PolarDB クラスタに接続できます。次の手順では、pgAdmin 4 v9.0 クライアントを使用してクラスタに接続します。
pgAdmin 4 クライアントを ダウンロード し、インストールします。
pgAdmin 4 クライアントを開き、[サーバー] を右クリックし、 を選択します。

[全般] タブで、接続名を設定します。[接続] タブで、クラスタ接続情報を設定し、[保存] をクリックします。


パラメーター
説明
[ホスト名/アドレス]
PolarDB クラスタの エンドポイントとポート。
ECS インスタンスから PolarDB クラスタにアクセスする場合、ECS インスタンスが PolarDB クラスタと同じ VPC にある場合は、[プライベート] エンドポイントとポートを指定します。
オンプレミス環境から PolarDB クラスタにアクセスする場合は、[パブリック] エンドポイントとポートを指定します。
デフォルトのポート番号は 1521 です。
[ポート]
[ユーザー名]
PolarDB クラスタの データベースアカウントとパスワード。
[パスワード]
接続結果を表示します。接続情報が正しい場合、次のインターフェイスが表示され、接続が成功したことを示します。
説明postgresはデフォルトのシステムデータベースです。このデータベースでは操作を実行しないでください。
psql を使用してクラスタに接続する
PostgreSQL ダウンロード から psql をダウンロードして、PolarDB クラスタに接続できます。PolarDB-Tools の psql を使用して、PolarDB クラスタに接続することもできます。
psql を使用したクラスタ接続方法は、Windows システムと Linux システムで同じです。
psql の使用方法の詳細については、「psql」をご参照ください。
構文
psql -h <host> -p <port> -U <username> -d <dbname>パラメーター | 説明 |
| PolarDB クラスタの クラスタエンドポイントとポート。
|
| |
| PolarDB クラスタの データベースアカウント。 |
|
例
psql -h pc-xxx.rwlb.rds.aliyuncs.com -p 1521 -U testusername -d postgresプログラミング言語でクラスタに接続する
PolarDB for PostgreSQL (Oracle 互換) クラスタへの接続は、通常の PostgreSQL データベースへの接続と似ています。エンドポイント、ポート、アカウント、パスワードなどの接続パラメーターを変更するだけで済みます。以下は、特定のプログラミング言語で PolarDB クラスタに接続する方法の例です。
Java
この例では、Maven ベースの Java プロジェクトで PostgreSQL JDBC ドライバーを使用して、PolarDB for PostgreSQL (Oracle 互換) クラスタに接続する方法について説明します。
PostgreSQL JDBC ドライバーの依存関係を pom.xml ファイルに追加します。サンプルコード:
<dependency> <groupId>org.postgresql</groupId> <artifactId>postgresql</artifactId> <version>42.2.18</version> </dependency>クラスタに接続します。
<HOST>、<PORT>、<USER>、<PASSWORD>、<DATABASE>、<YOUR_TABLE_NAME>、<YOUR_TABLE_COLUMN_NAME>プレースホルダーを実際のクラスタ接続パラメーターに置き換えます。import java.sql.Connection; import java.sql.DriverManager; import java.sql.ResultSet; import java.sql.Statement; public class PolarDBConnection { public static void main(String[] args) { // データベース URL、ユーザー名、パスワード。 String url = "jdbc:postgresql://<HOST>:<PORT>/<DATABASE>"; String user = "<USER>"; String password = "<PASSWORD>"; try { // PostgreSQL JDBC ドライバーを読み込みます。 Class.forName("org.postgresql.Driver"); // 接続を確立します。 Connection conn = DriverManager.getConnection(url, user, password); // Statement オブジェクトを作成します。 Statement stmt = conn.createStatement(); // SQL クエリを実行します。 ResultSet rs = stmt.executeQuery("SELECT * FROM <YOUR_TABLE_NAME>"); // 結果セットを処理します。 while (rs.next()) { System.out.println(rs.getString("<YOUR_TABLE_COLUMN_NAME>")); } // リソースを閉じます。 rs.close(); stmt.close(); conn.close(); } catch (Exception e) { e.printStackTrace(); } } }
Python
この例では、Python 3 で psycopg2 ライブラリを使用して、PolarDB for PostgreSQL (Oracle 互換) クラスタに接続する方法について説明します。
psycopg2 ライブラリをインストールします。
pip3 install psycopg2-binaryクラスタに接続します。
<HOST>、<PORT>、<USER>、<PASSWORD>、<DATABASE>、<YOUR_TABLE_NAME>プレースホルダーを実際のクラスタ接続パラメーターに置き換えます。import psycopg2 try: // 接続パラメーター conn = psycopg2.connect( host="<HOST>", // クラスタエンドポイント。 database="<DATABASE>", // データベース名。 user="<USER>", // ユーザー名。 password="<PASSWORD>", // パスワード。 port="<PORT>" // ポート番号。 ) // カーソルオブジェクトを作成します。 cursor = conn.cursor() // クエリを実行します。 cursor.execute("SELECT * FROM <YOUR_TABLE_NAME>") // すべての結果を取得します。 records = cursor.fetchall() for record in records: print(record) except Exception as e: print("Error:", e) finally: // 接続を閉じます。 if 'cursor' in locals(): cursor.close() if 'conn' in locals(): conn.close()
Go
この例では、Go 1.23.0 で database/sql パッケージと lib/pq ドライバーを使用して、PolarDB for PostgreSQL (Oracle 互換) クラスタに接続する方法について説明します。
lib/pqドライバーをインストールします。go get -u github.com/lib/pqクラスタに接続します。
<HOST>、<PORT>、<USER>、<PASSWORD>、<DATABASE>、<YOUR_TABLE_NAME>プレースホルダーを実際のクラスタ接続パラメーターに置き換えます。package main import ( "database/sql" "fmt" "log" _ "github.com/lib/pq" // PostgreSQL ドライバーを初期化します。 ) func main() { // 接続文字列の形式。 connStr := "user=<USER> password=<PASSWORD> dbname=<DATABASE> host=<HOST> port=<PORT> sslmode=disable" // データベース接続を開きます。 db, err := sql.Open("postgres", connStr) if err != nil { log.Fatal(err) } defer db.Close() // プログラムの終了時に接続を閉じます。 // 接続をテストします。 err = db.Ping() if err != nil { log.Fatal(err) } fmt.Println("PostgreSQL に接続しました!") // クエリを実行します。 rows, err := db.Query("SELECT * FROM <YOUR_TABLE_NAME>") if err != nil { log.Fatal(err) } defer rows.Close() }
FAQ
PolarDB クラスタに接続できません。次のエラーが返されます:password authentication failed for user
PolarDB クラスタに接続できません。次のエラーが返されます:name or service not known
PolarDB クラスタに接続できません。次のエラーが返されます:connection timed out
DMS を使用して PolarDB クラスタの接続方法をプライマリエンドポイントからクラスタエンドポイントに変更するにはどうすればよいですか?
参照
Oracle 構文互換性 1.0: クライアントとドライバー





