PolarDB-X は、Data Management (DMS)、MySQL コマンドライン、サードパーティクライアント、および公式の MySQL プロトコルに準拠したサードパーティのアプリケーションコードを使用した接続をサポートしています。
準備
PolarDB-X データベースに接続する前に、次の手順を実行します。
データベースへの接続
さまざまな方法を使用してデータベースインスタンスに接続できます。以下のセクションでは、さまざまな方法を使用してデータベースインスタンスに接続する方法の例を示します。
DMS を使用したデータベースへの接続
DMS は Alibaba Cloud が提供するグラフィカルなデータ管理ツールです。この統合されたデータ管理サービスは、データ管理、スキーマ管理、ユーザー権限付与、セキュリティ監査、データトレンド、データ追跡、BI チャート、パフォーマンス最適化、サーバー管理などの機能を提供します。DMS を使用すると、他のツールを使用せずに PolarDB-X インスタンスを管理できます。
PolarDB for Distributed コンソール に移動します。[インスタンス] リストで、ターゲットインスタンスの ID をクリックします。インスタンス詳細ページで、右上隅にある [データベースにログイン] をクリックします。

ダイアログボックスで、PolarDB-X インスタンスの [データベースアカウント] と [データベースパスワード] を入力し、[ログオン] をクリックします。
説明DMS に初めてログインするときのコントロールモードは、デフォルトで [柔軟な管理] です。ログイン後にコントロールモードを変更することもできます。詳細については、「インスタンス情報の変更」および「コントロールモード」をご参照ください。
ログインパラメーターを設定した後、左下隅にある [接続をテスト] をクリックします。テスト接続が失敗した場合は、エラーメッセージを参照して、アカウントやパスワードなど、入力したインスタンス情報を確認してください。
システムは DMS サーバーの IP アドレスを ApsaraDB データベースのホワイトリストに自動的に追加します。IP アドレスが自動的に追加されない場合は、手動で追加する必要があります。
ログイン後、左側のナビゲーションウィンドウの [接続済みインスタンス] セクションで PolarDB-X インスタンスを表示し、管理操作を実行できます。

クライアントを使用したデータベースへの接続
PolarDB-X は、次のサードパーティクライアントからの接続をサポートしています。これらのクライアントは、公式サイトからダウンロードできます。
MySQL Workbench (推奨)
SQLyog
Sequel Pro
Navicat for MySQL
サードパーティの GUI クライアントは、データの作成、取得、更新、削除、DDL 操作などの基本的なデータベース操作を実行できます。PolarDB-X は、これらのクライアントの高度な機能をサポートしていない場合があります。
次の例では MySQL Workbench 8.0.29 を使用します。他のクライアントの手順も同様です。
MySQL Workbench をインストールします。公式ダウンロードページ からダウンロードできます。
MySQL Workbench を開き、 を選択します。
接続情報を入力し、[OK] をクリックします。

