Départ avec Zend Tutoriel - Zend_DB_Adapter throws Exception: “SQLSTATE[HY000] [2002] No such file or directory”
J'ai commencé à apprendre le Zend Framework avec le Livre "Zend Framework en Action" en allemand.
Droit là où ça commence à devenir intéressant, mon PHP de Test de l'Unité génère cette Erreur:
"Zend_Db_Adapter_Exception: SQLSTATE[HY000] [2002] No such file or directory"
Je ne trouve pas de conseils à travers des recherches sur Google. J'ai fait tout comme il est dans le livre.
Quelqu'un peut-il me donner un indice sur l'endroit où chercher pour la faute?
Est-ce fréquent erreur de débutant?
- L'utilisation de l'adresse IP de l'hôte MySQL
- vous êtes da homme! vous avez aidé plus que le mec avec 183k lol
- merci de cette fixée pour moi aussi (changement de 'localhost' 127.0.0.1). C'était en PDO sous Laravel, donc ce n'est pas spécifique à Zend Framework.
- Merci!!!! Il m'a aidé aussi. Important: ne pas utiliser
http://
, juste de la propriété intellectuelle. - redémarrer le serveur mysql, a fait le travail pour moi!
- Double Possible de PHP - MySQL connexion ne fonctionne pas: 2002 No such file or directory
- Pourquoi ce travail? Où est-il à la recherche pour le localhost?
- explicite IP peut-force une connexion TCP, tandis que 'localhost' essaie via Socket, entre d'autres questions, TCP peut être plus lent, de sorte que les mec avec 183k a un point...
- Première chose à faire: Vérifier si votre mysqld est effectivement en cours d'exécution fine
systemctl status mysql
Vous devez vous connecter pour publier un commentaire.
Je dirais que vous avez un problème de connexion à partir de PHP MySQL...
Quelque chose comme PHP essayer de trouver un fichier de socket, et ne le trouvant pas, peut-être ?
(J'ai eu ce problème une couple de fois, pas sûr que l'erreur que j'ai eu était exactement cela, certes)
Si vous exécutez des système Linux, il devrait y avoir un
my.cnf
fichier quelque part, qui est utilisé pour configurer MySQL -- sur mon Ubuntu, c'est dans/etc/mysql/
.Dans ce fichier, il y a peut être quelque chose comme ceci :
PHP doivent utiliser le même fichier -- et, en fonction de votre distribution, le fichier par défaut peut ne pas être le même que celui que MySQL utilise.
Dans ce cas, l'ajout de ces lignes à votre
php.ini
fichier peut aider :(Vous aurez besoin de redémarrer Apache pour que les modifications
php.ini
est pris en compte)La dernière devrait être assez pour les AOP, qui est utilisé par le Zend Framework -- mais les deux précédents ne fera pas de mal, et peut être utile pour d'autres applications.
Si cela n'aide pas : pouvez-vous vous connecter à votre base de données avec PDO, dans un autre script, qui est totalement indépendante de Zend Framework ?
exemple est-ce que quelque chose comme ce travail (cotation) :
Si non, le problème n'est certainement pas avec ZF, et est une configuration /problème d'installation de PHP.
Si oui... eh Bien, cela signifie que vous avez un problème avec ZF, et vous aurez besoin de nous donner plus d'informations à propos de votre configuration (comme votre source de données, par exemple ? )
localhost
vs127.0.0.1
sur un CircleCI serveur de buildNe supposez pas que votre unix_socket qui serait différent de l'un à l'autre, essayer de le trouver.
Tout d'abord, obtenir votre unix_socket emplacement.
Entrez votre mot de passe mysql et vous connecter à votre serveur mysql en ligne de commande.
Votre unix_soket pourrait être différent.
Puis changer votre php.ini, trouver votre
php.ini
fichier deVous peut-être installer un bon nombre de php avec l'autre version, merci donc de ne pas assumer votre php.emplacement du fichier ini, l'obtenir à partir de votre "phpinfo';
Changer votre php.ini:
Puis redémarrez votre serveur apache ou de php-fpm.
Essayer paramètre host=127.0.0.1 sur votre db fichier de paramètres, il a travaillé pour moi! 🙂
Espère que cela aide!
j'ai eu ce problème lors de l'exécution de la magento indexeur dans osx.
et oui, c'est lié à php problème lors de la connexion à mysql via pdo
dans mac osx xampp, pour corriger cela, vous devez créer un lien symbolique vers le répertoire /var/mysql, voici comment
si le répertoire /var/mysql n'existent pas, nous devons le créer avec
php.ini
fichier pour OSX PHP (sudo cp /private/etc/php.ini.default /private/etc/php.ini
) et ensuite chercherpdo_mysql.default_socket
et fixés est:pdo_mysql.default_socket=/Applications/MAMP/tmp/mysql/mysql.sock
(pour MAMP).Im a également souffert de ce problème & simplement, par l'ajout d'un numéro de port après l'adresse ip m'a sauvé.
Cela fonctionne pour Mac OS
Si vous ne connaissez pas votre mysql numéro de port, puis
Vous pouvez facilement trouver le numéro de port sur la page d'accueil de MAMP
OU
Type de commande suivante lors de l'exécution du serveur MAMP pour passer le terminal en
mysql
Puis tapez
Cette erreur parce que mysql est en train d'essayer de se connecter via le mauvais fichier de socket
essayer cette commande pour MAMP serveurs
ou
et cette commande pour XAMPP serveurs
ou
On dirait service mysql ne fonctionne pas ou arrêté.
vous pouvez commencer en utilisant la commande ci-dessous (sous Ubuntu):
Il devrait fonctionner! Si vous utilisez un autre système d'exploitation que Ubuntu puis utiliser de manière appropriée pour démarrer mysql