すべてのプロダクト
Search
ドキュメントセンター

PolarDB:データベースへの接続

最終更新日:Jun 23, 2026

Data Management (DMS)、MySQL CLI、サードパーティの MySQL 互換クライアント、またはアプリケーションコードを使用して、PolarDB-X インスタンスに接続できます。

前提条件

PolarDB-X データベースに接続する前に、以下の手順を完了してください。

  • データベースエンドポイントとポートの取得

    PolarDB for Distributed console に移動します。 インスタンスリスト リストで、ターゲットインスタンスの ID をクリックしてその基本情報を表示します。 接続情報 セクションで、データベースエンドポイントとポートを確認します。

    説明
    • アクセス環境に応じて、内部ネットワーク または パブリックネットワーク を選択してください。

      • ECS インスタンスを使用して PolarDB-X にアクセスし、ECS インスタンスと PolarDB-X が同じ VPC 内にある場合は、Internal Network を選択すると、PolarDB-X の最高のパフォーマンスが得られます。

      • ローカル環境から PolarDB-X にアクセスする場合は、Internet を選択します。右側にある パブリック IP アドレスの申請 をクリックしてパブリックエンドポイントを取得できます。Internet はインターネットのことです。Internet 経由で PolarDB-X インスタンスにアクセスすると、最適なパフォーマンスは得られません。

    • バーチャルホストまたは Simple Application Server インスタンスからInternal Networkを使用してPolarDB-X インスタンスに接続することはできません。

  • データベースアカウントの作成

  • インスタンスのホワイトリストの設定

    PolarDB for Distributed コンソールに移動し、インスタンスリスト リストでターゲットインスタンスの ID をクリックします。左側のナビゲーションウィンドウで、構成・ amp; の管理 > Security Management を選択します。表示されたページで、IP ホワイトリストを 設定 するか、ホワイトリストの作成 をクリックします。詳細については、「ホワイトリストの設定」をご参照ください。

    ホワイトリスト設定ページでは、ホワイトリストグループのリストを表示し、対応するボタンを使用してホワイトリストを設定できます。

    説明
    • ECS インスタンスを使用して PolarDB-X にアクセスし、その ECS インスタンスが PolarDB-X インスタンスと同じ VPC にある場合は、ECS インスタンスのプライベート IP アドレスを新しい IP ホワイトリストグループに追加します。

    • ECS インスタンスから PolarDB-X にアクセスするが、その ECS インスタンスが PolarDB-X インスタンスとは異なる VPC にある場合は、ECS インスタンスのパブリック IP アドレスを新しい IP ホワイトリストグループに追加してください。

    • オンプレミス環境から PolarDB-X にアクセスする場合、お使いの環境のパブリック IP アドレスを新しい IP ホワイトリストグループに追加してください。

      オンプレミス環境のパブリック IP アドレスを取得するには、次のいずれかの手順を実行します:

      • Linux オペレーティングシステムの場合:ターミナルを開き、curl ifconfig.me コマンドを入力して Enter キーを押します。

      • Windows の場合:コマンドプロンプトを開き、curl ip.me コマンドを入力して Enter キーを押します。

      • macOS の場合:ターミナルを開き、curl ifconfig.me コマンドを入力して Enter キーを押します。

      お使いのローカルネットワークでプロキシを使用している場合、取得する IP アドレスは実際のパブリック IP アドレスではない可能性があります。IP アドレス範囲 0.0.0.0/0PolarDB-X インスタンスのホワイトリストに追加できます。インスタンスへの接続に成功したら、SHOW PROCESSLIST; コマンドを実行して実際のパブリック IP アドレスを取得し、インスタンスのホワイトリストに追加します。その後、IP アドレス範囲 0.0.0.0/0 をホワイトリストから削除します。

      39158 | aurora              | 100.104.108.247:39236 | information_schema | Sleep  |          47 |              | NULL
                                          実際のパブリック IP アドレス
      268459868 | polardb_mysql_account | 47.94.74.xxx:39160    | NULL               | Query  |           0 | starting     | SHOW PROCESSLIST
    • IP アドレス範囲0.0.0.0/0 は、すべてのソースからのアクセスを許可します。この範囲をインスタンスのホワイトリストに追加すると、高いセキュリティリスクが生じます。絶対に必要な場合を除き、ホワイトリストに追加しないでください。

データベースへの接続

ワークロードに応じて、いくつかの方法でデータベースインスタンスに接続できます。以下のセクションでは、一般的な例を示します。

DMS

