SQLSTATE [HY000] [2002] Connexion refusée dans la propriété Laravel
À l'aide de Mac OS X et Homestead 2.2.1 avec Laravel 5.2.
Dans le terminal (dans homestead dans mon dossier de projet) je peux le faire en php artisan pour voir toutes les commandes disponibles. Lorsque j'essaie d'exécuter php artisan migrer j'obtiens une erreur de connexion:
SQLSTATE[HY000] [2002] Connection refused
J'ai mis un Laravel projet avec ces .env paramètres
DB_HOST=127.0.0.1
DB_DATABASE=tcv
DB_USERNAME=homestead
DB_PASSWORD=secret
J'ai aussi essayé de localhost pour DB_HOST et racine pour DB_USERNAME et DB_PASSWORD. Et toutes les variations possibles de ces ensemble!
De Sequel Pro (gestion de base de données de l'application) je PEUX me connecter avec ces paramètres
Host 127.0.0.1
Username homestead
Password secret
Database tcv
Port 33060
Mais cette base de données est évidemment vide, parce que je ne peux pas migrer à partir de la borne ...
Aussi loin que je peux faire c'est un problème de configuration, puisque je peux me connecter avec Sequel Pro. Mais j'ai honnêtement aucune foutu idée de ce qu'est le programme d'installation de mal.
Merci pour l'aide !!
MODIFIER
Pour une raison que je reçois le même SQLSTATE[HY000] [2002] Connection refused
erreur lors du déplacement de mon projet de MAMP et l'exécution de php artisan migrer.
Maintenant, je suis complètement perdu ...
source d'informationauteur nclsvh
Vous devez vous connecter pour publier un commentaire.
Problème
Dans Laravel vous avez
config/database.php
où l'ensemble de l'installation pour la connexion se trouve. Vous avez également un.env
fichier dans le répertoire racine de votre projet (que tout le monde utilise pour gagner du temps). Il contient des variables que vous pouvez utiliser pour le projet entier.Sur un standard L5 projet MySql section de
config/database.php
ressemble à ceci:Avis il n'y a pas de port série!!!
Bien dans ma
.env
fichier que j'avais mis deDB_PORT=33060
. Mais quevalue (3306)
n'a jamais été lu dans leconfig/database.php
.Pour ne pas être un connard comme moi et oubliez pas de vérifier les
database.php
fichier.FIXER
Ajoutez simplement
'port' => env('DB_PORT', 3306),
à votre config/database.php et de définir cette valeur .env comme ceDB_PORT=33060
Je viens de tomber sur ce et a constaté que la modification de cette dans le .fichier de configuration de 127.0.0.1 localhost fixe.
DB_HOST=localhost
Je a avoir ce problème. Lors de la connexion avec Sequel Pro, j'ai besoin d'utiliser 33060 que le port, mais dans l' .fichier de configuration, il doit être 3306. J'ai eu 33060 dans le .fichier env. Changé 3306 et cela a fonctionné.
C'est une solution simple. Votre base de données mysql a perdu sa connexion au serveur. Si vous exécutez un serveur local exécuter ceci dans votre terminal:
Que vous reconnecter à votre base de données. Ensuite (si vous utilisez homebrew) exécuter:
Cela va automatiquement se connecter à votre base de données sur la connexion.
J'ai eu le même problème, essayez cela fonctionne
Dans mon cas, cette erreur est apparu hors de bleu. Tout en regardant fixement la mystérieuse erreur que j'ai réalisé, que j'ai essayé d'exécuter la commande en dehors de la machine virtuelle...
Il est possible que votre 'mysql' n'a pas commencé ou n'est pas à la port '3306'
Une autre solution pour quelqu'un d'autre qui a un problème. J'ai eu tous les paramètres corrects, mais pour une raison que mes modifications n'étaient pas mis à jour. Laravel en fait met en cache le fichier de config (que je trouve complètement stupide).
C'était ma solution après la mise à jour des configs:
php artisan config:clear
Si vous utilisez MAMP sur mac OS ajoutez la ligne suivante à votre base de données mysql fichier de config
et sur votre .fichier env ajouter
Si vous utilisez
Homestead
alors vous devriez être en cours d'exécution avec la valeur par défaut de mysql port. Donc, au lieu d'utiliserDB_PORT=33060
vous devriez être en utilisantDB_PORT=3306
dans votre .fichier env. Aussi, n'oubliez pas d'exécuter votrephp artisan migrate
commandes dans votre homestead installation et tout devrait être ok.Espère que ça aide.