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