web-dev-qa-db-ja.com

AWS RDSインスタンスに接続しようとすると、不明なデータベース

MySQL RDSインスタンスを作成しましたが、データベース名を書き込まずに接続しようとすると、接続しますが、テーブルを作成できません。名前を書き込むと、接続が失敗し、理由がわかりません。

エラー

Error screen shotWorking screen shot

エンドポイント、ユーザー、パスワード、DBの名前(prueba(スペイン語でテスト))があります。

AWSコンソール

AWS Console

ご覧のとおり、インスタンスの名前は「prueba」です。コンソールでDBの名前を入力するように求められたとき、私は「prueba」も書きました。

RDSインスタンスを作成すると、「追加の構成」セクションがあり、データベース名を指定できます。名前を指定しないと、デフォルトではデータベースが作成されないことを警告します。

enter image description here

しかし、他の人が指摘したように、データベース名なしで選択したツールに接続して、CREATE DATABASE xxx;ここで、xxxはデータベースの名前であり、使用すると、そのデータベースを今後使用できます。

1
Rob

2番目のスクリーンショットで丸で囲んだ名前は、mysqlデータベースの名前ではなく、データベースインスタンスがどのように知られているかの単なる識別子ですAWSと同様、つまりエンドポイント名。これらは異なる場合があります!

MySQLデータベース名を指定せずにログインすると、接続と資格情報が正しいことを意味します。 これらのテーブルを作成するデータベースを選択しなかったため、テーブルを作成できません。


では、指定されたデータベース名で接続できないのはなぜですか?

RDSインスタンスのセットアップ時にAWSによって作成されたデフォルトのデータベース名pruebaではなく他のものであると思います。 RDSの[詳細]タブで次のことがわかるはずです。

Database Details

MyEndpoint Namepruebaですが、MySQL Database Namesomethingであることに注意してください。

RDSにログインしてデータベースを一覧表示できます。

~ $ mysql -h prueba.xxxxxxxxxx.ap-southeast-2.rds.amazonaws.com -uroot -p
Enter password: 
Server version: 5.6.40 Source distribution

MySQL [(none)]> SHOW DATABASES;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| innodb             |
| mysql              |
| performance_schema |
| something          |      <<<< Here is my "default" database
| sys                |
+--------------------+
6 rows in set (0.04 sec)

まとめると、実際のmysqlデータベース名を把握する必要があります。

  • find outRDS詳細画面からインスタンスを作成するときに指定したデフォルトのデータベース名でした 、または
  • データベース名を指定せずにログインしてデータベース名を検索してから、SHOW DATABASES;、または
  • CREATE DATABASE whatever;を使用するか、DBツールのダイアログを使用して、新しいものを作成します

データベース名を取得したら、接続ダイアログで、またはUSE whatever;を使用してデータベースに接続し、最後にテーブルを作成します

それが役に立てば幸い:)

6
MLu

最初にデータベースを作成せずにテーブルを作成することはできません。データベース名なしでログインし、新しいデータベースを作成してからテーブルを作成します。うまくいきます。

1
Fer Dah