2015-05-10 12 views
5

Das ist mein Stack-Trace:Exception 'konnte nicht Treiber finden', während der Migration in yii2

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} 

Ich bin neu in yii2. Ich habe Datenbankname, Benutzername in advaced/common/config/main-local.php hinzugefügt. Die Verwendung von xampp Webserver und Version von PHP ist 5.6.8 und PDO ist ebenfalls aktiviert.

Dies ist meine Db-Konfiguration.

'db' => [ 
     'class' => 'yii\db\Connection', 
     'dsn' => 'mysql:host=localhost;dbname=yii2advanced', 
     'username' => 'root', 
     'password' => '', 
     'charset' => 'utf8', 
    ], 
+0

mögliche Duplikate von [PDOException "konnte Treiber nicht finden"] (http://stackoverflow.com/questions/2852748/pdoexception-could-not-find-driver) – arogachev

Antwort

8

diese Gefunden auf Yii2

localhost „zu ‚‘Wahrscheinlich es Ihre Systemkonfiguration ist. Wenn Sie Pakete wie MAMP, XAMPP oder andere verwenden, können Sie ändern müssen“ 127.0.0.1 "in Ihrer db.php Konfigurationsdatei. Auch wenn Sie auf Linux sind, müssen Sie möglicherweise einige andere zusätzliche Pakete wie php5-mysql und solche Sachen installieren."

+1

Danke, ich benutze Ubuntu, installierte php5- mysql und es funktionierte nach dem Ändern des Hostnamens in IP-Adresse ... – akhil

+0

Froh, dass es geholfen hat. –

+0

Ich benutze Windows XP, sogar ich ändere auf 127.0.0.1 statt localhost immer noch das gleiche Problem existiert, zu Ihrer Information habe ich PHP 7.0.2 Version in meinem System – senthil

1

Ich hatte genau den gleichen Fehler. Beim Suchen fand ich einen brasilianischen Kommentar zu einem ähnlichen Problem, weil er zwei verschiedene PHP-Versionen in seinem Computer installiert hatte.

Ich überprüfte das Verzeichnis/opt/lampp/bin und ich fand zwei verschiedene php-Versionen, eine einfach "php" und die andere "php-5.6.8", also entschied ich mich, die zweite Version zu starten, und es funktioniert!

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

5

ich während Yii2 (Advanced) Migration eine ähnliche Situation hatte (Xampp in Ubuntu 14.04 und PHP)

Dies ist die Botschaft, die ich habe: Exception 'yii \ db \ Exception' with message 'nicht-Treiber finden konnte'

So nach googeln und Lesen dieses Thema und andere, die ich herausgefunden, dass das mögliche Problem sein könnte

die PHP-Erweiterung "pdo_mysql" deaktiviert wurde oder gar nicht

installiert und versucht, dies:

an meinem Terminal: php -m

nach erkennen, dass das Modul nicht da war ... sudo apt-get install php5-gd php5-mysql

und nach einer schnellen Installation des Service neu gestartet werden muss ... sudo/opt/lampp/lampp Neustart

.... Abschließend (Migration wiederholen) php yii migrieren

Erfolgreich migriert.

Ich hoffe, Sie finden es nützlich & arbeiten für andere.

Ich fand es bei ask ubuntu, aber ich bin nicht in der Lage, einen Link oder einen Code hinzuzufügen, da dies mein erster Beitrag ist.

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

0

ich denselben Fehler hatte, aber statt xampp verwendete ich Fedora 25 mit Apache, für mich fixiert diesen Fehler 'DNF -y php-mysqlnd installieren', so dass Sie wahrscheinlich Erweiterung fehlen.

+0

Dies scheint keine Antwort auf die Frage zu sein. Sobald Sie genügend [Reputation] (http://stackoverflow.com/help/whats-reputation) haben, können Sie [comment] (http://stackoverflow.com/help/privileges/comment) zu jedem Post schreiben. Überprüfen Sie auch dieses [was kann ich stattdessen tun] (https://meta.stackexchange.com/questions/214173/why-do-i-need-50-reputation-to-comment-what-can-i-do-instead). – thewaywewere

Verwandte Themen