Data Management (DMS) は、Alibaba Cloud が提供するグラフィカルなデータ管理ツールです。データ管理、スキーマ管理、ユーザー権限付与、セキュリティ監査、データ傾向分析、データ追跡、BI チャート、パフォーマンス最適化、サーバー管理など、一連のサービスを統合しています。DMS を使用すると、他のツールを必要とせずに、お客様の PolarDB-X インスタンスを直接管理できます。

  1. PolarDB for Distributed コンソールに移動します。インスタンスリスト リストで、ターゲットインスタンスの ID をクリックして詳細ページを開きます。ページの右上隅にある データベースにログイン をクリックします。

  2. ダイアログボックスで、PolarDB-X インスタンスの データベースアカウントデータベースパスワード を入力し、お 問い合わせ をクリックします。

    説明
    • 初めて DMS を使用してログインする場合、コントロールモードはデフォルトで [柔軟な管理] です。ログイン後、インスタンスを編集してコントロールモードを変更できます。詳細については、「インスタンス情報の編集」および「コントロールモード」をご参照ください。

    • ログインパラメーターを設定した後、左下隅の テスト接続 をクリックできます。接続に失敗した場合は、エラーメッセージを確認し、アカウントやパスワードなど、入力した情報を確認してください。

    • システムは、DMS サーバーの IP アドレスを PolarDB-X インスタンスのホワイトリストに自動的に追加しようとします。この試行が失敗した場合は、手動で IP アドレスを追加する必要があります。

  3. ログインすると、PolarDB-X インスタンスが左側のナビゲーションウィンドウの[接続済みインスタンス]セクションに表示され、管理できるようになります。

GUI クライアント

PolarDB-X は、以下のサードパーティクライアントからの接続をサポートしています。これらのクライアントは、公式サイトからダウンロードできます。

  • MySQL Workbench (推奨)

  • SQLyog

  • Sequel Pro

  • Navicat for MySQL

説明

サードパーティの GUI クライアントは、CRUD や DDL を含む基本的なデータベース操作をサポートします。クライアント固有の高度な機能は、PolarDB-X ではサポートされていない場合があります。

次の手順では、MySQL Workbench 8.0.29 を例として使用します。他のクライアントも同様の手順に従います。

  1. MySQL Workbench をインストールします。公式ダウンロードリンクについては、「MySQL Workbench のダウンロードページ」をご参照ください。

  2. MySQL Workbench を開き、[Database] > [Connect to Database] を選択します。

  3. 接続情報を入力し、[OK] をクリックします。

    パラメーター

    説明

    Hostname

    データベースエンドポイント

    pxc-xxx.polarx.rds.aliyuncs.com

    Port

    データベースエンドポイントに対応するポート番号。

    説明

    デフォルトのポートは 3306 です。

    3306

    Username

    データベースアカウント

    polardb_x_user

    Password

    データベースアカウントのパスワード。

    Pass***233

MySQL CLI

サーバーに MySQL クライアントがインストールされている場合、コマンドラインを使用して PolarDB-X インスタンスに接続できます。

構文:

mysql -h<endpoint> -P<port> -u<database_username> -p<database_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 です。

  • デフォルトのポートを使用する場合、このパラメーターは省略できます。

3306

-u

データベースアカウント

polardb_x_user

-p

データベースアカウントのパスワード。

説明

このパラメーターは必須です。

  • このパラメーターを指定しない場合、Enter password プロンプトで再度パスワードの入力を求められます。

  • このパラメーターを指定する場合、-p とデータベースパスワードの間にスペースを入れないでください。

Pass***233

-D

接続先のデータベースの名前。

説明

このパラメーターはオプションです。

test_db

アプリケーション

アプリケーションから PolarDB-X インスタンスへの接続は、標準の MySQL データベースへの接続と同様であり、データベースエンドポイント、ポート、アカウント、およびパスワードのみが必要です。以下の例では、一般的なプログラミング言語を使用して PolarDB-X インスタンスにアクセスする方法を示します。

Java