パラメーター
説明
例
ホスト名
pxc-xxx.polarx.rds.aliyuncs.com
ポート
データベースエンドポイントに対応するポート番号。
説明デフォルトのポートは 3306 です。
3306
ユーザー名
polardb_x_user
パスワード
データベースアカウントのパスワード。
Pass***233
MySQL コマンドラインを使用したデータベースへの接続
MySQL クライアントがサーバーにインストールされている場合は、コマンドを実行して PolarDB-X インスタンスに接続できます。
構文
mysql -h<endpoint> -P<port> -u<database_username> -p<database_user_password> -D<database_name>例
mysql -hpxc-xxx.polarx.rds.aliyuncs.com -P3306 -upolardb_mysql_user -pPass***233 -Dtest_dbパラメーター | 説明 | 例 |
-h | pxc-xxx.polarx.rds.aliyuncs.com | |
-P | データベースエンドポイントに対応するポート番号。 説明
| 3306 |
-u | polardb_x_user | |
-p | データベースアカウントのパスワード。 説明 このパラメーターは必須です。
| Pass***233 |
-D | ログインするデータベースの名前。 説明 このパラメーターはオプションです。 | test_db |
アプリケーションを使用したデータベースへの接続
PolarDB-X インスタンスへの接続は、他の MySQL データベースへの接続と似ています。データベースのエンドポイント、ポート、アカウント、パスワードを置き換えるだけです。以下のセクションでは、さまざまなプログラミング言語のアプリケーションを使用して PolarDB データベースにアクセスする方法について説明します。
Java
このセクションでは、Maven プロジェクトを例に、MySQL JDBC ドライバーを使用して PolarDB-X インスタンスに接続する方法について説明します。
pom.xmlファイルに MySQL JDBC ドライバーの依存関係を追加します。次のコードは例です。<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>8.0.27</version> </dependency>インスタンスに接続します。
<HOST>、ポート番号、<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 DatabaseConnection { public DatabaseConnection() { } public static void main(String[] args) { // 接続するデータベースのエンドポイント、ポート、および名前。 String url = "jdbc:mysql://<HOST>:3306/<DATABASE>?useSSL=false&serverTimezone=UTC"; // データベースアカウント。 String user = "<USER>"; // データベースアカウントのパスワード。 String password = "<PASSWORD>"; try { Class.forName("com.mysql.cj.jdbc.Driver"); Connection conn = DriverManager.getConnection(url, user, password); Statement stmt = conn.createStatement(); // データを取得するテーブルの名前。 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 var7) { var7.printStackTrace(); } } }
Python
このセクションでは、Python 3 を例に、PyMySQL ライブラリを使用して PolarDB-X インスタンスに接続する方法について説明します。
次のコマンドを実行して PyMySQL ライブラリをインストールします。
pip3 install PyMySQLインスタンスに接続します。
<HOST>、ポート番号、<USER>、<PASSWORD>、<DATABASE>、および<YOUR_TABLE_NAME>パラメーターを実際の値に置き換えます。import pymysql # データベース接続パラメーター。 host = '<HOST>' # PolarDB-X インスタンスのエンドポイント。 port = 3306 # デフォルトのポートは 3306 です。 user = '<USER>' # データベースアカウント。 password = '<PASSWORD>' # データベースアカウントのパスワード。 database = '<DATABASE>' # 接続するデータベースの名前。 try: # データベース接続を作成します。 connection = pymysql.connect( host=host, port=port, user=user, passwd=password, db=database ) # カーソルを取得します。 with connection.cursor() as cursor: # SQL クエリを実行します。 sql = "SELECT * FROM `<YOUR_TABLE_NAME>`" # データを取得するテーブルの名前。 cursor.execute(sql) # クエリ結果を取得します。 results = cursor.fetchall() for row in results: print(row) finally: # データベース接続を閉じます。 if 'connection' in locals() and connection.open: connection.close()
Go
このセクションでは、Go 1.23.0 を例に、database/sql パッケージと go-sql-driver/mysql ドライバーを使用して PolarDB-X インスタンスに接続する方法について説明します。
次のコマンドを実行して
go-sql-driver/mysqlドライバーをインストールします。go get -u github.com/go-sql-driver/mysqlインスタンスに接続します。
<HOST>、ポート番号、<USER>、<PASSWORD>、<DATABASE>、および<YOUR_TABLE_NAME>パラメーターを実際の値に置き換えます。package main import ( "database/sql" "fmt" "log" _ "github.com/go-sql-driver/mysql" ) func main() { // データベース接続パラメーター。 dbHost := "<HOST>" // PolarDB-X インスタンスのエンドポイント。 dbPort := "3306" // デフォルトのポートは 3306 です。 dbUser := "<USER>" // データベースアカウント。 dbPass := "<PASSWORD>" // データベースアカウントのパスワード。 dbName := "<DATABASE>" // 接続するデータベースの名前。 // データソース名 (DSN) を構築します。 dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", dbUser, dbPass, dbHost, dbPort, dbName) // データベース接続を開きます。 db, err := sql.Open("mysql", dsn) if err != nil { log.Fatalf("Failed to connect to database: %v", err) } defer db.Close() // 接続をテストします。 err = db.Ping() if err != nil { log.Fatalf("Failed to ping database: %v", err) } // データベースのバージョンをクエリします。 var result string err = db.QueryRow("SELECT VERSION()").Scan(&result) if err != nil { log.Fatalf("Failed to execute query: %v", err) } // データベースのバージョンを出力します。 fmt.Printf("Connected to database, version: %s\n", result) // SQL クエリを実行します。 rows, err := db.Query("SELECT * FROM `<YOUR_TABLE_NAME>`") // データを取得するテーブルの名前。 if err != nil { log.Fatalf("Failed to execute query: %v", err) } defer rows.Close() // クエリ結果を処理します。 for rows.Next() { var id int var name string if err := rows.Scan(&id, &name); err != nil { log.Fatalf("Failed to scan row: %v", err) } fmt.Printf("ID: %d, Name: %s\n", id, name) } // 反復中のエラーを確認します。 if err := rows.Err(); err != nil { log.Fatalf("Error during iteration: %v", err) } }


