Mysql
 sql >> Database >  >> RDS >> Mysql

Errore 2002 Connessione rifiutata su PHP che si connette a MySQL in esecuzione su MAMP

Il problema è che non stai passando la porta come quinto parametro alla connessione mysqli. Se stai usando localhost come host, il parametro port viene ignorato. Questo è il motivo per cui nello snippet MAMP non stanno passando $db_port come parametro, semplicemente non è necessario. Il motivo per cui ciò accade è che localhost non utilizza TCP/IP, ma utilizza socket unix.

Dopo aver seguito il suggerimento di altri, probabilmente hai modificato il codice al punto in cui lo avevi

$db_host = '127.0.0.1';

Questo va bene, ma dal momento che non stai più utilizzando socket unix (localhost ), il parametro port è necessario per stabilire una connessione.Mysqli usa il 3306 port come predefinito se non si specifica nessun altro come quinto parametro. Quindi questa è la porta a cui stai tentando di connetterti usando quel codice. Qui è dove il Error: Connection refused viene da.

Per risolvere il problema devi solo passare la porta come quinto parametro come questo:

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

Lo snippet in sé è fantastico, semplicemente non si adattava completamente alle tue esigenze e hai dovuto apportare alcune modifiche. Se vuoi usare gli snippet devi capire cosa fanno e in questo caso come funziona mysqli. Assicurati di ricordarlo per il futuro poiché ti eviterà sicuramente spiacevoli situazioni ed errori come questo.