Heim >Datenbank >MySQL-Tutorial >Warum kann mein PHP-Code über den Socket keine Verbindung zum lokalen MySQL-Server herstellen?

Warum kann mein PHP-Code über den Socket keine Verbindung zum lokalen MySQL-Server herstellen?

Susan Sarandon
Susan SarandonOriginal
2024-12-11 08:08:10773Durchsuche

Why Can't My PHP Code Connect to the Local MySQL Server Through the Socket?

Verbindung zum MySQL-Server über Socket nicht möglich: Ein häufiger PHP-Fehler

Beim Versuch, mithilfe von PHP eine Verbindung zu einer MySQL-Datenbank herzustellen mysqli-Klasse können Sie auf den folgenden Fehler stoßen:

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

Dieser Fehler deutet darauf hin, dass die MySQL-Clientbibliothek versucht, einen Unix-Domänen-Socket zu verwenden für die Verbindung anstelle einer TCP/IP-Verbindung. Der Socket namens „MySQL“ existiert jedoch nicht oder ist nicht zugänglich.

Verstehen des Fehlers

Wenn Sie „localhost“ als Hostnamen für die MySQL-Verbindung verwenden, Die Client-Bibliothek versucht automatisch, eine Verbindung über einen Unix-Socket herzustellen. Dies ist eine schnellere und sicherere Verbindungsmethode auf Unix-basierten Systemen. Wenn der Socket jedoch nicht richtig konfiguriert ist oder nicht vorhanden ist, schlägt die Verbindung fehl.

Möglichkeiten zur Behebung des Problems

Um dieses Problem zu beheben, können Sie:

  • Geben Sie den Hostnamen an:Verwenden Sie 127.0.0.1 oder die IP-Adresse des lokalen Servers als Hostnamen anstelle von „localhost“. Dadurch wird der Client gezwungen, TCP/IP anstelle des Sockets zu verwenden.
  • Socket-Pfad festlegen: Suchen Sie den Pfad zum MySQL-Socket ("/var/run/mysqld/mysqld. sock“ ist ein häufiger Speicherort) und legen Sie die PHP-Konfigurationsoption mysqli.default_socket auf diesen Pfad fest.
  • Konfigurieren Sie den Socket Direkt: Geben Sie den Socket-Pfad direkt im PHP-Skript beim Verbindungsaufbau über den Socket-Parameter an. Zum Beispiel:
$db = new MySQLi('localhost', 'kamil', '***', '', 0, '/var/run/mysqld/mysqld.sock');

Durch die Implementierung einer dieser Lösungen können Sie sicherstellen, dass die MySQL-Verbindung korrekt hergestellt wird, wodurch der Fehler „Verbindung zum lokalen MySQL-Server kann nicht über Socket hergestellt werden“ beseitigt wird.

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

Stellungnahme:
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