J'ai installé laravel 5 avec succès en utilisant cette commande:
composer create-project laravel/laravel test-laravel-5-project dev-develop --prefer-dist
J'ai même vérifié la version de laravel installée en utilisant la commande php artisan -V
. La sortie était
Laravel Framework version 5.0-dev
Ensuite, je suis allé à app/config/database.php, j'ai donné dafault db comme mysql et donné des configurations comme
'mysql' => [ 'driver' => 'mysql', 'Host' => env('DB_Host', 'localhost'), 'database' => env('DB_DATABASE', 'Logintestfive'), 'username'=> env('DB_USERNAME', 'root'), 'password'=> env('DB_PASSWORD', 'manasa'), 'charset'=> 'utf-8', 'collation'=> 'utf-8_unicode_ci', prefix=> '', 'strict'=> false, ]
Ensuite, je suis allé à localhost:8000/auth/register
et j'ai rempli le formulaire et soumis les données. Voici l'erreur que j'ai eu:
PDOException in Connector.php line 47: SQLSTATE[28000] [1045] Access denied for user 'Homestead'@'localhost' (using password: YES)
Mais je n'ai jamais utilisé laravel Homestead
pour installer laravel 5 dans mon système ni vagrant
pour configurer laravel Homestead. Et ça me dit comme ça:
in Connector.php line 47
at PDO->__construct('mysql:Host=localhost;dbname=Homestead', 'Homestead', 'secret', array('0', '2', '0', false, '0')) in Connector.php line 47
at Connector->createConnection('mysql:Host=localhost;dbname=Homestead', array('driver' => 'mysql', 'Host' => 'localhost', 'database' => 'Homestead', 'username' => 'Homestead', 'password' => 'secret', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'name' => 'mysql'), array('0', '2', '0', false, '0')) in MySqlConnector.php line 20
at MySqlConnector->connect(array('driver' => 'mysql', 'Host' => 'localhost', 'database' => 'Homestead', 'username' => 'Homestead', 'password' => 'secret', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'name' => 'mysql')) in compiled.php line 10545
at ConnectionFactory->createSingleConnection(array('driver' => 'mysql', 'Host' => 'localhost', 'database' => 'Homestead', 'username' => 'Homestead', 'password' => 'secret', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'name' => 'mysql')) in compiled.php line 10541
at ConnectionFactory->make(array('driver' => 'mysql', 'Host' => 'localhost', 'database' => 'Homestead', 'username' => 'Homestead', 'password' => 'secret', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false), 'mysql') in compiled.php line 10459
Comment puis-je résoudre ces problèmes?
J'ai un problème similaire. J'ai démarré mon serveur avec la commande php artisan serve
, modifié le fichier .env
et actualisé la page Web qui ne reflétait aucun changement!
Je l'ai corrigé en arrêtant le serveur Web, en modifiant le fichier .env.php
et en redémarrant le serveur Web!
Donc, je suppose que c'est un problème de mise en cache du fichier .env.php
.
Laravel 5.1.10
Comme les réponses déjà données ci-dessus par Ganesh et Yordi, Mais je les combine en un seul.
Problème :
Lorsque j'essaie de créer une base de données dans phpmyAdmin et que je veux créer un schéma/une table par le biais du service Laravel Schema Builder, j'ai les erreurs suivantes:
PDOException dans Connector.php, ligne 50: SQLSTATE [HY000] [1045] Accès refusé pour l'utilisateur 'Homestead' @ 'localhost' (en utilisant le mot de passe: YES)
dans Connector.php ligne 50
at PDO -> __ construct ('mysql: Host = localhost; nombase = Homestead', 'Homestead', 'secret', tableau ('0', '2', '0', faux, '0'))
dans Connector.php ligne 50
at Connector-> createConnection ('mysql: Host = localhost; nombase = Homestead', array ('driver' => 'mysql', 'Host' => 'localhost', 'database' => 'Homestead', 'nomutilisateur' => 'Homestead', 'password' => 'secret', 'charset' => 'utf8', 'collation' => 'utf8_unicode_ci', 'prefix' => '', 'strict' => false, 'name '=>' mysql '), tableau (' 0 ',' 2 ',' 0 ', faux,' 0 ')) dans la ligne 22 .__ de MySqlConnector.php. sur MySqlConnector-> connect (array ('driver' => 'mysql', 'Host' => 'localhost', 'database' => 'Homestead', 'username' => 'Homestead', 'password' => ' secret ',' charset '=>' utf8 ',' collation '=>' utf8_unicode_ci ',' prefix '=>' ',' strict '=> false,' name '=>' mysql ')) .... .........
Solution 1:
Ensuite, j'ai réalisé que les problèmes se trouvaient dans le fichier env, mais j'ai oublié de modifier les valeurs du fichier env. Le fichier .env se trouve dans le répertoire racine de laravel 5ouvrez le fichier et modifiez les valeurs suivantes avec vos
DB_DATABASE = localhost,
DB_USERNAME = nom de la base de données,
DB_PASSWORD = databse-user-password
Solution 2:
Ou changer dans le fichier database.php sans env () comme Ganesh syas:
// instead of this block
'mysql' => [
'driver' => 'mysql',
'Host' => env('DB_Host', 'localhost'),
'database' => env('DB_DATABASE', 'your database name'),
'username' => env('DB_USERNAME', 'your database username'),
'password' => env('DB_PASSWORD', 'your database password'),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
],
// use this one
'mysql' => [
'driver' => 'mysql',
'Host' => 'localhost',
'database' => 'your database name',
'username' => 'your database username',
'password' => 'your database password',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
]
Les deux solutions ont fonctionné pour moi.
Laravel utilise les variables contenues dans votre fichier .env
.
De: http://laravel.com/docs/master/configuration
Il est souvent utile d’avoir différentes valeurs de configuration en fonction de l’environnement d’exécution de l’application. Par exemple, vous souhaiterez peut-être utiliser localement un pilote de cache différent de celui utilisé sur votre serveur de production. C'est facile en utilisant une configuration basée sur l'environnement.
Laravel utilise la bibliothèque DotEnv PHP de Vance Lucas. Dans une nouvelle installation de Laravel, le répertoire racine de votre application contiendra un fichier .env.example. Si vous installez Laravel via Composer, ce fichier sera automatiquement renommé .env. Sinon, vous devez renommer le fichier manuellement.
Toutes les variables répertoriées dans ce fichier seront chargées dans le super-global $ _ENV PHP lorsque votre application recevra une requête. Vous pouvez utiliser l’environnemental env pour récupérer les valeurs de ces variables. En fait, si vous examinez les fichiers de configuration de Laravel, vous remarquerez que plusieurs des options utilisent déjà cette aide!
N'hésitez pas à modifier vos variables d'environnement selon vos besoins pour votre propre serveur local, ainsi que votre environnement de production. Toutefois, votre fichier .env ne doit pas être affecté au contrôle de source de votre application, car chaque développeur/serveur utilisant votre application peut nécessiter une configuration d'environnement différente.
Si vous développez avec une équipe, vous voudrez peut-être continuer à inclure un fichier .env.example avec votre application. En plaçant des valeurs d'espace réservé dans l'exemple de fichier de configuration, les autres développeurs de votre équipe peuvent voir clairement quelles variables d'environnement sont nécessaires pour exécuter votre application.
Le fichier .env par défaut ressemble à ceci:
APP_ENV=local
APP_DEBUG=true
APP_KEY=YOUR_KEY_HERE
DB_Host=localhost
DB_DATABASE=Homestead
DB_USERNAME=Homestead
DB_PASSWORD=secret
CACHE_DRIVER=file
SESSION_DRIVER=file
J'ai le même problème. Après avoir utilisé la commande "php artisan config: clear" pour effacer l'ancien fichier de cache de configuration, cela peut fonctionner. Peut-être que vous pouvez l'essayer.
Au fait, mon anglais n'est pas bon, j'espère que vous pourrez comprendre.
Dans Config-> database.php
'mysql' => [
'driver' => 'mysql',
'Host' => env('DB_Host', 'localhost'),
'port' => env('DB_PORT', '3306'),
'database' => env('DB_DATABASE', 'DBName'),
'username' => env('DB_USERNAME', 'root'),
'password' => env('DB_PASSWORD', ''),
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
'engine' => null,
],
En fichier .env:
DB_Host=localhost
DB_PORT=3306
DB_DATABASE=DBName
DB_USERNAME=root
DB_PASSWORD=
Fermez le serveur d’application laravel et redémarrez-le pour vider le cache.
php artisan serve
Ou tu peux faire:
php artisan config:clear
Cela effacera le cache dans les fichiers de configuration.
Maintenant, ça va définitivement marcher! À votre santé!
Laravel utilise le fichier .env, alors changez le fichier .env ou changez-le dans le fichier database.php sans env ()
'mysql' => [
'driver' => 'mysql',
'Host' => 'localhost',
'database' => 'your database name',
'username' => 'your database username',
'password' => 'your database password',
'charset' => 'utf8',
'collation' => 'utf8_unicode_ci',
'prefix' => '',
'strict' => false,
]
Laravel config/database.php utilise le fichier .env pour le nom de la base de données, nom d'utilisateur et mot de passe. Veuillez modifier votre fichier .env
DB_Host = localhost
DB_DATABASE = mon_projet
DB_USERNAME = root
DB_PASSWORD = mon projet
Après avoir modifié ceci, exécutez la commande ci-dessous:
composer dump-autoload
puis lancez votre projet
php artisan servir
J'ai eu un problème très similaire et je ne savais pas où chercher. J'ai effacé le cache, redémarré le serveur, etc., pas de joie. Jusqu'à ce que je le trouve ...
Avant de revenir à une version précédente du référentiel Git, j'avais mon pilote de session configuré pour utiliser la base de données ! C'est idiot, mais ce n'est pas nécessairement la connexion à la base de données que vous devez regarder, mais l'endroit où vous appelez la base de données à utiliser en premier lieu.
J'espère que quelqu'un qui se retrouvera sur cette page comme je l'ai fait trouvera cela utile.
Oui, j'ai eu les mêmes problèmes où tout s'est bien passé depuis l'installation de migration jusqu'à la migration artisanale php. Mais quand j'ai essayé de créer un utilisateur, l'accès est refusé.
La solution que j’ai trouvée était de fermer ctrl + d pour mettre fin au serveur et redémarrer. J'ai travaillé... :)
j'ai le même issui, éditer le fichier .env
sur le dossier racine et changer la configuration de la base de données DB_DATABASE
DB_USERNAME
DB_PASSWORD
vous pouvez redémarrer votre serveur Je pense qu’il s’agit d’une erreur de capture dans Laravel, alors relancez votre serveur avec "php artisan serve" et actualisez la page de votre site Web. C’est bien.
Dans votre laravel par exemple. c:/www/laravel, créez un nouveau répertoire appelé "local" dans app/config.Copy database.php (app/config/database.php).