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

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

最終更新日:Aug 21, 2026

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

前提条件

PolarDB-X インスタンスに接続する前に、次のタスクを完了してください。

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

    PolarDB for Distributed コンソールに移動します。インスタンスリスト ページで、対象インスタンスの ID をクリックします。基本情報ページで、接続情報 セクションにあるデータベースのエンドポイントとポートを確認します。

    image

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

      • ECS インスタンスを使用して PolarDB-X にアクセスし、ECS インスタンスと PolarDB-X インスタンスが同じ VPC 内にある場合は、Internal Network を選択します。この設定により PolarDB-X は最高のパフォーマンスを発揮できます。

      • オンプレミス環境から PolarDB-X インスタンスにアクセスする場合は、Internet を使用します。 パブリックエンドポイントを取得するには、パブリック IP アドレスの申請 をクリックします。 Internet エンドポイントは Internet 経由のアクセスを提供しますが、PolarDB-X インスタンスに最適なパフォーマンスを提供するものではありません。

    • Internal Network エンドポイントを使用して、仮想ホストまたは Simple Application Server から PolarDB-X インスタンスに接続することはできません。

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

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

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

    image

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

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

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

      オンプレミス環境のパブリック IP アドレスを確認するには:

      • Linux: ターミナルを開き、curl ifconfig.me を実行します。

      • Windows: コマンドプロンプトを開き、curl ip.me を実行します。

      • macOS: ターミナルを開き、curl ifconfig.me を実行します。

      オンプレミスネットワークがプロキシの背後にある場合、これらのコマンドは実際のパブリック IP アドレスを返さない可能性があります。PolarDB-X インスタンスの IP ホワイトリストに CIDR ブロック 0.0.0.0/0 を一時的に追加できます。インスタンスに接続した後、SHOW PROCESSLIST; コマンドを実行して実際のパブリック IP アドレスを取得します。次に、実際のパブリック IP アドレスをホワイトリストに追加し、0.0.0.0/0 を削除します。

      image

    • CIDR ブロック 0.0.0.0/0 はすべてのソースからのアクセスを許可するため、高いセキュリティリスクをもたらします。必要な場合を除き、この CIDR ブロックを IP ホワイトリストに追加しないでください。

データベースへの接続

さまざまな方法を使用してデータベースインスタンスに接続できます。ワークロードに最適な方法を選択してください。次のセクションでは、一般的な接続方法を示します。

DMSでの接続

Data Management (DMS) は、Alibaba Cloud が提供するブラウザベースのデータ管理ツールです。データ管理、スキーマ管理、ユーザー認可、セキュリティ監査、データトレンド、データ追跡、BI チャート、パフォーマンス最適化、サーバー管理など、さまざまなサービスを統合しています。DMS を使用すると、他のツールを使用せずにPolarDB-X インスタンスを管理できます。

  1. PolarDB for Distributed コンソールインスタンスリスト ページで、対象インスタンスの ID をクリックします。 ページの右上隅にある データベースにログイン をクリックします。

    image

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

    image

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

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

    • システムは、DMS サーバーの IP アドレスをクラウドデータベースの IP ホワイトリストに自動的に追加します。このプロセスが失敗した場合は、手動で追加する必要があります。

  3. ログオン後、接続されたPolarDB-X インスタンスが左側の [接続されたインスタンス] セクションに表示され、管理を開始できます。

    image

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 を開き、[データベース] > [データベースに接続] を選択します。

  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<username> -p<password> -D<database>

mysql -hpxc-xxx.polarx.rds.aliyuncs.com -P3306 -upolardb_x_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 e) {
             e.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.22、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("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)
        }
    }
    

よくある質問

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 インスタンスの IP ホワイトリストに追加されていることを確認します。詳細については、「インスタンスのIP ホワイトリストの設定」をご参照ください。

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

説明

仮想ホストまたは Simple Application Server からInternal Network エンドポイントを使用して PolarDB-X インスタンスに接続することはできません。

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

この問題をトラブルシューティングするには、次の確認を実行してください。

  1. PolarDB-X インスタンスが 実行中 状態であるかどうかを確認してください。

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

    説明

    データベースエンドポイントは、Internet エンドポイントである必要があります。PolarDB-X インスタンスと同じ VPC 内にある ECS インスタンスを使用する場合、Internal Network エンドポイントを使用できます。

  3. ネットワーク接続を確認します。オンプレミス環境で、ping <database endpoint> または telnet <database endpoint> <port> コマンドを実行してネットワーク接続をテストします。

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

    オンプレミス環境のパブリック IP アドレスを確認するには:

    • Linux: ターミナルを開き、curl ifconfig.me を実行します。

    • Windows: コマンドプロンプトを開き、curl ip.me を実行します。

    • macOS: ターミナルを開き、curl ifconfig.me を実行します。

    オンプレミスネットワークがプロキシの背後にある場合、これらのコマンドは実際のパブリック IP アドレスを返さない可能性があります。PolarDB-X インスタンスの IP ホワイトリストに CIDR ブロック 0.0.0.0/0 を一時的に追加できます。インスタンスに接続した後、SHOW PROCESSLIST; コマンドを実行して実際のパブリック IP アドレスを取得します。次に、実際のパブリック IP アドレスをホワイトリストに追加し、0.0.0.0/0 を削除します。

    image

PolarDB-X インスタンスに接続できず、次のエラーが報告される場合: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' または Connection timed out

このエラーは通常、環境のパブリック IP アドレスがPolarDB-X インスタンスの IP ホワイトリストに追加されていない場合、またはホワイトリストに登録された IP アドレスが正しくない場合に発生します。

オンプレミス環境のパブリック IP アドレスを確認するには:

  • Linux: ターミナルを開き、curl ifconfig.me を実行します。

  • Windows: コマンドプロンプトを開き、curl ip.me を実行します。

  • macOS: ターミナルを開き、curl ifconfig.me を実行します。

オンプレミスネットワークがプロキシの背後にある場合、これらのコマンドは実際のパブリック IP アドレスを返さない可能性があります。PolarDB-X インスタンスの IP ホワイトリストに CIDR ブロック 0.0.0.0/0 を一時的に追加できます。インスタンスに接続した後、SHOW PROCESSLIST; コマンドを実行して実際のパブリック IP アドレスを取得します。次に、実際のパブリック IP アドレスをホワイトリストに追加し、0.0.0.0/0 を削除します。

image

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

アプリケーションが Spring Boot、MyBatis、JDBC ドライバーなどの一般的な ORM フレームワークを使用してデータベースにアクセスする場合、フレームワークは通常、トランザクション、SQL ステートメント、ネットワークパケットなど、複数のレベルで SQL クエリのクライアント側タイムアウト期間を設定できます。例としては、Spring の transaction_timeout、MyBatis の statement_timeout、JDBC MySQL ドライバーの query_timeout などがあります。

基本的に、これらのクライアント側タイムアウトメカニズムのほとんどは、データベースの Kill ステートメントを実行してクエリを終了します。分散データベースのシナリオでは、Kill ステートメントはリソースを大量に消費し、頻繁に実行するとデータベースシステムリソースを大幅に消費します。そのため、データベース接続にこれらのタイムアウトメカニズムを多用することは推奨されません。

ベストプラクティスとして、アプリケーションは JDBC URL の socketTimeout パラメータ (ソケットタイムアウトパラメータ) を直接使用して 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>