現象記述
CVMまたはLighthouseから、TDSQL-C for MySQLの内部ネットワークアドレスを通じてインスタンスに接続しましたが、接続に失敗しました。
説明:
TDSQL-C for MySQLへの接続・ログインには、DMCデータベース管理コンソール、内部ネットワーク接続、外部ネットワーク接続、CCN接続など複数の方式があります。接続方式によって必要となる接続条件は異なります。例えば、TDSQL-C for MySQLに外部ネットワークアドレスで接続する場合、コマンドラインでインスタンスの内部ネットワークアドレスを入力すると接続に失敗します。また、Lighthouseを購入し、CCNによるネットワーク接続を確立せずに直接コマンドでTDSQL-C for MySQLに接続しようとした場合も、接続に失敗します。
したがって、接続に失敗した場合は、まずクラスタ接続 > 概要に記載されている接続方式と適用シナリオを参照し、接続条件が正しく使用されているかご自身で確認されることをお勧めします。 原因のまとめ
|
| パスワードエラー。 |
| データベースアカウントはアクセスする具体的なホストアドレスに制限をかけています。 |
| 接続コマンドエラー。 |
| コマンドラインまたは設定ファイル内のIPとポートに誤りがあります。 |
| ルーティングテーブルが有効になっていません。 |
| TDSQL-C for MySQLインスタンスのストレージ容量が満杯、最大接続数が上限に達している、timeoutパラメータ設定の問題、「アベイラビリティーゾーン切り替え」状態にあるなど。 |
TDSQL-C for MySQLインスタンスの稼働状態 | TDSQL-C for MySQLインスタンスは隔離中であり、ごみ箱から復元することが可能です。 |
CVMインスタンスのステータス | CVMインスタンスが隔離中またはシャットダウン中の場合、コンソールから復元または起動してください。 |
Lighthouseインスタンスのステータス | Lighthouseインスタンスが隔離中またはシャットダウン中の場合、コンソールから復元または起動してください。 |
解決策
パスワードの問題:パスワードエラー
アカウントに権限付与されたホストアドレスの問題:データベースアカウントのアクセスが特定のホストアドレスに制限されています
データベースアカウントは、セキュリティグループやサブネットなどのネットワーク環境制限に加えて、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 <ポート番号、デフォルトは3306> -p
<内部ネットワーク IP アドレス>:ターゲット TDSQL-C for MySQL データベースインスタンスのプライベートネットワークアドレスに置き換えを行います。TDSQL-C for MySQLコンソールのクラスタ詳細ページでプライベートネットワークアドレスを確認できます。 <ユーザー名、デフォルト root>:ターゲット TDSQL-C for MySQL データベースインスタンスのアカウント名に置き換えてください。デフォルトのアカウント名は root です。
<ポート番号、デフォルト3306>:ターゲット TDSQL-C for MySQL データベースインスタンスのプライベートネットワークポート番号に置き換えを行います。デフォルトは3306です。変更した場合は、変更後のポート番号に準じてください。
IPとポートの問題:コマンドラインまたは設定ファイルのIPとポートに誤りがあります
コマンド接続でデータベースにログインする際は、インスタンスの内部ネットワークIPとポート番号が正しいかどうかを確認してください。内部ネットワークIPとポート番号は、TDSQL-C for MySQLコンソールのクラスタ詳細ページで確認できます。 CCNルーティング問題:ルーティングテーブルが有効化されていません
CCNを介してデータベースに接続する前に、LighthouseとCCNインスタンスの内部ネットワーク相互接続が必要です。その後、CCNインスタンスの下にターゲットTDSQL-C for MySQLのVPCネットワークアドレスを追加します。CCNインスタンスのルーティングテーブルでターゲットTDSQL-C for MySQLのVPCネットワークセグメントへのルートが有効になっていない場合、接続できません。対応するルートを有効にしてから再接続する必要があります。
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が「アベイラビリティーゾーン切替中」状態の場合、接続に失敗します。切替完了まで待機した後、改めてコマンドで接続してください。