現象記述
CVMまたはサードパーティアプリケーションからTDSQL-C for MySQLの外部ネットワークアドレス経由でインスタンスに接続する際、接続に失敗します。
説明:
TDSQL-C for MySQL への接続およびログインには複数の方法があります。例えば、DMC データベース管理コンソールログイン、内部ネットワーク接続、外部ネットワーク接続、および CCN 接続など。異なる接続方法に必要な接続条件は異なります。例えば、お客様は外部ネットワークアドレス経由で TDSQL-C for MySQL に接続する必要があります。コマンドでデータベースに接続する場合、コマンドラインで入力するのがインスタンスの内部ネットワークアドレスであると、接続に失敗します。例えば、お客様が Lighthouse を購入した場合、CCN を介してネットワークを接続していないと、直接コマンドで TDSQL-C for MySQL に接続すると、接続に失敗します。したがって、接続に失敗した場合、まず クラスタ接続 > 概要 の接続方法とアプリケーションシナリオを参照して、接続条件が正しく使用されているかどうかを自己確認することをお勧めします。 原因のまとめ
|
| パスワードエラー。 |
| CVMのセキュリティグループ設定が間違っています。 |
| TDSQL-C for MySQLのセキュリティグループ設定が間違っています。 |
| データベースアカウントはアクセスする具体的なホストアドレスに制限をかけています。 |
| 接続コマンドエラー。 |
| コマンドラインまたは設定ファイル内のIPとポートに誤りがあります。 |
| TDSQL-C for MySQLインスタンスのストレージ容量が満杯、最大接続数が上限に達している、timeoutパラメータ設定の問題、「アベイラビリティーゾーン切り替え」状態にあるなど。 |
| インスタンスに接続する際に、Unknown MySQL server host(110または11004)エラーが発生しました。 |
TDSQL-C for MySQLインスタンスの稼働状態 | TDSQL-C for MySQLインスタンスは隔離中であり、ごみ箱から復元することが可能です。 |
CVMインスタンスのステータス | CVMインスタンスが隔離中またはシャットダウン中の場合、コンソールから復元または起動してください。 |
解決策
パスワードの問題:パスワードエラー
セキュリティグループ設定問題1:CVMセキュリティグループ設定の誤り
CVMでTDSQL-C for MySQLに接続する場合、CVMのセキュリティグループでアウトバウンドルールを設定する必要があります。アウトバウンドルールの宛先設定が0.0.0.0/0ではなく、かつプロトコルとポートがALLでない場合、TDSQL-C for MySQLのプライベートIPとポートをアウトバウンドルールに追加する必要があります。
1. セキュリティグループコンソールにログインし、セキュリティグループ名をクリックすると、CVMにバインドされているセキュリティグループの詳細ページに移動します。
2. アウトバウンドルールタブを選択し、ルール追加をクリックします。
「タイプ」でMySQL(3306)を選択し、「ターゲット」にTDSQL-C for MySQLのプライベートIPアドレス(範囲)を入力し、「ポリシー」で許可を選択します。
セキュリティグループ設定の問題2:TDSQL-C for MySQLのセキュリティグループ設定が間違っています
指定されたCVMがTDSQL-C for MySQLに接続する場合、TDSQL-C for MySQLのセキュリティグループでインバウンドルールを設定する必要があります。インバウンドルールの送信元設定が0.0.0.0/0ではなく、かつプロトコルとポートがALLでない場合、TDSQL-C for MySQLのプライベートIPとポートをインバウンドルールに追加する必要があります。
1. セキュリティグループコンソールにログインし、セキュリティグループ名をクリックすると、TDSQL-C for MySQLにバインドされているセキュリティグループの詳細ページに移動します。
2. インバウンドルールタブを選択し、ルール追加をクリックします。
3. 接続を許可するIPアドレス(範囲)および開放が必要なポート情報(TDSQL-C for MySQLのプライベートネットワークポート)を入力し、許可を選択します。
4. 「タイプ」でMySQL(3306)を選択し、「ソース」にTDSQL-C for MySQLのプライベートIPアドレス(範囲)を入力し、「ポリシー」で許可を選択します。
アカウントに権限付与されたホストアドレスの問題:データベースアカウントのアクセスが特定のホストアドレスに制限されています
データベースアカウントは、セキュリティグループやサブネットなどのネットワーク環境制限に加えて、TDSQL-C for MySQL自身のアカウントシステムによる制限も受けます。データベースアカウントが特定のホストアドレスを指定している場合、他のアドレスからTDSQL-C for MySQLに接続することはできません。
TDSQL-C for MySQLコンソールを通じてデータベースアカウントに許可されたホストアドレスを変更することで、データベースへの接続を制限し、データベースの接続セキュリティを向上させることができます。
2. アカウント管理ページを選択し、ホストを変更する必要があるアカウントを見つけ、操作列でその他 > ホスト変更を選択します。
3. ポップアップダイアログで新しいホストアドレスを入力し、確定をクリックすることで、アカウントに許可されたホストアドレスを変更できます。
説明:
ホストアドレスはIP形式のアドレスをサポートし、%(IP範囲制限なしを意味する)の入力も可能です。複数のホストは区切り文字で分割でき、区切り文字は改行、スペース、および; , |をサポートします。
例1:%を入力すると、IP範囲制限を行わないことを意味します。つまり、すべてのIPアドレスのクライアントがこのアカウントを使用してデータベースに接続することが許可されます。
例2:10.5.10.%を入力すると、IP範囲が10.5.10.%内にあるクライアントがこのアカウントを使用してデータベースに接続することが許可されることを意味します。
接続の構文エラー:接続コマンドが正しくありません
接続コマンドに誤りがないか確認し、標準的な外部ネットワーク接続コマンドを参照してください:
mysql -h <外部ネットワーク ip アドレス> -u <ユーザー名、デフォルトはroot> -P <外部ネットワークポート番号> -p
<外部ネットワーク ip アドレス>:ターゲット TDSQL-C for MySQL データベースインスタンスのパブリックネットワークアドレスに置き換えを行います。TDSQL-C for MySQLコンソールのクラスタ詳細ページでパブリックネットワークアドレスを確認できます。 <ユーザー名、デフォルト root>:ターゲット TDSQL-C for MySQL データベースインスタンスのアカウント名に置き換えてください。デフォルトのアカウント名は root です。
<パブリックネットワークポート番号>:ターゲット TDSQL-C for MySQL データベースインスタンスのパブリックネットワークポート番号に置き換えを行います。TDSQL-C for MySQLコンソールのクラスタ詳細ページでパブリックネットワークポート番号を確認できます。 IPとポートの問題:コマンドラインまたは設定ファイルのIPとポートに誤りがあります
データベースにコマンド接続でログインする際は、インスタンスのパブリックネットワークIPとポート番号が正しいか確認してください。TDSQL-C for MySQLコンソールのクラスタ詳細ページでパブリックネットワークIPとポート番号を確認できます。 TDSQL-C for MySQLインスタンスの問題:インスタンスディスクの満杯、最大接続数の上限到達、timeoutパラメータ設定の問題など
TDSQL-C for MySQLインスタンスのストレージ容量がいっぱいになると、データベースへの接続に影響する可能性があります。ストレージ容量の拡張を推奨します。操作についてはストレージ容量の調整を参照してください。 「ERROR 1040(00000):Too many connections」というメッセージが表示された場合、クラウドデータベースインスタンスの現在の最大接続数が制限を超えていることを示します。一般的な原因と解決策:
i. sleepスレッド数が多い場合、コンソールでwait_timeoutおよびinteractive_timeoutパラメータ値を引き下げることを推奨します。操作については設定インスタンスパラメータを参照してください。
ii. sleepスレッド数が少なく、低速クエリの蓄積もない場合、コンソールでmax_connectionsパラメータ値を引き上げることを推奨します。操作については設定インスタンスパラメータを参照してください。 インスタンスが「アベイラビリティーゾーン切替中」状態かどうかを確認してください。インスタンスに接続する際にTDSQL-C for MySQLが「アベイラビリティーゾーン切替中」状態の場合、接続に失敗します。切替完了まで待機した後、改めてコマンドで接続してください。
接続時に Unknown MySQL server host(110または11004)エラーが発生しました。
パブリックネットワークアドレスが誤って入力されている可能性があります。インスタンスのパブリックネットワークアドレスが有効化されているか、入力が正しいかを確認してください。クライアントが入力したパブリックネットワークアドレスに誤りがないことを確認した場合、pingコマンドでパブリックネットワークアドレスへの接続をテストし、名前解決が正常かどうかを確認します。
正常な場合、具体的なネットワーク遅延が返され、トラブルシューティングが終了します。
正常でない場合、Unknown hostエラーが返されます。チケットを提出して対応してください。