この例では、Maven プロジェクトと MySQL JDBC ドライバーを使用して PolarDB-X インスタンスに接続します。

  1. まず、MySQL JDBC ドライバーの依存関係を pom.xml ファイルに追加する必要があります。以下はコード例です:

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.27</version>
    </dependency>
  2. インスタンスに接続します。パラメーター <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) {
          // PolarDB-X インスタンスのエンドポイント、ポート、データベース名
          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 インスタンスに接続します。

  1. PyMySQL ライブラリをインストールします。インストールされていない場合は、次のコマンドを実行します:

    pip3 install PyMySQL
  2. インスタンスに接続します。パラメーター <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 インスタンスに接続します。

  1. まず、go-sql-driver/mysql ドライバーをインストールする必要があります。次のコマンドを実行してインストールできます:

    go get -u github.com/go-sql-driver/mysql
  2. インスタンスに接続します。パラメーター <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("データベースへの接続に失敗しました: %v", err)
        }
        defer db.Close()
        // サーバーに PING を送信して接続をテスト
        err = db.Ping()
        if err != nil {
            log.Fatalf("データベースへの PING に失敗しました: %v", err)
        }
        // サーバーのバージョンをクエリ
        var result string
        err = db.QueryRow("SELECT VERSION()").Scan(&result)
        if err != nil {
            log.Fatalf("クエリの実行に失敗しました: %v", err)
        }
        // データベースのバージョンを出力
        fmt.Printf("データベースに接続しました、バージョン: %s\n", result)
        // SQL クエリを実行
        rows, err := db.Query("SELECT * FROM `<YOUR_TABLE_NAME>`") // クエリするテーブル
        if err != nil {
            log.Fatalf("クエリの実行に失敗しました: %v", err)
        }
        defer rows.Close()
        // クエリ結果を処理
        for rows.Next() {
            var id int
            var name string
            if err := rows.Scan(&id, &name); err != nil {
                log.Fatalf("行のスキャンに失敗しました: %v", err)
            }
            fmt.Printf("ID: %d, Name: %s\n", id, name)
        }
        // 行の反復処理中のエラーをチェック
        if err := rows.Err(); err != nil {
            log.Fatalf("反復処理中のエラー: %v", err)
        }
    }
    

よくある質問

ECS がPolarDB-X インスタンスに接続できない

次の手順に従って問題をトラブルシューティングしてください:

  1. PolarDB-X インスタンスが 実行中 状態であることを確認します。

  2. データベースエンドポイントとポートおよびアカウントとパスワードを確認します。

  3. ECS インスタンスで ping <database endpoint> または telnet <database endpoint> <port> を実行してネットワーク接続をテストし、ネットワーク要因を確認します。

  4. Internal Network を使用している場合:

    1. ECS インスタンスと PolarDB-X インスタンスが同じ VPC 内にあるかどうかを確認します。同じ VPC 内にない場合、Internal Network を使用できません。ECS と PolarDB-X インスタンスを同じ VPC に配置するには、次のいずれかの方法を使用できます。

      • ECS インスタンスの VPC を切り替えます。

      • PolarDB-X インスタンスがデフォルト VPC を使用している場合、PolarDB-X インスタンスの VPC を切り替えることができます。

      • Cloud Enterprise Network (CEN) を使用して VPC 間の通信を有効にします。詳細については、「同一リージョン内の VPC を接続する」をご参照ください。

    2. ECS インスタンスのプライベート IP アドレスまたは CIDR ブロックが、PolarDB-X インスタンスのホワイトリストに追加されているかどうかを確認してください。 詳細については、「インスタンスのホワイトリストを設定する」をご参照ください。

  5. Internet を使用している場合は、ECS インスタンスのパブリック IP アドレスが PolarDB-X インスタンスのホワイトリストに追加されているかどうかを確認してください。 詳細については、「インスタンスのホワイトリストを構成する」をご参照ください。

説明

バーチャルホストまたは Simple Application Server インスタンスから PolarDB-X インスタンスに接続するために、Internal Network を使用することはできません。

ローカル環境から PolarDB-X インスタンスに接続できない

次の手順に従って問題をトラブルシューティングしてください:

  1. PolarDB-X インスタンスが 実行中 状態であることを確認します。

  2. データベースエンドポイントとポートおよびアカウントとパスワードを確認します。

    説明

    オンプレミス環境から接続するには、Internet を使用する必要があります。Internal Network は、クライアントと PolarDB-X インスタンスが同じ VPC 内にある場合にのみ使用できます。

  3. ネットワークの問題を確認するには、ローカル環境で ping <database endpoint> または telnet <database endpoint> <port> を実行してネットワーク接続をテストできます。

  4. お客様のオンプレミス環境のパブリック IP アドレスまたは CIDR ブロックが、PolarDB-X インスタンスのホワイトリストに追加されているかを確認します。詳細については、「インスタンスのホワイトリストを設定する」をご参照ください。

    オンプレミス環境のパブリック IP アドレスを取得するには、次のいずれかの手順を実行します:

    • Linux オペレーティングシステムの場合:ターミナルを開き、curl ifconfig.me コマンドを入力して Enter キーを押します。

    • Windows の場合:コマンドプロンプトを開き、curl ip.me コマンドを入力して Enter キーを押します。

    • macOS の場合:ターミナルを開き、curl ifconfig.me コマンドを入力して Enter キーを押します。

    お使いのローカルネットワークでプロキシを使用している場合、取得した IP アドレスが実際のパブリック IP アドレスではない可能性があります。IP アドレス範囲 0.0.0.0/0PolarDB-X インスタンスのホワイトリストに追加できます。インスタンスへの接続に成功した後、SHOW PROCESSLIST; コマンドを実行して実際のパブリック IP アドレスを取得し、インスタンスのホワイトリストに追加します。その後、IP アドレス範囲 0.0.0.0/0 をホワイトリストから削除します。

    39158 | aurora              | 100.104.108.247:39236 | information_schema | Sleep  |          47 |              | NULL
                                        実際のパブリック IP アドレス
    268459868 | polardb_mysql_account | 47.94.74.xxx:39160    | NULL               | Query  |           0 | starting     | SHOW PROCESSLIST

