mysqli_real_connect(): (HY000/2002): No such file or directory
Erreur de PhpMyAdmin sur MacOS. Je veux une réponse et je n'ai vraiment aucune idée de ce que je dois faire pour résoudre ce problème.
mysqli_real_connect(): (HY000/2002): No such file or directory
Erreur de PhpMyAdmin sur MacOS. Je veux une réponse et je n'ai vraiment aucune idée de ce que je dois faire pour résoudre ce problème.
J'ai été heureux de trouver cette réponse pour faire fonctionner les choses, mais quelle est la vraie solution ? C'est une solution de contournement. Vous devrait être capable d'utiliser localhost
.
On pourrait le croire, mais apparemment non. En ce qui concerne le paramètre "type de connexion" : "Déprécié depuis la version 4.7.0 : Ce paramètre n'est plus utilisé à partir de la version 4.7.0, car MySQL décide du type de connexion en fonction de l'hôte, ce qui pourrait conduire à des résultats inattendus." Réf : docs.phpmyadmin.net/fr/latest/config.html
La "vraie solution" est de lire et de comprendre la documentation de MySQL, puis de modifier vos fichiers de configuration et d'avoir un système dans lequel vous savez ce qui se passe, au lieu de simplement suivre quelques conseils et de tout oublier dès que cela fonctionne. Si vous voulez utiliser localhost
vous devez configurer MySQL pour qu'il écoute sur une socket au lieu de TCP/IP. Je recommande toujours cela, lorsque votre base de données est sur la même machine.
Cela a fonctionné pour moi mais la grande question est de savoir pourquoi cela s'est arrêté ? Parce que ça m'arrive très souvent.
J'essaie ceci avant
cd /opt/lampp/phpmyadmin
Puis
gedit config.inc.php
Trouvez ceci
$cfg['Servers'][$i]['host'] =
S'il y a localhost
le changer en 127.0.0.1
Note : s'il y a '//', supprimez // avant.
$cfg['Servers'][$i]['host']
J'ai vérifié à nouveau http://localhost/phpmyadmin/
dit Mysqli :
"phpMyAdmin a essayé de se connecter au serveur MySQL, et le serveur a a rejeté la connexion. Vous devez vérifier l'hôte, le nom d'utilisateur et le mot de passe dans votre configuration et vous assurer qu'ils correspondent aux les informations données par l'administrateur du serveur MySQL."
J'ouvre à nouveau config.inc.php
et j'ai trouvé
$cfg['Servers'][$i]['password'] =
Remplissez le mot de passe avec votre mot de passe
Ça a marché pour moi. Cela peut marcher pour vous aussi.
Je voulais juste exécuter quelques tests PHPUnit sur mon Mac, en utilisant Terminal. Certaines des classes que je voulais tester devaient se connecter à une base de données MySQL qui était créée et gérée par PHPMyAdmin, et l'application web que je travaillais fonctionnait bien sur l'hôte local. Ainsi, lorsque j'ai exécuté ces tests, j'ai obtenu l'erreur suivante dans mon terminal :
mysqli_connect(): (HY000/2002): No such file or directory
Donc, avec la démangeaison que je devais résoudre et faire mon test, j'ai cherché dans quelques fils de questions-réponses de SO et j'ai essayé. Et une combinaison de changements a fonctionné pour moi.
config.inc.php
qui se rapporte à PHPMyAdmin.$cfg['Servers'][$i]['host']
Il se peut que cette ligne ait été commentée par défaut, si c'est le cas, veuillez la décommenter.$cfg['Servers'][$i]['host'] = '127.0.0.1';
$host
dans l'onglet mysqli_connect()
méthode à suivre :$_connection = mysqli_connect(**"localhost: 3306"**, $_mysql_username, $_mysql_password, $_database);
Note : Ce site 3306
est le numéro de mon port MySQL, qui est le port par défaut. Vous devriez vérifier quel est votre numéro de port MySQL réel avant de suivre ces étapes.
Et c'est tout. Pour moi, seule cette série d'étapes a fonctionné et rien d'autre. J'ai exécuté mes tests unitaires et cela fonctionne bien et les données de la base de données ont également été mises à jour correctement selon les tests.
La raison la plus proche que j'ai pu trouver est que cela fonctionne parce que parfois les mysqli_connect
nécessite un socket fonctionnel (adresse IP de l'hôte de la base de données ainsi que le numéro de port) de la base de données. Donc, si vous avez commenté la méthode $cfg['Servers'][$i]['host'] = '127.0.0.1';
ou si vous avez défini 'localhost' comme valeur dans cette ligne, le numéro de port est ignoré. Mais si vous voulez utiliser un socket, vous devez utiliser '127.0.0.1' ou le vrai nom d'hôte. (pour moi, il semble que peu importe le numéro de port par défaut que nous avons réellement, nous devons faire les étapes ci-dessus). Lisez ce qui suit lien de PHPMyAdmin pour plus de détails.
J'espère que cela pourra être utile à quelqu'un d'autre.
A la vôtre !
Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.
0 votes
pouvez-vous donner plus d'informations ?
0 votes
Vérifiez si votre serveur MySQL est en cours d'exécution : stackoverflow.com/a/50227592/4684797