Mysql
 sql >> Base de données >  >> RDS >> Mysql

Impossible de se connecter à MySQL via un script PHP lors de l'utilisation de mysqli ou de PDO MAIS mysql fonctionne

J'ai rencontré ça de temps en temps. L'explication est le plus souvent que MySQL Server est configuré pour utiliser un fichier socket sur un chemin, mais php.ini La section de mysqli ou pdo_mysql recherche le fichier socket dans un autre chemin.

Cela m'arrive même si j'installe à la fois PHP et MySQL à partir de MacPorts. On pourrait penser qu'ils auraient fait concorder les configurations de ces deux ports.

Soit éditez votre php.ini pour définir l'emplacement correct du fichier socket, ou bien spécifier le socket lorsque vous initiez une connexion avec mysqli ou pdo_mysql.

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")

Voir aussi l'article que j'ai écrit Error2003-CantConnectToMySQLServer .