接続できない PolarDB-X インスタンスがあり、「Access denied for user 'xxx'@'xxx' (using password: YES)」というエラーが表示される

「Access denied for user 'xxx'@'xxx' (using password: YES)」のようなエラーメッセージは、データベースアカウントまたはパスワードが正しくないことを示します。認証情報を確認してください。PolarDB for Distributed コンソールに移動し、構成・ amp; の管理 > アカウント管理 を選択して、データベースアカウントとパスワードを管理できます。

PolarDB-X インスタンスに接続できない: 'Unknown MySQL server host 'xxx'' エラー

このエラーは、データベースエンドポイントが正しくないことを示します。エンドポイントが正しく、pxc-xxx.polarx.rds.aliyuncs.com の形式に従っていることを確認してください。PolarDB for Distributed コンソールに移動し、基本情報 > 接続情報 セクションでデータベースエンドポイントを確認できます。

接続できないPolarDB-X インスタンスのエラー: Can't connect to MySQL server on 'xxx' or Connection timed out

この現象は、お客様の環境のパブリック IP が PolarDB-X インスタンスのホワイトリストに追加されていない場合、またはホワイトリストの設定が正しくない場合に発生することがあります。

オンプレミス環境のパブリック IP アドレスを取得するには、次のいずれかの手順を実行します:

  • Linux オペレーティングシステムの場合:ターミナルを開き、curl ifconfig.me コマンドを入力して Enter キーを押します。

  • Windows の場合:コマンドプロンプトを開き、curl ip.me コマンドを入力して Enter キーを押します。

  • macOS の場合:ターミナルを開き、curl ifconfig.me コマンドを入力して Enter キーを押します。

お使いのローカルネットワークがプロキシ環境下にある場合、取得する IP アドレスが実際のパブリック IP アドレスではない可能性があります。IP アドレス範囲 0.0.0.0/0PolarDB-X インスタンスのホワイトリストに追加できます。インスタンスに正常に接続した後、SHOW PROCESSLIST; コマンドを実行して実際のパブリック IP アドレスを取得し、それをインスタンスのホワイトリストに追加します。その後、IP アドレス範囲 0.0.0.0/0 をホワイトリストから削除します。

39158 | aurora              | 100.104.108.247:39236 | information_schema | Sleep  |          47 |              | NULL
                                    実際のパブリック IP アドレス
268459868 | polardb_mysql_account | 47.94.74.xxx:39160    | NULL               | Query  |           0 | starting     | SHOW PROCESSLIST

データベースタイムアウトのベストプラクティス

アプリケーションが Spring Boot、MyBatis、JDBC ドライバーなどの一般的なオブジェクトリレーショナルマッピング (ORM) フレームワークを使用している場合、フレームワークでは多くの場合、トランザクション、SQL ステートメント、ネットワーク I/O など、複数のレイヤーにわたって SQL クエリのクライアント側タイムアウトを設定できます。例としては、Spring の `transaction_timeout`、MyBatis の `statement_timeout`、MySQL JDBC ドライバーの `query_timeout` などがあります。

基本的に、これらのクライアント側タイムアウトメカニズムのほとんどは、クエリを中断するためにデータベースの Kill ステートメントを実行する必要があります。分散データベースのシナリオでは、Kill ステートメントの実行コストが高く、頻繁に実行すると大量のデータベースシステムリソースを消費します。したがって、これらのタイムアウトメカニズムを多用することは推奨されません。

ベストプラクティスとして、アプリケーションは JDBC URL の `socket_timeout` パラメーター (ネットワークソケットタイムアウト) を直接使用して SQL 実行タイムアウトを指定する必要があります。これは、このパラメーターが TCP プロトコル自体のタイムアウトメカニズムに依存しており、タイムアウトが発生しても Kill ステートメントがトリガーされないためです。例:

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
  <property name="url" value="jdbc:mysql://pxc-*****.public.polarx.rds.aliyuncs.com:3306/doc_test?socketTimeout=60000" />
  ...
  <property name="asyncInit" value="true" />
</bean>