AWS RDS mariadb インスタンスへの接続中にエラーが発生しました。

AWS RDS mariadb インスタンスへの接続中にエラーが発生しました。

私はAWS EC2 Ubuntuインスタンスと同伴するRDS mariadbインスタンスを作成しました。 (私は現在無料評価を使用しています。)

同じVCS内でのみアクセスできるようにRDSへのパブリックアクセスを無効にしました。私のEC2ボックスはVCSと同じ場所にあり、そこからデータベースに接続したいと思います。

Ubuntuコンピュータにmariadb-clientをインストールしました。 RDSインスタンスページのエンドポイントをRDSボックスとして使用し、次のコマンドを実行しました。

mysql  -P 3306 -u thomas -p -h ******.******.us-east-1.rds.amazonaws.com

ERROR 2005 (HY000): Unknown MySQL server host '******.*****.us-east-1.rds.amazonaws.com' (-2)

ホスト*****.********.us-east-1.rds.amazonaws.comが見つかりませんでした。

初めて試したときにサーバー名を間違って入力したとき、エラーの後に(-3)が表示されるのを見て楽しいと思いました。だからGoogleでエラーコードを探してみるとこんな内容がありました。https://dev.mysql.com/doc/refman/5.5/en/error-messages-client.htmlエラーコード2005について教えてくださいが、括弧内の部分は教えてくれません。

ドキュメントでインクルードを参照していますが、確認しましたが、-2が見つかりませんでした。だから:

1)括弧内の情報はどこで確認できますか?

2)RDSインスタンスにアクセスできないのはなぜですか?

答え1

まあ、予想通り私はばかだ。まず、私はこれを認識していませんでしたが、何らかの理由でエンドポイントが変更されました。おそらく、設定を変更した後に尋ねることなく再構築し、新しいエンドポイント名を与えたでしょう。これがnslookupおよびホストコマンドが失敗する理由です。

その後、ジョブの開始時に接続に使用したスクリプトジョブを開始し、-hパラメーターのホスト名の末尾に:3306を残したことに気づきました。私はこれを取り除き、すべてが機能し始めました。

Web開発者のロボットに「いいえ」と投票すると、これが起こります。

答え2

ホスト名の代わりに RDS インスタンスの IP アドレスを使用することをお勧めします。クライアントパッケージなしでポートに直接アクセスできることを確認してください。ホスト3306にリモートでログインします。

また、VPCにあるので、サブネットが一致していることを確認してください。これにより、以前は複数の内部サブネットを持つことができました。

関連情報