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

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

最終更新日:Nov 09, 2025

PolarDB-X は、Data Management (DMS)、MySQL コマンドライン、サードパーティクライアント、および公式の MySQL プロトコルに準拠したサードパーティのアプリケーションコードを使用した接続をサポートしています。

準備

PolarDB-X データベースに接続する前に、次の手順を実行します。

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

    PolarDB for Distributed コンソール に移動します。[インスタンス] リストで、ターゲットインスタンスの ID をクリックして、その基本情報ページを開きます。[接続情報] セクションで、データベースのエンドポイントとポートを取得します。

    image

    説明
    • アクセス環境に基づいて、[内部エンドポイント] または [パブリックエンドポイント] を選択できます。

      • ECS を使用して PolarDB-X にアクセスし、ECS と PolarDB-X の両方が同じ VPC 内にある場合は、[内部エンドポイント] を選択して PolarDB-X の最高のパフォーマンスを確保します。

      • オンプレミス環境から PolarDB-X にアクセスする場合は、[パブリックエンドポイント] を選択します。パブリックエンドポイントを取得するには、[パブリックエンドポイントの要求] をクリックします。[パブリックエンドポイント] はインターネットに接続しますが、[インターネット] 経由で PolarDB-X インスタンスにアクセスしても、最適なパフォーマンスは得られません。

    • 仮想ホストまたはシンプルなアプリケーションサーバーを PolarDB-X インスタンスに接続するために [プライベートエンドポイント] を使用することはできません。

  • データベースアカウントを作成する

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

    PolarDB for Distributed コンソール に移動します。[インスタンス] リストで、ターゲットインスタンスの ID をクリックしてインスタンス詳細ページに移動します。左側のナビゲーションウィンドウで、[設定と管理] > [セキュリティ管理] を選択します。表示されたページで、IP アドレスホワイトリストを [設定] するか、[ホワイトリストグループを追加] します。詳細については、「ホワイトリストを設定する」をご参照ください。

    image

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

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

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

      オンプレミスマシンのパブリック IP アドレスを取得するには、次のいずれかの方法を使用します。

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

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

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

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

      image

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

データベースへの接続

さまざまな方法を使用してデータベースインスタンスに接続できます。以下のセクションでは、さまざまな方法を使用してデータベースインスタンスに接続する方法の例を示します。

DMS を使用したデータベースへの接続

DMS は Alibaba Cloud が提供するグラフィカルなデータ管理ツールです。この統合されたデータ管理サービスは、データ管理、スキーマ管理、ユーザー権限付与、セキュリティ監査、データトレンド、データ追跡、BI チャート、パフォーマンス最適化、サーバー管理などの機能を提供します。DMS を使用すると、他のツールを使用せずに PolarDB-X インスタンスを管理できます。

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

    image

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

    image

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

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

    • システムは DMS サーバーの IP アドレスを ApsaraDB データベースのホワイトリストに自動的に追加します。IP アドレスが自動的に追加されない場合は、手動で追加する必要があります。

  3. ログイン後、左側のナビゲーションウィンドウの [接続済みインスタンス] セクションで PolarDB-X インスタンスを表示し、管理操作を実行できます。

    image

クライアントを使用したデータベースへの接続

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

  • MySQL Workbench (推奨)

  • SQLyog

  • Sequel Pro

  • Navicat for MySQL

説明

