web-dev-qa-db-fra.com

Laravel 5.4 sur PHP 7.0: Exception PDO - Impossible de trouver le pilote (MySQL) c

J'ai un projet Laravel 5.4 sur mon Ubuntu 14.04 (VPS avec Plesk 12.5.30). Après avoir créé la base de données et configuré le fichier .env avec les informations requises, j'ai lancé php artisan migrate et des exceptions ont été levées:

[Illuminate\Database\QueryException]
Impossible de trouver le pilote (SQL: sélectionnez * dans information_schema.tables où table_schema = pmaramaldb et nom_table = migrations)

[PDOException]
impossible de trouver le pilote

Mon fichier .env contient:

DB_CONNECTION = mysql

DB_Host = 127.0.0.1

DB_PORT = 3306

DB_DATABASE = pmaramaldb

DB_USERNAME = utilisateur

DB_PASSWORD = mot de passe

J'ai suivi la plupart des guides pour résoudre cette erreur et il n'y a pas eu de résultats positifs:

Activation de la solution d'extension:

Le PDO est activé

Le fichier php.ini est généré automatiquement, je suppose que cela a été créé par Plesk. Au début du fichier, il est écrit:

; ATTENTION!
;
; NE MODIFIEZ PAS CE FICHIER CAR IL A ÉTÉ GÉNÉRÉ AUTOMATIQUEMENT,
; SO TOUTES VOS MODIFICATIONS SERONT PERDUES LA PROCHAINE FOIS QUE LE FICHIER IS EST GÉNÉRÉ.

Donc j'ai essayé quand même. Après cela, j'ai redémarré Apache puis essayé à nouveau ... Cela n'a pas fonctionné.

Installation de php7.0-mysql Solution: 

J'ai aussi essayé d'installer MySQL au cas où ce ne soit pas:

utilisateur @ serveur:/var/www/vhosts $ Sudo apt-get install php7.0-mysql

Leyendo lista de paquet ... Hecho

Créer des dépendances

Lire plus d'informations sur ... Hecho

php7.0-mysql est déjà la dernière version.

0 actualizados, 0 se instalarán, 0 para éliminar y 67 no actualizados.

** Solution d'installation de SQL Lite: **

J'ai aussi essayé en tant que question link dit: Sudo apt-get install php5-sqlite et le résultat était:

utilisateur @ serveur: /var/www/vhosts/system/maramal.io/etc$ Sudo apt-get install php5-sqlite

Leyendo lista de paquet ... Hecho

Créer des dépendances

Lire plus d'informations sur ... Hecho

php5-sqlite est déjà la version la plus récente.

0 actualizados, 0 se instalarán, 0 para éliminar y 67 no actualizados.

Composer Dump-autoload Solution:

Cela n'a pas fonctionné non plus. J'ai essayé composer dump-autoload et cela n'a pas fonctionné.

Après avoir exécuté la commande php -i:

AOP 

PDO support => activé 

Pilotes PDO => 

...

Version PHP => 5.6.30-1 + deb.sury.org ~ digne de confiance + 1

Eh bien, je ne sais pas si cela a quelque chose à voir avec l'erreur, mais la version affichée en exécutant php -v est la suivante:

utilisateur @ serveur: ~/chemin $ php -v 

PHP 5.6.30-1 + deb.sury.org ~ trusty + 1 (cli) 

Copyright (c) 1997-2016 Le groupe PHP 

Zend Engine v2.6.0, Copyright (c) 1998-2016 Zend Technologies
avec Zend OPcache v7.0.6-dev, Copyright (c) 1999-2016, par Zend Technologies 

19
Maramal

Il y a un conflit entre le PHP utilisé par Apache et le PHP lié à la ligne de commande. (Il arrive plus souvent que cela devrait être honnête).

Ce qui est généralement fait est:

which php

Cela vous indique quel php sera exécuté lors de l'exécution en ligne de commande. par exemple. /usr/bin/php

mv /usr/bin/php /usr/bin/php.old

Ensuite, liez ou copiez la bonne version PHP vers un chemin d’exécutable:

ln -s /path/to/php/bin/php /usr/bin/php

ou ce qui suit devrait également fonctionner.

cp /path/to/php/bin/php /usr/bin/php

Aussi suggéré si vous voulez pouvoir installer manuellement les mods:

ln -s /path/to/php/bin/phpize /usr/bin/phpize
ln -s /path/to/php/bin/php-config /usr/bin/php-config

De cette façon, votre CLI correspondra à votre serveur Web.

8
apokryfos

En tant que solution alternative, assurez-vous d'avoir installé php7-mysql

essayez d'exécuter la commande ci-dessous

Sudo apt install php7.0-mysql
33
İsmail Atkurt

Même problème, Ubuntu 17.10, Laravel 5.5.

$ Sudo apt install php7.1-pdo php7.1-mysql 

 enter image description here

 enter image description here

Une solution rapide Nice, espérons que cela aide

16
Devin Norgarb

J'ai eu le même scénario que vous avez. J'ai résolu le mien comme suit: 

1) sur votre terminal, tapez  

php --ini

cela produira votre chemin actuel du fichier de configuration php.ini. 

2) éditez php.ini en utilisant vim ou votre éditeur préféré.

vim /etc/php.ini

notez que /etc/php.ini est votre fichier de chemin pour votre php.ini. cela peut être différent sur votre machine. 

3) recherchez ; extension = php_pdo_mysql.dll et supprimez le commentaire en supprimant le point-virgule (;)  

4) enregistrez votre modification php.ini/s

** 5) redémarrer le serveur Web pour appliquer les modifications

Sudo systemctl redémarrer Apache2

** 6) Maintenant, lancez votre commande. 

php artisan migrer

espérons que cela vous aide. 

8
doyevaristo

Votre pilote de base de données est manquant. Pour résoudre le problème

Installez d'abord le pilote

Pour Ubuntu: Pour la base de données mysql.

Sudo apt-get install php5.6-mysql/php7.2-mysql

Vous pouvez également rechercher d'autres systèmes de base de données.

Vous pouvez également rechercher le pilote:

Sudo apt-cache search drivername
2
abhishek subedi

Vous pouvez essayer ces commandes suivantes 

php artisan cache:clear
php artisan config:clear  

Puis redémarrez votre serveur Apache. Ensuite, reconfigurez votre fichier .env 

1
MF Hossen

Ok, j'ai déjà rencontré cette erreur ... Je ne sais pas pourquoi, mais il semblerait qu'en PHP 7.3, il y ait un problème avec les pilotes ou quelque chose de ce que j'ai fait était de revenir au PHP 7.2 et tout a bien fonctionné ...

0
Lotes Molapo

effacer le cache de l'artisan 

php artisan cache:clear

et

php artisan migrate:refresh

c'est tout 

0
Fatih TÜZEN