sql >> Base de Datos >  >> RDS >> Mysql

Error 2002 Conexión rechazada en PHP que se conecta a MySQL ejecutándose en MAMP

El problema es que no está pasando el puerto como quinto parámetro a la conexión mysqli. Si está usando localhost como su host, el parámetro del puerto se ignora. Esta es la razón por la que en el fragmento de MAMP no pasan $db_port como parámetro, simplemente no es necesario. La razón por la que esto sucede es que localhost no usa TCP/IP, sino que usa sockets unix.

Después de haber seguido la sugerencia de otros, probablemente haya cambiado el código hasta el punto donde tenía

$db_host = '127.0.0.1';

Esto está bien, pero dado que ya no usa sockets de Unix (localhost ), el parámetro del puerto es necesario para establecer una conexión. Mysqli usa el 3306 puerto como predeterminado si no especifica ningún otro como quinto parámetro. Ese es el puerto al que está intentando conectarse usando ese código. Aquí es donde aparece el Error: Connection refused viene.

Para solucionar el problema solo tienes que pasar el puerto como quinto parámetro así:

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

El fragmento en sí es excelente, solo que no se adaptaba completamente a sus necesidades y tuvo que hacerle algunos ajustes. Si desea usar fragmentos, debe comprender qué hacen y, en este caso, cómo funciona mysqli. Asegúrese de recordar esto para el futuro, ya que seguramente le evitará situaciones desagradables y errores como este.