Heim >Datenbank >MySQL-Tutorial >Warum kann ich über den Unix-Socket keine Verbindung zu MySQL herstellen?

Warum kann ich über den Unix-Socket keine Verbindung zu MySQL herstellen?

Linda Hamilton
Linda HamiltonOriginal
2024-12-16 07:57:16825Durchsuche

Why Can't I Connect to MySQL via Unix Socket?

Verbindung zu MySQL über Unix-Socket nicht möglich: Verbindung zu MySQL über Socket „MySQL“ nicht möglich (2)

Beim Herstellen einer Verbindung Wenn Sie mit der mysqli-Klasse von PHP eine Verbindung zu MySQL herstellen und „localhost“ als Host angeben, erhalten Sie die Fehlermeldung „Es kann keine Verbindung zum lokalen MySQL-Server über den Socket ‚MySQL‘ (2) hergestellt werden.“ Dies weist auf ein Problem mit dem Unix-Socket hin, der für lokale Verbindungen verwendet wird.

Grundlegendes zu Localhost-Verbindungen

Standardmäßig verwendet die MySQL-Clientbibliothek einen Unix-Domänen-Socket, um eine Verbindung herzustellen lokaler MySQL-Server, wenn der Host als „localhost“ angegeben ist. Wenn jedoch auf den Socket nicht zugegriffen werden kann oder er nicht vorhanden ist, tritt dieser Fehler auf.

Optionen zur Fehlerbehebung

Um dieses Problem zu beheben, haben Sie mehrere Möglichkeiten:

  1. Stattdessen IP-Adresse verwenden (TCP/IP): Ändern Sie den Host in 127.0.0.1 oder die tatsächliche IP-Adresse des lokalen Servers. Dadurch wird die Verbindung gezwungen, einen TCP/IP-Socket anstelle des Unix-Sockets zu verwenden.
  2. My.cnf (Socket-Einstellung von PHP) ändern: In der MySQL-Konfigurationsdatei (my.cnf) Suchen Sie den Ort, an dem MySQL den Socket erstellt, und setzen Sie mysqli.default_socket in PHPs php.ini darauf Pfad.
mysqli.default_socket = /var/run/mysqld/mysqld.sock
  1. Direkte Socket-Konfiguration:
$db = new MySQLi('localhost', 'kamil', '***', '', 0, 
                              '/var/run/mysqld/mysqld.sock')

Durch die direkte Angabe des Sockets überschreiben Sie die Standardeinstellung Unix-Socket-Konfiguration.

In Ihrem Fall, da Sie mit Option nur über 127.0.0.1 eine Verbindung herstellen können 1 wird empfohlen. Wenn Sie externe Website-Verbindungen zulassen müssen, sollten Sie einen neuen Benutzer mit entsprechenden Berechtigungen erstellen und TCP/IP (Option 1) für die Remote-Verbindung verwenden.

Das obige ist der detaillierte Inhalt vonWarum kann ich über den Unix-Socket keine Verbindung zu MySQL 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