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)
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.
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');
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!