サードパーティの GUI クライアントは、データの作成、取得、更新、削除、DDL 操作などの基本的なデータベース操作を実行できます。PolarDB-X は、これらのクライアントの高度な機能をサポートしていない場合があります。

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

  1. MySQL Workbench をインストールします。公式ダウンロードページ からダウンロードできます。

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

  3. 接続情報を入力し、[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 です。

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

3306

-u

データベースアカウント

polardb_x_user

-p

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

説明

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

  • このパラメーターを含めない場合、Enter password が返された後、パスワードの入力を求められます。

  • このパラメーターを含める場合、-p とパスワードの間にスペースを追加しないでください。

Pass***233

-D

ログインするデータベースの名前。

説明

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

test_db

アプリケーションを使用したデータベースへの接続

PolarDB-X インスタンスへの接続は、他の MySQL データベースへの接続と似ています。データベースのエンドポイント、ポート、アカウント、パスワードを置き換えるだけです。以下のセクションでは、さまざまなプログラミング言語のアプリケーションを使用して PolarDB データベースにアクセスする方法について説明します。

Java

このセクションでは、Maven プロジェクトを例に、MySQL JDBC ドライバーを使用して PolarDB-X インスタンスに接続する方法について説明します。

  1. pom.xml ファイルに MySQL JDBC ドライバーの依存関係を追加します。次のコードは例です。

    <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) {
          // 接続するデータベースのエンドポイント、ポート、および名前。
          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("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. [プライベートエンドポイント] を使用する場合:

    1. ECS インスタンスと PolarDB-X インスタンスが同じ VPC 内にあるかどうかを確認します。同じ VPC 内にない場合は、[プライベートエンドポイント] を使用できません。次のいずれかのソリューションを使用して、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. [パブリックエンドポイント] を使用する場合は、ECS インスタンスのパブリック IP アドレスが PolarDB-X インスタンスのホワイトリストに追加されているかどうかを確認します。詳細については、「インスタンスのホワイトリストを設定する」をご参照ください。

説明

仮想ホストまたはシンプルなアプリケーションサーバーから PolarDB-X インスタンスに接続するために [プライベートエンドポイント] を使用することはできません。

オンプレミス環境が PolarDB-X インスタンスに接続できない場合はどうすればよいですか?

次の手順を実行して問題をトラブルシューティングします。

  1. PolarDB-X インスタンスが [実行中] 状態であるかどうかを確認します。

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

    説明

    データベースのエンドポイントは [パブリックエンドポイント] である必要があります。PolarDB-X インスタンスと同じ VPC 内にある ECS インスタンスを使用する場合は、[プライベートエンドポイント] を使用できます。

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

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

    オンプレミスマシンのパブリック IP アドレスを取得するには、次のいずれかの方法を使用します。

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

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

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

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

    image

「Access denied for user 'xxx'@'xxx' (using password: YES)」エラーで PolarDB-X インスタンスへの接続に失敗した場合はどうすればよいですか?

このエラーは、データベースアカウントまたはパスワードが正しくないことを示します。正しく入力したかどうかを確認してください。PolarDB for Distributed コンソール に移動し、[設定と管理] > [アカウント管理] を選択して、データベースのアカウントとパスワードを管理 できます。

「Unknown MySQL server host 'xxx'」エラーで PolarDB-X インスタンスへの接続に失敗した場合はどうすればよいですか?

このエラーは、データベースのエンドポイントが正しくないことを示します。正しく入力したかどうかを確認してください。正しいフォーマットは pxc-xxx.polarx.rds.aliyuncs.com です。PolarDB for Distributed コンソール に移動し、[基本情報] > [接続情報] を選択して、データベースのエンドポイントを管理できます。

「Can't connect to MySQL server on 'xxx'」または「Connection timed out」エラーで PolarDB-X インスタンスへの接続に失敗した場合はどうすればよいですか?

この問題は、お使いの環境のパブリック IP アドレスまたは CIDR ブロックが PolarDB-X インスタンスのホワイトリストに追加されていないか、入力したパブリック IP アドレスまたは CIDR ブロックが無効であるために発生する可能性があります。

オンプレミスマシンのパブリック IP アドレスを取得するには、次のいずれかの方法を使用します。

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

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

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

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

image

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

アプリケーションが SpringBoot、MyBatis、Java Database Connectivity (JDBC) Driver などの一般的なオブジェクトリレーショナルマッピング (ORM) フレームワークを使用してデータベースにアクセスする場合、トランザクション、SQL 文、パケット転送など、さまざまなレベルで SQL クエリのクライアント側タイムアウトを設定できます。例としては、Spring の transaction_timeout パラメーター、MyBatis の statement_timeout パラメーター、JDBC MySQL ドライバーの 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>