web-dev-qa-db-fra.com

Base de données inconnue lors de la tentative de connexion à une instance AWS RDS

J'ai créé une instance MySQL RDS, cependant, lorsque j'essaie de me connecter sans écrire le nom de la base de données, elle se connecte mais ne me permet pas de créer de tables. Lorsque j'écris le nom, la connexion échoue et je ne sais pas pourquoi.

Erreur

Error screen shotWorking screen shot

J'ai mon point de terminaison, mon utilisateur, mon mot de passe et le nom de la base de données, qui est prueba (test en espagnol)

Console AWS

AWS Console

Comme vous pouvez le voir, le nom de l'instance est "prueba". Et quand il m'a demandé d'entrer le nom de la DB dans sa console, j'ai aussi worte "prueba"

Lorsque vous créez, vous créez votre instance RDS, il y a une section "Configuration supplémentaire", dans laquelle vous pouvez spécifier le nom de la base de données, et il vous avertit que si aucun nom n'est fourni, aucune base de données ne sera créée par défaut.

enter image description here

Mais comme d'autres l'ont souligné, vous pouvez vous connecter avec l'outil de votre choix sans nom de base de données, effectuez une CREATE DATABASE xxx;xxx est le nom de la base de données, puis use peut utiliser cette base de données à l'avenir.

1
Rob

Le nom que vous avez encerclé dans la deuxième capture d'écran n'est pas un nom base de données mysql, c'est simplement un identifiant comment votre instance de base de données est connue sous le nom d'AWS, c'est-à-dire = nom du point final. Celles-ci peuvent être différentes!

Puisque la connexion sans spécifier le nom de la base de données MySQL fonctionne, cela signifie que votre connectivité et vos informations d'identification sont correctes. Vous ne pouvez pas créer de tables car vous n'avez pas sélectionné de base de données où créer ces tables.


Alors pourquoi ne pouvez-vous pas vous connecter avec un nom de base de données spécifié?

Je soupçonne que votre nom de base de données par défaut qui a été créé par AWS lors de la configuration de l'instance RDS n'est pas prueba mais autre chose. Vous devriez être en mesure de comprendre que vous dans l'onglet Détails RDS:

Database Details

Notez que mon Endpoint Name est prueba mais le MySQL Database Name est something.

Je peux me connecter au RDS et lister les bases de données:

~ $ 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)

Donc, pour conclure, vous devrez déterminer le nom réel de votre base de données mysql:

  • découvrez quel était le nom de base de données par défaut que vous avez spécifié lors de la création de l'instance à partir de l'écran Détails RDS , ou
  • découvrez le nom de la base de données en vous connectant sans nom de base de données spécifié, puis exécutez SHOW DATABASES;, ou
  • créez-en un nouveau en utilisant CREATE DATABASE whatever; ou en utilisant une boîte de dialogue dans votre outil DB.

Une fois que vous avez le nom de la base de données, vous pouvez vous y connecter dans votre boîte de dialogue de connexion ou avec USE whatever; et vous pourrez enfin créer vos tables .

J'espère que cela pourra aider :)

6
MLu

Vous ne pouvez pas créer de tables sans avoir d'abord créé une base de données. Connectez-vous sans nom de base de données, créez une nouvelle base de données, puis créez des tables. Ça marchera.

1
Fer Dah