Je suis sur un Mac OS Yosemite utilisant Laravel 5.0.
Dans mon environnement local , je cours, php artisan migrate
je reçois:
Accès refusé pour l'utilisateur 'homestead' @ 'localhost' (en utilisant le mot de passe: OUI)
Configuration
Voici mon .env
APP_ENV=local
APP_DEBUG=true
APP_KEY=*****
DB_HOST=localhost
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret
app \ config \ database.php
'mysql' => [
'driver' => 'mysql',
'host' => env('DB_HOST', 'localhost'),
'database' => env('DB_DATABASE', 'homestead'),
'username' => env('DB_USERNAME', 'homestead'),
'password' => env('DB_PASSWORD', 'secret'),
'unix_socket' => '/tmp/mysql.sock',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
]
Comment éviter ce genre d'erreur?
J'ai essayé :
1
dans app / database.php
Remplacer localhost
par127.0.0.1
'host'=> env('DB_HOST', 'localhost')
->'host' => env('DB_HOST', '127.0.0.1')
Aussi, en .env
DB_HOST=localhost
-> DB_HOST=127.0.0.1
2
Essayez de spécifier l'environnement
php artisan migrate --env=local
3
Vérifiez si MySQL fonctionne en exécutant
mysqladmin -u homestead -p status Enter password: secret
j'ai eu
Uptime: 21281 Threads: 3 Questions: 274 Slow queries: 0 Opens: 327 Flush tables: 1 Open tables: 80 Queries per second avg: 0.012
Ce qui veut dire que ça marche.
4
Vérifiez MySQL UNIX Socket ( cette étape fonctionne pour moi )
Réponses:
La raison de l'accès refusé pour l'erreur laravel 5 de l'utilisateur 'homestead' @ 'localhost' est le problème de mise en cache du fichier .env.php car Laravel 5 utilise la configuration basée sur l'environnement dans votre fichier .env.
1 . Accédez au répertoire racine de votre application et ouvrez le fichier .env (dans ubuntu peut-être il est caché, appuyez sur ctrl+ hpour afficher les fichiers cachés et si vous êtes dans le terminal, tapez:
ls -a
pour afficher les fichiers cachés) dans votre éditeur et modifiez les paramètres de configuration de la base de données. puis enregistrez votre fichier .env2 . puis redémarrez votre serveur apache / serveur Web. et actualisez votre page et vous avez fait
3 . Si le problème persiste, essayez d'exécuter la commande ci-dessous pour effacer l'ancien fichier de cache de configuration.
Maintenant vous avez terminé l'erreur
la source
PDOException in Connector.php line 55: SQLSTATE[HY000] [1049] Unknown database 'laravelu'
._..env
et deconfig:clear
cache:clear
toutes les commandes, j'ai redémarréapache
mais j'ai toujours le même problème.TLDR: Vous devez arrêter le serveur Ctrl+ cet recommencer en utilisant
php artisan serve
Détails:
Si vous utilisez Laravel et que vous avez déjà démarré le serveur de développement local en
php artisan serve
Et après avoir déjà exécuté le serveur ci-dessus, vous modifiez les éléments liés au serveur de base de données dans le fichier .env. Comme passer de MySQL à SQLite ou quelque chose comme ça. Vous devez vous assurer que vous arrêtez le processus ci-dessus, c'est
Ctrcl C
-à- dire tout ce qui arrête le processus. Et puis redémarrez Artisan Serve à nouveau, c'est-à-direphp artisan serve
et actualisez votre navigateur et votre problème lié à la base de données sera corrigé. C'est ce qui a fonctionné pour moi pour Laravel 5.3la source
Deux façons de le résoudre
Première manière (non recommandé)
Ouvrez votre fichier de configuration de base de données (laravel_root / config / database.php) et recherchez le bloc de code ci-dessous.
Modifiez le bloc de code comme ci-dessous
Deuxième voie (recommandé par Laravel)
Vérifiez votre racine Laravel, il y a un fichier appelé .env s'il n'existe pas, recherchez .env.example, copiez / renommez-le en .env après que le fichier ait l'air génial!
Modifiez le bloc ci-dessous comme suit
Maintenant, cela fonctionnera bien.
la source
root/config/database.php
semble redondante.si vous n'utilisez
php artisan migrate
PAS de vagrant box mais de machine hôte, vous devez définir à l'intérieur de.env
l'ip de la boîte192.168.10.10
et définissez évidemment l'autorisation de l'utilisateur à partir de votre ip quelque chose comme
dans le
.env
fichierla source
grant all privileges on *.* to 'homestead'@'localhost' identified by 'secret';
j'ai travaillé pour moi.Si vous utilisez le serveur Web par défaut de PHP (par exemple
php artisan serve
), vous devez redémarrer votre serveur après avoir modifié les valeurs de votre fichier .env.la source
consultez ce fil sur les laracasts ou ce billet de blog pour plus de détails
si vous obtenez
essayez de changer "host" dans le fichier /app/config/database.php de "localhost" à "127.0.0.1". vous pouvez trouver plus de détails et d'autres correctifs ici sur ce fil .
Vérifiez également si vous avez spécifié le bon
unix_socket
. vérifiez ce fil .la source
Vérifiez MySQL UNIX Socket
Trouver l' emplacement unix_socket à l'aide de MySQL
mysql -u homestead -p
Ensuite, je vais sur config / database.php
Je mets à jour cette ligne:
'unix_socket' => '/tmp/mysql.sock',
à :
'unix_socket' => '/var/run/mysqld/mysqld.sock',
C'est tout. Cela fonctionne pour mon quatrième essai, j'espère que ces étapes aideront quelqu'un. :RÉ
la source
J'ai eu le même problème et à la fin il s'est avéré que je devais juste redémarrer le serveur et recommencer
Ctrl+ cpuis
la source
Sous Windows PC, suivez ci-dessous.
Accédez au dossier racine de votre application.
Modifier le fichier .env
Modifiez le surligné et modifiez le nom d'utilisateur et le mot de passe et le nom de la base de données en conséquence.
la source
dans mon cas, après le redémarrage de mon serveur, le problème a disparu.
quitter / fermer la commande "php artisan serve" et
relancez la commande "php artisan serve" .
la source
Dans le futur. Essayez d'abord d'effacer votre configuration
Fermez toutes les fenêtres du terminal / cmd, puis redémarrez le terminal / CMD et cela devrait éliminer le message d'erreur. Voyez si ça marche.
la source
après config db redémarrez le:
Si le service est actif avant de définir db config.
la source
J'utilise laravel 5. * Je suppose que j'ai un appel de fichier
.env
à la racine du projet qui ressemble à ceci:Et c'était en écrivant la configuration bd afin que vous puissiez supprimer ces variables de configuration afin que laravel prenne la configuration sous / config ou configurez votre configuration ici.
J'ai fait la seconde et ça marche pour moi :)
la source
Je l'ai! Connectez-vous en tant que root et accordez à homestead @ localhost les droits sur tout.
Depuis votre terminal:
Désormais, l'utilisateur régulier des homesteads a accès à toutes vos tables et, en tant que tel, devrait pouvoir exécuter des tâches telles que des migrations.
la source
Après avoir changé .env avec la nouvelle configuration, vous devez arrêter le serveur et le relancer (php artisan serve). Cause laravel obtient l'environnement lors de l'initialisation du serveur. Si vous ne redémarrez pas, vous changerez le .env en vous demandant pourquoi les changements n'ont pas lieu !!
la source
Tout ce que vous avez à faire est de modifier votre fichier .env .
Devant DB_DATABASE, écrivez le nom de la base de données et devant DB_USERNAME, utilisez root .
la source
Je voulais juste publier ceci parce que ce problème m'a frustré pendant environ 3 heures aujourd'hui. Je n'ai essayé aucune des méthodes énumérées dans les autres réponses, même si elles semblent toutes raisonnables. En fait, j'étais sur le point d'essayer de passer en revue chacune des solutions proposées ci-dessus, mais d'une manière ou d'une autre, j'ai eu ce coup d'inspiration. Voici ce qui a fonctionné pour moi pour me remettre au travail - YMMV:
1) Trouvez votre fichier .env. 2) Renommez votre fichier .env en autre chose. Laravel 5 doit utiliser ce fichier pour remplacer les paramètres ailleurs dans le framework. J'ai renommé le mien en .env.old 3) Vous devrez peut-être redémarrer votre serveur Web, mais je n'ai pas eu à le faire.
Bonne chance!
la source
Vous devez exécuter la
$ php artisan migrate
commande depuis Homestead, pas depuis votre Mac.la source
MBP-bheng-aveniors
. Ce n'est pas votre VM. Vous devez SSH dans Homestead ($ homestead ssh
), puis exécuter à$ php artisan migrate
partir de cette session SSH.Vérifiez votre fichier " .env " dans le dossier racine. est-ce correct?
la source
j'ai trouvé une solution
Accédez au répertoire racine de votre application et ouvrez le fichier .env (dans ubuntu, il se peut qu'il soit masqué, appuyez sur ctrl + h pour afficher les fichiers cachés) dans votre éditeur et modifiez les paramètres de configuration de la base de données. puis enregistrez votre fichier .env
puis redémarrez votre serveur apache / serveur Web. et actualisez votre page et vous avez fait
Cela a fonctionné pour moi gl ...
la source
modifiez simplement ces éléments dans le fichier .env de votre dossier racine.
Cela a fonctionné pour moi.
la source
dans mon cas (laravel 5+), j'ai dû mettre mon mot de passe entre guillemets simples et effacer le cache de configuration:
puis exécutez:
la source
Connectez-vous à MYSQL - utilisez la base de données mysql.
Sélectionnez * à partir de l'utilisateur;
Assurez-vous que votre colonne HOST est correcte. Il doit s'agir de l'hôte à partir duquel vous vous connectez (votre serveur d'applications), que ce soit l'adresse IP ou le nom DNS. De plus, «%» fonctionnera (ce qui signifie joker) mais ne sera pas sécurisé.
la source
Vérifiez votre fichier .env, si vous avez modifié l'une des variables, veuillez redémarrer le serveur laravel et votre problème sera résolu
la source
A. Après avoir mis à jour le fichier .env avec les paramètres de la base de données, effacez le paramètre larvaire en "exécutant php artisan config: clear"
B. Veuillez vous assurer de redémarrer votre serveur apache / réexécuter la commande "php artisan serve" pour que vos paramètres prennent effet.
la source
J'ai eu le même problème en utilisant SQLite. Mon problème était que DB_DATABASE pointait vers le mauvais emplacement de fichier.
Créez le fichier sqlite avec la commande touch et affichez le chemin du fichier en utilisant php artisan tinker.
Sortez ensuite ce chemin exact vers la variable DB_DATABASE.
Sans le chemin correct, vous obtiendrez l'erreur d'accès refusé
la source
Si vous rencontrez une erreur, renvoyez quelque chose comme cela
PDOException in Connector.php line 55: SQLSTATE[HY000] [1049] Unknown database 'laravelu'
est dû au fait que vous modifiez la configuration de votre batabase en tant queDB_DATABASE=laravelu
. Donc pour l'instant vous soit:DB_DATABASE=
[yourdatabase]
laravelu
dans votre phpmyadmincela devrait pouvoir le résoudre
la source
Dans mon cas, l'erreur a été "causée" par ma configuration Homestead / Vagrant dont j'ai oublié :) en essayant d'exécuter la migration uniquement à partir de la ligne de commande.
En cas d'utilisation de l'environnement Homestead Vagrant Box, vous devez exécuter votre migration depuis votre machine Homestead (après vous être connecté à l'aide de ssh :),
[email protected]:22
les droits d'accès seront alors OK et permettront à la migration de s'exécuter.la source
D'après votre question, il semble que vous dirigez une ferme. Dans ce cas, assurez-vous d'exécuter les commandes dans votre VM. De nombreux développeurs, dont moi, font souvent des erreurs et exécutent des commandes artisanales en dehors de VM que les commandes essaieront de se connecter à notre base de données locale accessible via localhost qui est différente de la base de données utilisée par homestead. Cd dans votre répertoire Homestead et exécutez
puis cd dans le code si c'est là que vous gardez vos projets et cd dans votre projet et exécutez
php artisan migrate again
j'espère que cela aidera d'autres personnes.la source