Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Fehler 2002 Verbindung auf PHP abgelehnt, das eine Verbindung zu MySQL herstellt, das auf MAMP läuft

Das Problem besteht darin, dass Sie den Port nicht als fünften Parameter an mysqli connection übergeben. Wenn Sie localhost verwenden als Host wird dann der Port-Parameter ignoriert. Aus diesem Grund übergeben sie im MAMP-Snippet nicht $db_port als Parameter wird es einfach nicht benötigt. Der Grund dafür ist, dass localhost verwendet kein TCP/IP, sondern Unix-Sockets.

Nachdem Sie dem Vorschlag anderer gefolgt sind, haben Sie den Code wahrscheinlich bis zu dem Punkt geändert, an dem Sie es getan haben

$db_host = '127.0.0.1';

Das ist in Ordnung, aber da Sie keine Unix-Sockets mehr verwenden (localhost ), wird der Port-Parameter benötigt, um eine Verbindung herzustellen. Mysqli verwendet den 3306 port als Standard, wenn Sie keinen anderen als fünften Parameter angeben. Das ist also der Port, zu dem Sie versuchen, sich mit diesem Code zu verbinden. Hier kommt der Error: Connection refused stammt aus.

Um das Problem zu lösen, müssen Sie nur den Port als fünften Parameter wie folgt übergeben:

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

Das Snippet selbst ist großartig, es entsprach nur nicht ganz Ihren Anforderungen und Sie mussten ein paar Änderungen daran vornehmen. Wenn Sie Snippets verwenden möchten, müssen Sie verstehen, was sie tun und in diesem Fall, wie mysqli funktioniert. Merken Sie sich dies für die Zukunft, denn es wird Ihnen mit Sicherheit unangenehme Situationen und Fehler wie diese ersparen.