Je dirais que vous avez un problème de connexion de PHP à MySQL...
Quelque chose comme PHP essayant de trouver un fichier socket, et ne le trouvant pas, peut-être ?
(J'ai eu ce problème à plusieurs reprises - je ne suis pas sûr que l'erreur que j'ai obtenue était exactement celle-là).
Si vous utilisez un système basé sur Linux, il devrait y avoir un fichier my.cnf
quelque part, qui est utilisé pour configurer MySQL -- sur mon Ubuntu, il se trouve dans /etc/mysql/
.
Dans ce fichier, il pourrait y avoir quelque chose comme ceci :
socket = /var/run/mysqld/mysqld.sock
PHP doit utiliser le même fichier -- et, selon votre distribution, le fichier par défaut peut ne pas être le même que celui utilisé par MySQL.
Dans ce cas, en ajoutant ces lignes à votre php.ini
pourrait vous aider :
mysql.default_socket = /var/run/mysqld/mysqld.sock
mysqli.default_socket = /var/run/mysqld/mysqld.sock
pdo_mysql.default_socket = /var/run/mysqld/mysqld.sock
(Vous devrez redémarrer Apache pour que la modification de la page php.ini
est prise en compte)
La dernière devrait être suffisante pour PDO, qui est utilisé par Zend Framework -- mais les deux précédentes ne feront aucun mal, et peuvent être utiles pour d'autres applications.
Si cela ne vous aide pas : pouvez-vous vous connecter à votre base de données en utilisant PDO, dans un autre script, qui est totalement indépendant de Zend Framework ?
Par exemple, est-ce que quelque chose comme ceci fonctionne (citation) :
$dsn = 'mysql:dbname=testdb;host=127.0.0.1';
$user = 'dbuser';
$password = 'dbpass';
try {
$dbh = new PDO($dsn, $user, $password);
} catch (PDOException $e) {
echo 'Connection failed: ' . $e->getMessage();
}
Si ce n'est pas le cas, le problème ne vient pas de ZF, mais de la configuration ou de l'installation de PHP.
Si oui... Alors, cela signifie que vous avez un problème avec ZF, et vous devrez nous donner plus d'informations sur votre installation. (comme votre DSN, par exemple ? ).
68 votes
Utiliser l'adresse IP pour l'hôte MySQL
3 votes
@Nguyen tu es da man ! tu as aidé plus que le mec avec 183k lol
8 votes
@Nguyen - merci, cela a réglé le problème pour moi aussi (en changeant 'localhost' par 127.0.0.1). C'était dans PDO sous Laravel, donc ce n'est pas spécifique à Zend Framework.
2 votes
Merci ! Cela m'a aidé aussi. Important : ne pas utiliser
http://
juste IP.2 votes
Redémarrer le serveur mysql, a fait le travail pour moi !
0 votes
Duplicata possible de PHP - La connexion MySQL ne fonctionne pas : 2002 No such file or directory
0 votes
Pourquoi cela fonctionne-t-il ? Où cherche-t-il localhost ?
0 votes
@Danial - IP explicite peut forcer une connexion TCP, tandis que 'localhost' tente de se connecter via Socket. d'autres problèmes, TCP peut être plus lent de sorte que un mec avec 183k n'a pas tort...
0 votes
Commençons par le commencement : Vérifiez si votre mysqld fonctionne bien.
systemctl status mysql