Heim > Backend-Entwicklung > PHP-Tutorial > Warum kann mein PHP-Skript keine Verbindung zum MySQL-Server über Socket herstellen?

Warum kann mein PHP-Skript keine Verbindung zum MySQL-Server über Socket herstellen?

Patricia Arquette
Freigeben: 2024-12-08 21:05:18
Original
562 Leute haben es durchsucht

Why Can't My PHP Script Connect to the MySQL Server via Socket?

Fehler: Es konnte keine Verbindung zum MySQL-Server über Socket hergestellt werden

Problem

Beim Versuch, eine Verbindung zu einer MySQL-Datenbank mithilfe der PHP-MySQLi-Klasse herzustellen, wird die Folgender Fehler tritt auf:

mysqli::mysqli(): (HY000/2002): Can't connect to local MySQL server through socket 'MySQL' (2)
Nach dem Login kopieren

Analyse

Die Fehlermeldung deutet darauf hin, dass die MySQL-Client-Bibliothek versucht, über einen Unix-Domänen-Socket namens „MySQL“ eine Verbindung zum Server herzustellen, aber der Socket existiert nicht oder ist nicht verfügbar.

Laut MySQL-Dokumentation behandelt die Client-Bibliothek den Hostnamen „localhost“ besonders auf Unix-Systemen. Standardmäßig wird versucht, eine Verbindung über eine Unix-Socket-Datei herzustellen, auch wenn eine Portnummer angegeben ist.

Lösung

Um diesen Fehler zu beheben, ziehen Sie die folgenden Optionen in Betracht:

1. TCP/IP verwenden:

Verwenden Sie beim Verbindungsaufbau 127.0.0.1 als Hostnamen anstelle von „localhost“. Dadurch wird die Bibliothek gezwungen, eine TCP/IP-Verbindung zu verwenden, die zuverlässiger und portabler ist.

2. Socket in php.ini ändern:

Suchen Sie die MySQL-Konfigurationsdatei (my.cnf) und suchen Sie den Pfad, in dem MySQL den Socket erstellt. Setzen Sie dann die PHP-Direktive mysqli.default_socket auf diesen Pfad in der Datei php.ini.

3. Socket im PHP-Skript konfigurieren:

Geben Sie den Socket beim Öffnen der Verbindung direkt im PHP-Skript an:

$db = new MySQLi('localhost', 'kamil', '***', '', 0, '/var/run/mysqld/mysqld.sock');
Nach dem Login kopieren

Zusätzliche Informationen

Bei Verbindung von einer Fernbedienung Stellen Sie sicher, dass Sie mit der IP-Adresse einen Benutzer mit den erforderlichen Berechtigungen für externe Verbindungen in der MySQL-Datenbank erstellt haben.

Das obige ist der detaillierte Inhalt vonWarum kann mein PHP-Skript keine Verbindung zum MySQL-Server über Socket herstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage