sql >> Databasteknik >  >> RDS >> Mysql

Fel 2002 Connection vägrade när PHP ansluter till MySQL som körs på MAMP

Problemet där är att du inte skickar porten som den femte parametern till mysqli-anslutningen. Om du använder localhost som din värd ignoreras portparametern. Det är därför de inte skickar $db_port i MAMP-kodavsnittet som en parameter behövs den helt enkelt inte. Anledningen till att detta händer är att localhost använder inte TCP/IP, istället använder den sig av unix-sockets.

Efter att du har följt andras förslag har du förmodligen ändrat koden till den punkt där du hade

$db_host = '127.0.0.1';

Detta är ok, men eftersom du inte längre använder unix-sockets (localhost ), behövs portparametern för att upprätta en anslutning. Mysqli använder 3306 port som standard om du inte anger någon annan som femte parameter. Så det är porten du försöker ansluta till med den koden. Det är här Error: Connection refused kommer från.

För att lösa problemet behöver du bara skicka porten som en femte parameter så här:

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

Utdraget i sig är jättebra, det passade bara inte helt dina behov och du var tvungen att göra lite justeringar av det. Om du vill använda utdrag måste du förstå vad de gör och i det här fallet hur mysqli fungerar. Se till att komma ihåg detta för framtiden eftersom det säkerligen kommer att undvika obehagliga situationer och fel som denna.



  1. Graduate Level Felhantering

  2. PHP/mysql:hur visar jag poster sorterade efter tid och grupperade efter datum?

  3. listview visa data från databasen i Android

  4. Prestandaövervakning för TimescaleDB