このトピックでは、PolarDB for MySQL クラスタをすぐに使い始める方法について説明します。 クラスターの作成、ホワイトリストの構成、データベースアカウントの作成、クラスタへの接続など、主要な操作について説明します。
チュートリアル
以下の手順について質問がある場合は、対応する手順をクリックして手順をご確認ください。
1. クラスタを作成する
クイック購入 ページに移動して、最小限の構成で PolarDB の PolarDB for MySQL クラスタをすばやく作成します。 次の表にパラメータを示します。 表に含まれていないパラメータについては、デフォルト値を保持します。 クラスタの作成方法の詳細については、「Enterprise Edition クラスタを購入する」または「Standard Edition クラスタを購入する」をご参照ください。
パラメータ | 説明 |
課金方法 | PolarDB クラスタの課金方法。 詳細については、「課金方法」をご参照ください。
|
リージョン | PolarDB クラスタのリージョン。 説明 アプリケーションを実行する Elastic Compute Service (ECS) インスタンスと同じリージョンに PolarDB クラスタをデプロイしてください。 そうしないと、クラスタとインスタンスは内部ネットワークを介して相互に通信できません。 |
データベースエンジン | PolarDB クラスタのデータベースエンジン。
説明 クイック購入では、MySQL 8.0 データベースエンジンのみを選択できます。 クラスタに別の MySQL バージョンを選択する場合は、購入ページの左上隅にある [カスタム購入] タブをクリックします。 |
データベースエディション | クラスタエディション。 有効な値:
説明
|
ネットワークタイプ | PolarDB クラスタが属する仮想プライベートクラウド (VPC) と vSwitch。 説明
|
デプロイメントモード (オプション) | PolarDB クラスタ内のノード数と対応する高可用性 (HA) モード。 詳細については、「高可用性モード (ホットスタンバイストレージクラスタ)」をご参照ください。
説明 課金方法 パラメータを サブスクリプション または 従量課金制 に設定する場合は、このパラメータを構成する必要があります。 |
ノードタイプ | PolarDB クラスタの計算ノードの仕様。 ビジネス要件を満たす仕様を選択します。 他の仕様を選択するには、購入ページの左上隅にある [カスタム購入] タブをクリックします。 |
ストレージ容量 (オプション) | PolarDB クラスタのストレージ容量。 説明 課金方法 パラメータを サブスクリプション または 従量課金制 に設定し、データベースエディション パラメータを Standard Edition に設定する場合は、このパラメータを構成する必要があります。 |
2. ホワイトリストを構成する
PolarDB コンソール にログインします。 左側のナビゲーションウィンドウで、[クラスタ] をクリックします。 左上隅で、ホワイトリストを構成するクラスタのリージョンを選択します。 クラスタリストで、クラスタの ID をクリックして [基本情報] ページに移動します。 [設定と管理] > [クラスタホワイトリスト] を選択して、IP アドレスホワイトリストまたはセキュリティグループを追加します。 詳細については、「クラスタのホワイトリストを構成する」および「セキュリティグループを構成する」をご参照ください。
クラスタと同じ VPC 内の ECS インスタンスから PolarDB クラスタにアクセスする場合は、VPC の CIDR ブロックをデフォルトグループに追加できます。
クラスタとは異なる VPC 内の ECS インスタンスから PolarDB クラスタにアクセスする場合は、ECS インスタンスのパブリック IP アドレスを新しい IP アドレスホワイトリストに追加するか、ECS インスタンスが属するセキュリティグループをクラスタホワイトリストに追加します。
オンプレミスネットワーク環境から PolarDB クラスタにアクセスする場合は、オンプレミスネットワークのパブリック IP アドレスを新しい IP アドレスホワイトリストに追加します。
次のいずれかの方法を使用して、オンプレミスネットワーク環境のパブリック IP アドレスを取得します。
Linux: ターミナルを開き、
curl ifconfig.me
コマンドを入力して、Enter キーを押します。Windows: コマンドプロンプトを開き、
curl ip.me
コマンドを入力して、Enter キーを押します。macOS: ターミナルを開き、
curl ifconfig.me
コマンドを入力して、Enter キーを押します。
ローカルネットワーク環境でプロキシを使用している場合、上記の方法で取得した IP アドレスは実際のパブリック IP アドレスではない可能性があります。 この場合は、
0.0.0.0/0
CIDR ブロックを PolarDB クラスタのホワイトリストに追加します。 クラスタに接続した後、SHOW PROCESSLIST;
コマンドを実行してパブリック IP アドレスを取得し、クラスタのホワイトリストに追加します。 その後、0.0.0.0/0
CIDR ブロックをホワイトリストから削除します。0.0.0.0/0
を IP ホワイトリストに追加すると、すべてのソースがクラスタにアクセスできるようになります。 必要な場合を除き、0.0.0.0/0 をホワイトリストに追加しないでください。
3. データベースアカウントを作成する
PolarDB コンソール にログインします。 左側のナビゲーションウィンドウで、[クラスタ] をクリックします。 左上隅で、データベースアカウントを作成するクラスタのリージョンを選択します。 クラスタリストで、クラスタの ID をクリックして [基本情報] ページに移動します。 [設定と管理] > [アカウント] を選択して、データベースアカウントを作成します。 詳細については、「データベースアカウントを作成および管理する」をご参照ください。
特権アカウントまたは標準アカウントを作成できます。 これら 2 種類のアカウントには、異なる権限があります。 ビジネス要件に基づいてデータベースアカウントを作成します。 詳細については、「アカウント権限」をご参照ください。
4. クラスタのエンドポイントを取得する
PolarDB コンソール にログインします。 左側のナビゲーションウィンドウで、[クラスタ] をクリックします。 左上隅で、クラスタのリージョンを選択します。 クラスタリストで、クラスタの ID をクリックして [基本情報] ページに移動します。 [データベース接続] セクションで、クラスタのエンドポイントを見つけることができます。 詳細については、「クラスタのエンドポイントを管理する」をご参照ください。
クラスターエンドポイントを使用することをお勧めします。 デフォルトのポート番号は 3306 です。
アクセス環境に基づいて、[プライベート] エンドポイントまたは [パブリック] エンドポイントを使用します。
クラスタと同じ VPC 内の ECS インスタンスから PolarDB クラスタにアクセスする場合は、[プライベート] エンドポイントを使用します。
オンプレミス環境から PolarDB クラスタにアクセスする場合は、[パブリック] エンドポイントを使用します。 パブリックエンドポイントを申請するには、[申請] をクリックします。
[パブリックエンドポイント] を使用して PolarDB クラスタに接続する場合、クラスタは最適なパフォーマンスを達成できません。
[プライベート] エンドポイントを使用して、仮想ホストおよび軽量サーバーから PolarDB クラスタに接続することはできません。
5. クラスタに接続する
ビジネス要件に基づいて接続方法を選択できます。 クラスタへの接続の例を以下に示します。
DMS を使用してクラスタに接続する
DMS は、Alibaba Cloud が提供する視覚化されたデータ管理サービスです。 DMS は、データ管理、スキーマ管理、アクセス制御、セキュリティ監査、ビジネスインテリジェンス (BI) チャート、データトレンド、データ追跡、パフォーマンス最適化、サーバー管理などのさまざまな管理サービスを提供します。 他のツールを使用せずに、DMS で PolarDB クラスタを管理できます。
PolarDB コンソール にログインします。 左側のナビゲーションウィンドウで [クラスタ] をクリックします。 左上隅でリージョンを選択し、リスト内のクラスタの ID をクリックして [基本情報] ページに移動します。 ページの右上隅にある [データベースにログイン] をクリックします。
表示されるダイアログボックスで、PolarDB for MySQL クラスタ用に作成した [データベースアカウント] と [データベースパスワード] を入力し、[ログイン] をクリックします。
PolarDB for MySQL クラスタにログインした後、左側のナビゲーションウィンドウで [接続済みインスタンス] をクリックして、PolarDB for MySQL クラスタを表示および管理します。
クライアントを使用してクラスタに接続する
MySQL クライアントを使用して、PolarDB クラスタに接続できます。 この例では、MySQL Workbench 8.0.29 を使用しています。 他のタイプのクライアントを使用する場合の操作も同様です。
MySQL Workbench をインストールします。 詳細については、MySQL Workbench ダウンロードページ にアクセスしてください。
MySQL Workbench を起動し、[データベース] > [データベースに接続] を選択します。
接続情報を入力し、[OK] をクリックします。
パラメータ
説明
例
ホスト名
データベースエンドポイント。 詳細については、「データベース接続」をご参照ください。
pc-2***.rwlb.rds.aliyuncs.com
ポート
データベースエンドポイントに対応するポート番号。
説明デフォルトのポート番号は 3306 です。
3306
ユーザー名
データベースアカウント。 詳細については、「データベースアカウントを作成する」をご参照ください。
polardb_mysql_user
パスワード
データベースアカウントのパスワード。
Pass***233
CLI を使用してクラスタに接続する
サーバーに MySQL クライアントがインストールされている場合は、CLI でコマンドを実行して、PolarDB for MySQL クラスタに接続できます。
構文:
mysql -h <Endpoint> -P <Port> -u <Account> -p <Password>
例:
mysql -h pc-2***.rwlb.rds.aliyuncs.com -P3306 -upolardb_mysql_user -pPassword123
```
バイナリログファイルを保持する
分類
機能
説明
書き込み最適化された LSM-tree アーキテクチャのストレージエンジン X-Engine を採用しています。一般的なシナリオでは 3 ~ 5 倍、長い文字列行では 5 ~ 10 倍の圧縮率を実現し、70% 以上の使用コストを削減できます。
コールドデータアーカイブ(コールドデータ)
クラスタ内で更新がほとんどなく、読み取り頻度が非常に低いデータを、低コストの OSS に簡単に転送して保存し、データ保存コストを削減できます。
列指向インデックス(IMCI)
弾性並列クエリ(Elastic Parallel Query)
高並列最適化
データベースアカウントのパスワード。
パラメーター | 説明 | 例 |
-h | データベースのエンドポイント。詳細については、「データベース接続」をご参照ください。 | pc-2***.rwlb.rds.aliyuncs.com |
-P | データベースエンドポイントに対応するポート番号。 説明
| 3306 |
-u | データベースアカウント。詳細については、「データベースアカウントの作成」をご参照ください。 | polardb_mysql_user |
-p | データベースアカウントのパスワード。 説明 このパラメーターは必須です。
| Pass***233 |
アプリケーションを使用してクラスターに接続する
PolarDB for MySQL クラスターへの接続は、通常の MySQL データベースへの接続と似ています。データベースのエンドポイント、ポート、アカウント、およびパスワードを置き換えるだけです。次の例は、いくつかの開発言語でアプリケーションを使用して PolarDB データベースにアクセスする方法を示しています。
Java
この例では、Maven プロジェクトを使用して、MySQL JDBC ドライバーを使用して PolarDB for MySQL クラスターに接続します。
最初に、MySQL JDBC ドライバーの依存関係を pom.xml ファイルに追加します。サンプルコード:
<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) { // 接続先の PolarDB クラスターのエンドポイント、ポート、およびデータベース名。 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
この例では、Python3 を使用して、PyMySQL ライブラリを使用して PolarDB for MySQL クラスターに接続します。
最初に、PyMySQL ライブラリをインストールします。次のコマンドを実行してインストールできます。
pip3 install PyMySQL
クラスターに接続します。
<HOST>
、ポート番号、<USER>
、<PASSWORD>
、<DATABASE>
、および<YOUR_TABLE_NAME>
をデータベースの情報に置き換えます。import pymysql # データベース接続パラメーター。 host = '<HOST>' # PolarDB クラスターのエンドポイント。 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
この例では、go1.23.0 を使用して、database/sql
パッケージと go-sql-driver/mysql
ドライバーを使用して PolarDB for MySQL クラスターに接続します。
最初に、
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 クラスターのエンドポイント。 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() // 接続をテストします。 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()
クラスタ管理
ノード管理 | クラスタ仕様の変更 | 高可用性 | バックアップとリストア |
PolarProxy | 監視と最適化 | バージョン管理 | バイナリログ管理 |
よくある質問
ECS インスタンスから PolarDB クラスタに接続できないのはなぜですか。
次の手順を使用して、問題のトラブルシューティングを行います。
PolarDB クラスタが [実行中] 状態であるかどうかを確認します。
データベースのエンドポイント、ポート、アカウント、およびパスワードが正しいかどうかを確認します。 詳細については、「データベースのエンドポイントとポートを取得する」をご参照ください。
ネットワークの状態を確認します。 ECS インスタンスで
ping
またはtelnet
コマンドを実行して、ネットワーク接続をテストできます。[プライベート] エンドポイントを使用している場合:
ECS インスタンスと PolarDB クラスタが同じ VPC に存在するかどうかを確認します。 存在しない場合は、[プライベート] エンドポイントを使用できません。 次のいずれかの方法を使用して、ECS インスタンスと PolarDB クラスタを同じ VPC に配置できます。
ECS インスタンスが存在する VPC を切り替えます。
PolarDB Cluster Edition の場合は、「PolarDB クラスタが存在する VPC を切り替える」の手順に従って、VPC を切り替えることができます。
Cloud Enterprise Network ( CEN ) を使用して、「同じリージョン内の VPC を接続する」ことができます。
ECS インスタンスのプライベート IP アドレス、CIDR ブロック、またはセキュリティグループが PolarDB クラスタのホワイトリストに追加されているかどうかを確認します。 詳細については、「ホワイトリストを設定する」をご参照ください。
[パブリック] エンドポイントを使用している場合は、ECS インスタンスのパブリック IP アドレスまたはセキュリティグループが PolarDB クラスタのホワイトリストに追加されているかどうかを確認します。 詳細については、「ホワイトリストを設定する」をご参照ください。
仮想ホストおよび軽量サーバーを使用して、[プライベート] エンドポイント経由で PolarDB クラスタに接続することはできません。
オンプレミスネットワーク環境から PolarDB クラスタに接続できないのはなぜですか。
次の手順を使用して、問題のトラブルシューティングを行います。
PolarDB クラスタが [実行中] 状態であるかどうかを確認します。
データベースのエンドポイント、ポート、アカウント、およびパスワードが正しいことを確認します。詳細については、「データベースのエンドポイントとポートを取得する」をご参照ください。
説明[パブリック] エンドポイントを使用する必要があります。同じ VPC 内に存在する ECS インスタンスを PolarDB クラスタとして使用している場合は、[プライベート] エンドポイントを使用できます。
ネットワークの状態を確認します。 ローカル環境で
ping
またはtelnet
コマンドを実行して、ネットワーク接続をテストできます。ローカル環境のパブリック IP アドレスまたは CIDR ブロックが PolarDB クラスタのホワイトリストに追加されているかどうかを確認します。詳細については、「ホワイトリストを構成する」をご参照ください。
ローカル環境のパブリック IP アドレスを取得するには、次の方法を使用します。
Linux: CLI を開き、
curl ifconfig.me
コマンドを入力し、Enter キーを押します。Windows:コマンドプロンプトを開き、
curl ip.me
コマンドを入力し、Enter キーを押します。macOS:ターミナルを起動し、
curl ifconfig.me
コマンドを入力し、Enter キーを押します。
ローカルネットワーク環境でプロキシを使用している場合、上記の方法で取得した IP アドレスは実際のパブリック IP アドレスではない可能性があります。PolarDB クラスターのホワイトリストに
0.0.0.0/0
CIDR ブロックを追加できます。クラスターに接続した後、SHOW PROCESSLIST;
コマンドを実行してパブリック IP アドレスを取得し、クラスターのホワイトリストに追加します。次に、ホワイトリストから0.0.0.0/0
CIDR ブロックを削除します。
PolarDB クラスタに接続できません。 次のエラーが返されます: Access denied for user 'xxx'@'xxx' (using password: YES)
データベースアカウントまたはパスワードが正しくありません。 正しいアカウントとパスワードを入力していることを確認してください。 PolarDB コンソール にログインし、[設定と管理] > [アカウント] を選択して、データベースアカウントとパスワードを管理できます。
PolarDB クラスタに接続できません。 次のエラーが返されます: Unknown MySQL server host 'xxx'
データベースエンドポイントが正しくありません。 正しいエンドポイントを入力していることを確認してください。 エンドポイントの形式は pc-xxxxxx.rwlb.rds.aliyuncs.com です。 PolarDB コンソール にログインし、[基本情報] > [データベース接続] を選択して、データベースのエンドポイントを管理できます。
PolarDB クラスタに接続できません。 次のエラーが返されます: Can't connect to MySQL server on 'xxx'or Connection timed out
現在の環境のパブリック IP アドレスまたは CIDR ブロックが PolarDB クラスタのホワイトリストに追加されていないか、ホワイトリストに追加されたパブリック IP アドレスまたは CIDR ブロックが正しくない可能性があります。
次の方法を使用して、ローカル環境のパブリック IP アドレスを取得します。
Linux: CLI を開き、
curl ifconfig.me
コマンドを入力して、Enter キーを押します。Windows:コマンドプロンプトを開き、
curl ip.me
コマンドを入力して、Enter キーを押します。macOS:ターミナルを起動し、
curl ifconfig.me
コマンドを入力して、Enter キーを押します。
ローカルネットワーク環境でプロキシを使用している場合、前述の方法で取得した IP アドレスは実際のパブリック IP アドレスではない可能性があります。 0.0.0.0/0
CIDR ブロックを PolarDB クラスタのホワイトリストに追加できます。 クラスタに接続した後、SHOW PROCESSLIST;
コマンドを実行してパブリック IP アドレスを取得し、クラスタのホワイトリストに追加します。 その後、0.0.0.0/0
CIDR ブロックをホワイトリストから削除します。