Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Erro 2002 Conexão recusada no PHP conectando-se ao MySQL em execução no MAMP


O problema é que você não está passando a porta como o quinto parâmetro para a conexão mysqli. Se você estiver usando localhost como seu host, o parâmetro port será ignorado. É por isso que no snippet MAMP, eles não estão passando $db_port como parâmetro, simplesmente não é necessário. A razão disso acontecer é que localhost não usa TCP/IP, em vez disso, usa soquetes unix.

Depois de seguir a sugestão de outra pessoa, você provavelmente alterou o código até o ponto em que tinha
$db_host = '127.0.0.1';

Tudo bem, mas como você não está mais usando soquetes unix (localhost ), o parâmetro port é necessário para estabelecer uma conexão.Mysqli usa o 3306 port como padrão se você não especificar nenhum outro como quinto parâmetro. Essa é a porta à qual você está tentando se conectar usando esse código. É aqui que aparece o Error: Connection refused vem de.

Para resolver o problema basta passar a porta como um quinto parâmetro assim:
$mysqli = new mysqli($db_host,$db_user,$db_password,$db_db,$db_port);

O trecho em si é ótimo, ele não atendeu totalmente às suas necessidades e você teve que fazer alguns ajustes nele. Se você quiser usar trechos, você precisa entender o que eles fazem e, neste caso, como o mysqli funciona. Lembre-se disso para o futuro, pois com certeza evitará situações desagradáveis ​​e erros como este.