Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Es kann keine Verbindung zu MySQL über PHP-Skript hergestellt werden, wenn mysqli oder PDO verwendet wird, ABER mysql funktioniert

Ich bin ab und zu darauf gestoßen. Die Erklärung ist meistens, dass MySQL Server so konfiguriert ist, dass es eine Socket-Datei unter einem Pfad verwendet, aber php.ini Der Abschnitt von mysqli oder pdo_mysql sucht nach der Socket-Datei in einem anderen Pfad.

Dies passiert mir, obwohl ich sowohl PHP als auch MySQL von MacPorts installiere. Man könnte meinen, sie hätten die Konfigurationen für diese beiden Ports übereinstimmen lassen.

Bearbeiten Sie entweder Ihre php.ini um den korrekten Speicherort der Socket-Datei festzulegen, oder spezifizieren Sie den Socket, wenn Sie eine Verbindung mit mysqli oder pdo_mysql initiieren.

pdo = new PDO("mysql:dbname=test;unix_socket=/opt/local/var/run/mysql5/mysqld.sock", 
  "username", "password")

$mysqli = new mysqli("localhost", "username", "password", "test",
  ini_get("mysqli.default_port"), "/opt/local/var/run/mysql5/mysqld.sock")

Siehe auch den Artikel, den ich geschrieben habe Error2003-CantConnectToMySQLServer .