0
votes

Impossible de se connecter à MySQL: Server envoyé Chalet inconnu du client. S'il vous plaît, signaler aux développeurs - SamplePage.PHP

Pour une raison quelconque, je ne peux pas créer le Emaileettable dans la base de données lors de l'ouverture du samplepage.php sur mon navigateur chrome de Le lien suivant:

HTTP : //ec2-13-57-28-240.us-west-.compute.amazonaws.com/samplepage.php

J'ai pu créer mon instance EC2 à partir de l'AWS Créez une instance EC2 et installez un didacticiel de serveur Web sur le lien suivant:

https://docs.aws.amazon.com/amazonrds/latest/userguide/chap_tatudials.webserverdb.createwebserver.html

Je reçois ce qui suit ERREUR:

Impossible de se connecter à MySQL: Server envoyé Chalet inconnu du client. S'il vous plaît, rapportez-vous aux développeurs.

De ce que j'ai lu, l'image AWS Linux AMI a un jeu de caractères UTF-8 par défaut et je reçois la sortie exécutant cette commande sur mon instance EC2 après la connexion à MySQL DB Instance:

Afficher les variables comme 'char%'; xxx

i définissez également mon putty /. bash_profile à utiliser le jeu de caractères UTF-8, en saisissant la configuration comme suit: xxx

Vous ne savez pas ce qui se passe comme moi, je crois, j'ai suivi le tutoriel complet sur la façon de créer une instance de base de données et un lien vers l'instance EC2 à partir de ce lien:

https://docs.aws.amazon.com/amazonrds/latest/userguide/tuut_webappwithrds.html


6 commentaires

Quelles versions des différents composants (clients, serveur, etc.)? Avez-vous récemment changé de services de cloud?


Mon client est Windows 10. L'instance AWS EC2 est une instance Linux AMI version 1 et DB est MySQL 8.0.17. C'est ma première expérience avec des services cloud.


Je remarque que le caractère_set_client, caractère_set_connection, charceter_set_results, et le caractère_set_system sont UTF8, tandis que le caractère_set_database et le caractère_set_server sont UTF8MB4. Je ne sais pas si cela fait une différence?


J'ai trouvé un article: << a href = "https://dev.mysql.com/doc/refman/8.0/fr/charset-unicode-utf8mb33.html" rel = "nfollow Noreferrer"> dev.mysql.com/ DOC / REFMAN / 8.0 / EN / CHRSTE-UNICODE-UTF 8MB3.html > Cela peut être utile, mais je ne suis pas assez expérimenté pour l'interpréter, désolé.


Quelqu'un peut-il me guider sur la façon de changer ma valeur de caractère_set_database à UTF8 et à ma valeur de caractères_set_server sur UTF8, pour voir si cela peut résoudre le problème?


Sauf si vous avez un besoin particulier de "UTF8MB3", vous devez utiliser "UTF8MB4".


3 Réponses :


0
votes

Cela dépend.

Vous n'avez pas encore apporté de texte dans les tables, puis: xxx

Si vous avez des données dans la table, il y en a environ 3 différentes façons de changer le ménage. Les conseils sont ici:
http://mysql.rjweb.org/doc.php/charcoll#fixes_for_various_cases

Si vous avez des ordures sortantes, alors voir problèmes avec les caractères UTF-8; Ce que je vois n'est pas ce que j'ai stocké


5 commentaires

J'ai essayé d'exécuter la commande alter Table T convert T convertir en jeu de caractères UTF8MB4; mais a obtenu l'erreur suivante: Erreur 1046 (3D000): Aucune base de données sélectionnée


J'ai entré Utiliser un échantillon; puis j'ai ran alter Table T convert T converti au jeu de caractères UTF8MB4; J'ai eu l'erreur suivante: Erreur 1146 (42S02): Tableau "Sample. t 'n'existe pas . L'erreur est correcte, le tableau n'existe pas. Le samplepage.php est écrit pour créer le Emaileettable mais en raison du charert sur la base de données étant différent (c'est-à-dire utf-8 par rapport à utf8mb4 ) Je ne suis pas capable de créer le Emaileeterble . Je veux juste créer la base de données avec le Emaileettable comme l'exemple samplepage.php a été conçu pour faire. Désolé, je n'étais pas clair, plus tôt.


Aussi, est-il possible de modifier la base de données d'échantillons pour être un jeu de caractères UTF-8 au lieu d'un UTF8MB4? Y a-t-il une commande pour le changer? Peut-être que cela résoudra le problème inconnu Charset.


J'ai pu définir le caractère_set_server et le code caractère_set_database vers utf8mb3 ou utf8 , en exécutant le jeu Noms 'utf8mb3'; commande et le paramètre Caractère_set_server = 'utf8mb3'; commande, mais je reçois toujours l'erreur Impossible de vous connecter à MySQL: serveur envoyé ChartNet Inconnu du client . S'il vous plaît, rapportez-vous à la table de création d'erreurs de développeurs. Peut-être, je dois faire quelque chose au fichier samplepage.php pour obtenir le fichier de caractères de caractère correct.


J'ai placé l'en-tête en-tête ("Type de contenu: Texte / HTML; Charset = UTF-8"); dans le SamplePage.php et obtenez toujours la même erreur. Je pense que je suis à court d'idées, sauf pour créer la base de données à nouveau pour voir si j'avais peut-être manqué quelque chose?



1
votes

Il s'agit de tout ce travail sur la modification du charert et assurez-vous que le charert de la base de données a été défini correctement était une dépendance sur un autre problème, qui était l'extension mysqli n'était pas correctement installée et activée. J'améliore également la version PHP vers 7.2, qui peut également avoir corrigé le problème, mais je ne suis pas totalement sûr. Peut-être que quelqu'un peut vérifier ce que le correctif était basé sur ce que j'avais fait?


0 commentaires

1
votes

J'ai résolu ceci en supprimant PHP56 et en installant PHP72 à la place. Voici les commandes

sudo yum -y supprimer php *

sudo yum installer php72

sudo yum installer php72-mysqlnd

Sudo Apachectl Redémarrez


0 commentaires