このトピックでは、データ管理 (DMS) またはMySQLクライアントを使用してPolarDB for MySQLクラスターに接続する方法について説明します。
前提条件
クラスター用に特権アカウントまたは標準アカウントが作成されます。 詳細については、「データベースアカウントの作成と管理」をご参照ください。
クラスターエンドポイントが取得されます。 詳細については、「エンドポイントとポート番号の表示」をご参照ください。
説明プライマリエンドポイントとクラスターエンドポイントの違いについては、「エンドポイント」をご参照ください。
クラスターへの接続
DMS を使用を使用したクラスターへの接続
DMSは、Alibaba Cloudが提供する視覚化されたデータ管理サービスです。 DMSは、データ管理、スキーマ管理、アクセス制御、ビジネスインテリジェンス (BI) チャート、データトレンド、データ追跡、パフォーマンス最適化、サーバー管理などのさまざまな管理サービスを提供します。 DMSを使用して、MySQL、SQL Server、PostgreSQLデータベースなどのリレーショナルデータベースと、MongoDBやRedisデータベースなどのNoSQLデータベースを管理できます。 DMSを使用してLinuxサーバーを管理することもできます。
PolarDBコンソールにログインします。
コンソールの左上隅で、クラスターが存在するリージョンを選択します。
クラスターを見つけて、クラスターIDをクリックします。
概要ページの右上隅にあるデータベースにログインをクリックします。
表示されるダイアログボックスで、PolarDB for MySQLクラスターのために作成したデータベースアカウントとデータベースパスワードを入力し、ログインをクリックします。
説明ログオンアカウントには、データベースに対する管理権限が付与されている必要があります。 そうしないと、DMSコンソールの左側のナビゲーションペインにデータベースが見つかりません。 アカウントに付与されている権限を変更する方法については、「データベースアカウントのパスワードの管理」をご参照ください。
DMSにログインした後、ページを更新します。 左側のナビゲーションウィンドウで、[インスタンスの接続] をクリックします。
[インスタンス接続] リストで、クラスター名をクリックし、データベースを検索して、データベース名をダブルクリックします。 その後、データベースを管理できます。
クライアントを使用したクラスターへの接続
MySQLクライアントを使用してPolarDBクラスターに接続できます。 次の例で使用されるクライアントはHeidiSQLです。
HeidiSQLを起動します。
セッションマネージャーの左下隅で、新しい.
接続するPolarDBクラスターに関する情報を指定します。 下表にパラメーターを示します。
パラメーター
説明
ネットワークタイプ
データベースへの接続に使用されるネットワークプロトコルの種類。 [MariaDB] または [MySQL (TCP/IP)] を選択します。
ホスト名 /IPアドレス
PolarDBクラスターのパブリックエンドポイントまたはプライベートエンドポイントを入力します。
クライアントが、PolarDBクラスターと同じリージョンにデプロイされ、同じネットワークタイプを持つElastic Compute Service (ECS) インスタンスで実行されている場合、プライベートエンドポイントを使用します。 たとえば、ECSインスタンスとPolarDBクラスターが中国 (杭州) リージョンの仮想プライベートクラウド (VPC) にデプロイされている場合、プライベートエンドポイントを使用して安全で高速な接続を確立できます。
他のシナリオでは、パブリックエンドポイントを使用します。
PolarDBクラスターのエンドポイントを表示する方法の詳細については、「エンドポイントとポート番号の表示」をご参照ください。
ユーザー名
PolarDBクラスターへの接続に使用されるアカウントの名前。
パスワード
アカウントのパスワードを入力します。
ポート
PolarDBクラスターへの接続に使用されるパブリックまたはプライベートエンドポイントのポート番号。 デフォルトのポート番号は、3306 です。
[開く] をクリックします。 接続情報が有効な場合、クライアントはクラスターに接続されます。
CLIを使用したクラスターへの接続
MySQLがサーバーにインストールされている場合、CLIで次のコマンドを実行してPolarDB for MySQLクラスターに接続できます。
mysql -h<Endpoint> -P<Port> -u<Username> -p<Password>
例:
mysql -hpc-bp1867z0z*****kjd.rwlb.rds.aliyuncs.com -P3306 -uroot12 -pPass*****33
パラメーター | 説明 | 例 |
-h | PolarDBクラスターのパブリックまたはプライベートエンドポイント。 PolarDBクラスターのエンドポイントを表示する方法の詳細については、「エンドポイントとポート番号の表示」をご参照ください。 |
|
-P | PolarDBクラスターへの接続に使用されるポート番号。
説明
|
|
-u | PolarDBクラスターへのアクセスに使用するデータベースアカウントの名前。 |
|
-p | データベースアカウントのパスワード。 説明 This parameter is required.
|
|
よくある質問
ECSインスタンスをPolarDBクラスターの内部エンドポイントに接続できないのはなぜですか。
ECSインスタンスをPolarDBクラスターの内部エンドポイントに接続するには、次の要件を満たす必要があります。
ECSインスタンスとPolarDBクラスターは同じリージョンにデプロイされています。
ECSインスタンスとPolarDBクラスターは同じネットワークタイプを使用しています。 VPCネットワークタイプを使用する場合は、同じVPC上にある必要があります。 ECSインスタンスとPolarDBクラスターが同じVPC上にない場合、CENとBasic Editionのトランジットルーターを使用して同じリージョンのVPCを接続できます。
ECSインスタンスのプライベートIPアドレスがPolarDBクラスターのホワイトリストに追加されます。
ECSインスタンスがクラシックネットワーク上にあるときにPolarDBクラスターがVPC上にある場合、次のいずれかのソリューションを使用して、ECSインスタンスをPolarDBクラスターの内部エンドポイントに接続できます。
解決策1: ECSインスタンスをクラシックネットワークからPolarDBクラスターがデプロイされているVPCに移行します。 詳細については、「クラシックネットワークからVPCへのECSインスタンスの移行」をご参照ください。
説明ECSインスタンスがクラシックネットワーク上の他のリソースにもアクセスする必要がある場合は、ECSインスタンスを移行しないでください。 それ以外の場合、ECSインスタンスはクラシックネットワークにアクセスできません。
解決策2: ClassicLink機能を使用して、クラシックネットワークをVPCネットワークに接続します。
ECSインスタンスをPolarDBクラスターのパブリックエンドポイントに接続できないのはなぜですか。
次の手順を実行します。
接続のエンドポイント、ポート、アカウント、およびパスワードが正しいかどうかを確認します。 該当する場合は、PolarDBクラスターのIPホワイトリストが正しいかどうかを確認します。
PolarDBクラスターのIPホワイトリストに
0.0.0.0/0
を追加します。 クラスターが接続されたら、SHOW processlist
ステートメントを実行して、クラスターの出力パブリックIPアドレスを取得します。 クラスターのホワイトリストに追加し、ホワイトリストから0.0.0.0/0
を削除します。説明IPホワイトリストの
0.0.0.0/0
は、すべてのソースがクラスターにアクセスできることを示します。 必要な場合を除き、クラスターのIPホワイトリストに0.0.0.0/0を追加しないでください。
ECSインスタンスをPolarDBクラスターに接続できないのはなぜですか。
ECSインスタンスとPolarDBクラスターが同じアカウントに属し、同じリージョンの同じVPC上にある場合、ECSインスタンスは内部ネットワークを介してPolarDBクラスターに接続できます。 VPC分離は、異なるアカウントまたは異なるリージョンに存在します。 ECSインスタンスがPolarDBクラスターに接続できない一般的な理由をご確認ください。
クラスターに設定されていない、または正しく設定されていないホワイトリスト。 インターネット接続を使用する場合は、出力IPアドレスが変更されているかどうかを確認します。
ネットワークの問題。 サーバーで
ping Cluster endpoint
またはtelnet Cluster endpoint:Port
コマンドを実行して、ネットワーク接続をテストできます。仮想ホストと軽量サーバーを使用して、内部ネットワーク経由でPolarDBクラスターに接続することはできません。
PolarDBクラスターがオーバーロードされているかどうか、およびPolarDBクラスターが実行されているかどうかを確認します。