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

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

Patricia Arquette
Freigeben: 2024-12-23 13:14:14
Original
336 Leute haben es durchsucht

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

Es kann keine Verbindung zum MySQL-Server über Socket hergestellt werden: Fehlerbehebung

Beim Herstellen einer Verbindung zu einer MySQL-Datenbank mithilfe der mysqli-Klasse von PHP kann das Problem auftreten Fehler „Es kann keine Verbindung zum lokalen MySQL-Server über den Socket „MySQL“ (2) hergestellt werden.“ Dies weist darauf hin, dass die MySQL-Clientbibliothek versucht, eine Verbindung über einen Unix-Domänen-Socket und nicht über eine TCP/IP-Verbindung herzustellen.

Unix-Domänen-Socket vs. TCP/IP-Verbindung

Standardmäßig verwendet die MySQL-Clientbibliothek einen Unix-Domänen-Socket, wenn sie eine Verbindung zu localhost herstellt. Dies ist eine schnellere und sicherere Verbindungsmethode, die jedoch nur mit localhost verwendet werden kann. Um stattdessen über TCP/IP eine Verbindung zu MySQL herzustellen, geben Sie 127.0.0.1 als Hostnamen an oder verwenden Sie die Option --protocol=TCP.

Lösungen für den Fehler

Es gibt mehrere Möglichkeiten, diesen Fehler zu beheben:

  • Verwenden Sie TCP/IP Verbindung:Ändern Sie den Hostnamen in Ihrem PHP-Skript in 127.0.0.1, um eine TCP/IP-Verbindung zu erzwingen.
  • Socket-Pfad konfigurieren:Suchen Sie den Pfad zum Unix-Socket im MySQL-Konfigurationsdatei (my.cnf) und stellen Sie mysqli.default_socket von php.ini darauf ein Pfad.
  • Socket direkt in PHP konfigurieren: Verwenden Sie beim Öffnen der Verbindung den Socket-Parameter, um den Socket-Pfad direkt anzugeben, wie im folgenden Beispiel gezeigt:
$db = new MySQLi('localhost', 'kamil', '***', '', 0, '/var/run/mysqld/mysqld.sock')
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonWarum kann mein PHP-Code 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