Mysql
 sql >> Base de données >  >> RDS >> Mysql

Erreur 2002 Connexion refusée sur PHP se connectant à MySQL s'exécutant sur MAMP

Le problème est que vous ne transmettez pas le port comme cinquième paramètre à la connexion mysqli. Si vous utilisez localhost en tant qu'hôte, le paramètre de port est ignoré. C'est pourquoi dans l'extrait de code MAMP, ils ne transmettent pas $db_port en tant que paramètre, il n'est tout simplement pas nécessaire. La raison pour laquelle cela se produit est que localhost n'utilise pas TCP/IP, mais utilise à la place des sockets Unix.

Après avoir suivi la suggestion des autres, vous avez probablement changé le code au point où vous aviez

$db_host = '127.0.0.1';

C'est ok, mais puisque vous n'utilisez plus les sockets unix (localhost ), le paramètre port est nécessaire pour établir une connexion. Mysqli utilise le 3306 port par défaut si vous n'en spécifiez aucun autre comme cinquième paramètre. C'est donc le port auquel vous essayez de vous connecter en utilisant ce code. C'est là que l'Error: Connection refused vient de.

Pour résoudre le problème il vous suffit de passer le port en cinquième paramètre comme ceci :

$mysqli = new mysqli($db_host,$db_user,$db_password,$db_db,$db_port);

L'extrait de code lui-même est génial, il ne répondait tout simplement pas entièrement à vos besoins et vous avez dû y apporter quelques modifications. Si vous souhaitez utiliser des extraits de code, vous devez comprendre ce qu'ils font et, dans ce cas, comment mysqli fonctionne. Assurez-vous de vous en souvenir pour l'avenir car cela vous évitera à coup sûr des situations désagréables et des erreurs comme celle-ci.