Vient de suivre toutes les étapes répertoriées sur le Laravel site } à installer et à démarrer pour MacOS HighSierra . J'ai actuellement Composer, Homebrew, valet, PHP 7.2.8, MySQL version 8.0.11 et Laravel 5.6.28 installé. Je peux créer un nouveau projet en exécutant la commande Laravel new blog
sans avoir de problèmes. De plus, lorsque je vais sur mon navigateur, je peux voir le projet en cours que je viens de créer ou sur lequel je travaille. Je peux exécuter la commande valet list
et je connais donc son fonctionnement/fonctionnement. Je peux aussi créer une migration et l'afficher dans mon projet en exécutant le php artisan make:migration test_test_test
.
Ma PATH
a aussi ~/.composer/vendor/bin
également.
mon fichier .env ressemble à un tel
APP_NAME=Laravel
APP_ENV=local
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_Host=127.0.0.1
DB_PORT=3306
DB_DATABASE=blog
DB_USERNAME=root
DB_PASSWORD=
BROADCAST_DRIVER=log
CACHE_DRIVER=file
SESSION_DRIVER=file
SESSION_LIFETIME=120
QUEUE_DRIVER=sync
REDIS_Host=127.0.0.1
REDIS_PASSWORD=null
REDIS_PORT=6379
MAIL_DRIVER=smtp
MAIL_Host=smtp.mailtrap.io
MAIL_PORT=2525
MAIL_USERNAME=null
MAIL_PASSWORD=null
MAIL_ENCRYPTION=null
PUSHER_APP_ID=
PUSHER_APP_KEY=
PUSHER_APP_SECRET=
PUSHER_APP_CLUSTER=mt1
MIX_PUSHER_APP_KEY="${PUSHER_APP_KEY}"
MIX_PUSHER_APP_CLUSTER="${PUSHER_APP_CLUSTER}"
J'exécute la commande php artisan migrate -vvv
qui s'exécute et se bloque/raccroche sans aucun résultat. Je dois ctl-c pour en sortir. essayé le -v /-vv
aussi, a fait la même chose.
J'ai créé une base de données nommée blog
et j'ai même ajouté manuellement une table test
pour m'assurer que la base de données fonctionnait/était opérationnelle.
Mise à jour
Avancez et désinstallez MySQL et réinstallez-le. J'ai réussi à exécuter la commande php artisan migrate -v et j'obtiens cette erreur.
maintenant je reçois cette erreur.
MacBook-Pro:anything computername$ php artisan migrate -v
PDOException : SQLSTATE[HY000] [2006] MySQL server has gone away
at /Users/computername/Sites/anything/vendor/laravel/framework/src/Illuminate/Database/Connectors/Connector.php:68
64| if (class_exists(PDOConnection::class) && ! $this->isPersistentConnection($options)) {
65| return new PDOConnection($dsn, $username, $password, $options);
66| }
67|
> 68| return new PDO($dsn, $username, $password, $options);
69| }
70|
71| /**
72| * Determine if the connection is persistent.
Trace d'exception:
Création d'un routeur et d'une vue se connectant à une table que je crée pour voir si je serais en mesure d'accéder aux variables de la base de données et de les imprimer. Au retour, j'ai eu cette erreur.
Exception message: PDO::__construct(): Unexpected server respose while doing caching_sha2 auth: 109
J'ai moi-même eu ce problème et obtenir l'erreur Exception message: PDO::__construct(): Unexpected server respose while doing caching_sha2 auth: 109
Voici comment je l'ai corrigé:
Je me suis connecté à mysql en tant qu'utilisateur root, comme ceci mysql –uroot –p
et j'ai entré mon mot de passe
Vous pouvez obtenir une liste des utilisateurs qui se trouvent sur le serveur en tapant ceci SELECT User, Host FROM mysql.user;
Assurez-vous de voir l'utilisateur que vous essayez de connecter à la base de données à partir de votre fichier .env. Vous devrez modifier l'utilisateur actuel pour utiliser le mot de passe caching_sha2 requis dans la dernière version de mysql.
Voici cette commande.
ALTER USER `username`@`localhost` IDENTIFIED WITH caching_sha2_password BY 'password';
Tout en restant connecté en tant qu'utilisateur root, vous devez exécuter cette commande pour permettre à votre utilisateur d'effectuer les tâches nécessaires autorisées pour l'exécution d'un php artisan migrate
. Ex: CREATE, DROP, ALTER, DELETE
et tel.
GRANT ALL PRIVILEGES ON database_name.* TO 'username'@'localhost';
Si cela ne fonctionne pas, vous pouvez également choisir les commandes que vous souhaitez autoriser au lieu de leur donner un accès complet.
GRANT SELECT, INSERT ON *.* TO 'someuser'@'somehost';
J'espère que cela aide ~
Le serveur est parti est une erreur MySql, vérifiez ce lien
Vérifiez que votre service mysql est bien en cours d’exécution et ensuite, que vous avez les bonnes informations d’identification sur votre fichier .env
À propos de «l'erreur initiale» sur les migrations, nous devons voir ce qu'il y a dans le code de migration.
Edit: Les migrations étant la méthode par défaut de Laravel, le problème réside probablement dans la connexion entre Laravel et la base de données.
Pour le confirmer:
DB::statement('select * from tablejustcreated');
Faites la demande à cette route et si elle gèle, boum, c'est la connexion et probablement les informations d'identification du fichier .env
(nom d'utilisateur et mot de passe, hôte, port).
Un grand merci à @poohhbear et à tous les autres de m'avoir aidé à résoudre ce problème.
Ce qui a réellement fonctionné pour moi a été:
ALTER USER 'myusername'@'localhost' IDENTIFIED WITH mysql_native_password BY 'mypassword';
... sans doute parce que le nouveau MySQL par défaut était caching_sha2_password
et PHP ne savait pas comment gérer cela.
C'est un bogue connu dans PHP 7.2.8. Passez à PHP 7.2.7 jusqu'à ce qu'il soit corrigé.
J'ai rencontré le même problème lors de la mise à niveau de PHP 7.2.7 à PHP 7.2.8.