MySQL RDSインスタンスを作成しましたが、データベース名を書き込まずに接続しようとすると、接続しますが、テーブルを作成できません。名前を書き込むと、接続が失敗し、理由がわかりません。
エラー
エンドポイント、ユーザー、パスワード、DBの名前(prueba
(スペイン語でテスト))があります。
AWSコンソール
ご覧のとおり、インスタンスの名前は「prueba」です。コンソールでDBの名前を入力するように求められたとき、私は「prueba」も書きました。
2番目のスクリーンショットで丸で囲んだ名前は、mysqlデータベースの名前ではなく、データベースインスタンスがどのように知られているかの単なる識別子ですAWSと同様、つまりエンドポイント名。これらは異なる場合があります!
MySQLデータベース名を指定せずにログインすると、接続と資格情報が正しいことを意味します。 これらのテーブルを作成するデータベースを選択しなかったため、テーブルを作成できません。
では、指定されたデータベース名で接続できないのはなぜですか?
RDSインスタンスのセットアップ時にAWSによって作成されたデフォルトのデータベース名はprueba
ではなく他のものであると思います。 RDSの[詳細]タブで次のことがわかるはずです。
MyEndpoint Nameはprueba
ですが、MySQL Database Nameはsomething
であることに注意してください。
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データベース名を把握する必要があります。
SHOW DATABASES;
、またはCREATE DATABASE whatever;
を使用するか、DBツールのダイアログを使用して、新しいものを作成します。データベース名を取得したら、接続ダイアログで、またはUSE whatever;
を使用してデータベースに接続し、最後にテーブルを作成します。
それが役に立てば幸い:)
最初にデータベースを作成せずにテーブルを作成することはできません。データベース名なしでログインし、新しいデータベースを作成してからテーブルを作成します。うまくいきます。