web-dev-qa-db-fra.com

Exception 'impossible de trouver le pilote' lors de la migration dans yii2

C'est ma trace de pile:

  Exception 'yii\db\Exception' with message 'could not find driver'

in /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/db/Connection.php:534

#0 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/db/Connection.php(836): yii\db\Connection->open()
        #1 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/db/Connection.php(823): yii\db\Connection->getMasterPdo()
        #2 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/db/Command.php(208): yii\db\Connection->getSlavePdo()
        #3 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/db/Command.php(816): yii\db\Command->prepare(true)
        #4 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/db/Command.php(350): yii\db\Command->queryInternal('fetchAll', NULL)
        #5 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/db/mysql/Schema.php(198): yii\db\Command->queryAll()
        #6 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/db/mysql/Schema.php(97): yii\db\mysql\Schema->findColumns(Object(yii\db\TableSchema))
        #7 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/db/Schema.php(140): yii\db\mysql\Schema->loadTableSchema('migration')
        #8 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/console/controllers/MigrateController.php(121): yii\db\Schema->getTableSchema('{{%migration}}', true)
        #9 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(610): yii\console\controllers\MigrateController->getMigrationHistory(NULL)
        #10 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/console/controllers/BaseMigrateController.php(102): yii\console\controllers\BaseMigrateController->getNewMigrations()
        #11 [internal function]: yii\console\controllers\BaseMigrateController->actionUp(0)
        #12 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/base/InlineAction.php(55): call_user_func_array(Array, Array)
        #13 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/base/Controller.php(151): yii\base\InlineAction->runWithParams(Array)
        #14 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/console/Controller.php(91): yii\base\Controller->runAction('', Array)
        #15 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/base/Module.php(455): yii\console\Controller->runAction('', Array)
        #16 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/console/Application.php(161): yii\base\Module->runAction('migrate', Array)
        #17 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/console/Application.php(137): yii\console\Application->runAction('migrate', Array)
        #18 /opt/lampp/htdocs/advanced/vendor/yiisoft/yii2/base/Application.php(375): yii\console\Application->handleRequest(Object(yii\console\Request))
        #19 /opt/lampp/htdocs/advanced/yii(31): yii\base\Application->run()
        #20 {main}

Je suis nouveau à yii2. J'ai ajouté le nom de la base de données et le nom d'utilisateur dans advaced/common/config/main-local.php. Utiliser xampp webserver et la version de php est 5.6.8 et PDO est également activé. 

Ceci est ma configuration de base de données.

'db' => [
        'class' => 'yii\db\Connection',
        'dsn' => 'mysql:Host=localhost;dbname=yii2advanced',
        'username' => 'root',
        'password' => '',
        'charset' => 'utf8',
    ],
8
akhil

Trouvé ceci sur Yii2

"Il s'agit probablement de la configuration de votre système. Si vous utilisez des packages tels que MAMP, XAMPP ou autre, vous devrez peut-être remplacer" localhost "par " 127.0.0.1 "dans votre fichier de configuration db.php. Si vous êtes sur Linux, il se peut que vous deviez installer d'autres paquets supplémentaires, tels que php5-mysql et ainsi de suite. "

11
Dan Cundy

J'ai eu une situation similaire lors de la migration Yii2 (Advanced) (Xampp dans Ubuntu 14.04 et PHP)

Voici le message que j'ai:

Exception 'yii\db\Exception' avec le message 'impossible de trouver le pilote'

Donc, après avoir googlé et lu ce fil et d’autres, j’ai découvert que cela pouvait être le problème

l'extension PHP "pdo_mysql" est désactivée ou n'est pas installée du tout 

et essayé ceci à mon terminal:

php -m

après s'être rendu compte que le module n'était pas là ...

Sudo apt-get install php5-Gd php5-mysql

et après une installation rapide, le service doit être redémarré ...

Sudo /opt/lampp/lampp restart

.... enfin (réessayez la migration)

php yii migrate

Migré avec succès.

J'espère que vous le trouverez utile et que vous travaillerez pour les autres.

Je l'ai trouvé sur ask ubuntu mais je ne peux pas ajouter de lien ni de code, car c'est mon premier message. 

lien: http://www.yiiframework.com/forum/index.php/topic/49450-error-on-migrate-command-advanced-yii2-app/

6
Levi Saturnino

J'ai eu exactement la même erreur. En recherchant, j'ai trouvé un commentaire brésilien concernant un problème similaire, car il avait installé deux versions différentes de php sur son ordinateur.

J'ai vérifié le répertoire/opt/lampp/bin et j'ai trouvé deux versions différentes de php, l'une simplement "php" et l'autre "php-5.6.8". J'ai donc décidé de lancer la deuxième version, et ça marche!

test @ pctest: ~ $ /opt/lampp/bin/php-5.6.8/opt/lampp/htdocs/advanced/yii migrate

2
Alexis

J'ai résolu ce problème en changeant le chemin PHP comme ceci

  1. Allez dans "Poste de travail", faites un clic droit et cliquez sur "Propriétés"
  2. Cliquez sur "Paramètres système avancés"
  3. Cliquez sur "Variables d'environnement"
  4. Recherchez le "chemin" dans les variables système, double-cliquez dessus.
  5. Trouvez votre chemin PHP ou ajoutez-le si vous ne l'avez pas encore, comme "D:\xampp\php"
  6. Cliquez sur OK et redémarrez votre serveur Apache.
  7. Ça y est, je peux migrer db alors.
0
user3345269

J'ai eu la même erreur, mais au lieu de xampp, j'ai utilisé Fedora 25 avec Apache. Pour moi, 'dnf install -y php-mysqlnd' a corrigé cette erreur;.

0
Kevin Murda