sql >> Database >  >> RDS >> Mysql

Fout 2002 Verbinding geweigerd op PHP verbinding maken met MySQL draaiend op MAMP

Het probleem is dat je de poort niet als vijfde parameter doorgeeft aan de mysqli-verbinding. Als je localhost gebruikt als uw host, wordt de poortparameter genegeerd. Daarom passeren ze in het MAMP-fragment $db_port . niet als parameter is het gewoon niet nodig. De reden dat dit gebeurt, is dat localhost gebruikt geen TCP/IP, maar maakt gebruik van unix-sockets.

Nadat je de suggestie van anderen hebt opgevolgd, heb je waarschijnlijk de code veranderd naar het punt waar je

$db_host = '127.0.0.1';

Dit is oké, maar aangezien je geen Unix-sockets meer gebruikt (localhost ), is de poortparameter nodig om een ​​verbinding tot stand te brengen. Mysqli gebruikt de 3306 port als standaard één als u geen andere opgeeft als vijfde parameter. Dat is dus de poort waarmee u verbinding probeert te maken door die code te gebruiken. Dit is waar de Error: Connection refused komt van.

Om het probleem op te lossen, hoeft u alleen de poort als een vijfde parameter als volgt door te geven:

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

Het fragment zelf is geweldig, het voldeed alleen niet helemaal aan je behoeften en je moest er wat aan aanpassen. Als je fragmenten wilt gebruiken, moet je begrijpen wat ze doen en in dit geval hoe mysqli werkt. Onthoud dit voor de toekomst, want het zal u zeker onaangename situaties en fouten zoals deze voorkomen.



  1. MySQL INNER JOIN Alias

  2. T-SQL-bugs, valkuilen en best practices – determinisme

  3. Juiste manier om te vragen of mysql_num_rows in PHP is

  4. MYSQL-UPDATE met IN en subquery