0
votes

Pas capable de connecter AWS RDS (MySQL) de EC2

Bonjour, j'essaie d'héberger le code PHP dans le serveur AWS EC2 (Windows) sur IIS. Je suis capable d'héberger les pages Web PHP, mais le problème est que les pages Web ne sont pas en mesure de communiquer à AWS RDS. code PHP pour la base de données: xxx

J'utilise la règle VPC par défaut et dans le groupe de sécurité RDS et EC2 (entrant et sortant), j'ai ouvert tout le trafic. Comme ouvert ID SG avec port 3306 les uns avec les autres.

** Erreur sur la page Web: Connexion FaceRerver Soututile Charset Inconnu du client. S'il vous plaît, signaler aux développeurs ** Image d'erreur

Quand j'essaie le même code de mon ordinateur personnel, je suis capable de communiquer avec RDS. J'utilise Wamp Server pour la communiquer et l'héberger localement.

Écrit un code simple pour tester la fonctionnalité qui fonctionne également: xxx Connexion de succès

aidez-moi à cela.

 ec2 sg ingress

 EC2 SG Outbound

 Ingresse RDS SG

 rds sg sortant

EDIT: Screenshot Atcahed pour EC2 et RDS SG


6 commentaires

phpdelusions.net/mysqli/mysqli_connect


La base de données est-elle définie sur accessible publiquement = true ? L'instance EC2 est-elle dans un sous-réseau public ou privé? Le VPC a-t-il une passerelle NAT?


@Johnrotenstein Oui Base de données est définie accessible au public = true, instance EC2 dans un sous-réseau public, aucun VPC n'a pas la passerelle NAT, j'utilise les règles VPC par défaut.


@Johnrotenstein My DB Un CE2 Les deux sont en sous-réseau public, alors je ne pense pas que j'ai besoin de passerelle Nat.


Un problème peut être que, puisque la base de données est accessible au public, le nom DNS est résolu à une adresse IP publique. Cela signifie que l'instance EC2 va à l'adresse IP publique de la base de données et son trafic provient de l'adresse IP publique de l'instance EC2. Cet impact sur le groupe de sécurité, car le trafic provient d'une adresse IP publique plutôt que de l'instance elle-même. Veuillez modifier votre question pour afficher votre configuration de groupe de sécurité.


@Johnrotenstein Veuillez trouver la capture d'écran ci-jointe de SG.


3 Réponses :


0
votes

sur le serveur Windows Créez un fichier .txt, puis renommez l'extension sur .udl Ouvrez le fichier et utilisez-le comme moyen rapide de tester la connexion.

Suivant Suivez ce correctif: PDO :: __ construction (): serveur envoyé Chalet (255) inconnu du client. S'il vous plaît, rapportez-vous aux développeurs

Si cela échoue, créez une seconde DB RDS DB dans un sous-réseau privé et testez les conseils de John sur DNS Résolution de la propriété intellectuelle privée à l'aide du fichier UDL.


1 commentaires

Fondamentalement, c'est un problème de groupe de paramètres: donc ce que j'ai fait était: créé un nouveau groupe de paramètres, puis les éditées. Recherché tous les paramètres de jeu de caractères. Ceux-ci sont vides par défaut. Modifiez-les individuellement et sélectionnez UTF8 dans la liste déroulante. caractère_set_results, caractère_set_server sauvegarder



0
votes

Allez sur le serveur et essayez de connecter directement RDS et de vérifier si vous pouvez accéder ou non.


0 commentaires

0
votes

Fondamentalement, c'est un problème de groupe de paramètres: alors ce que j'ai fait était: créé un nouveau groupe de paramètres puis les éditées. Recherché tous les paramètres de jeu de caractères. Ceux-ci sont vides par défaut. Modifiez-les individuellement et sélectionnez UTF8 dans la liste déroulante. caractère_set_results, caractère_set_server et sauvegarder. Maintenant, vous pouvez connecter


0 commentaires