web-dev-qa-db-ja.com

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}

Yii2は初めてです。 advaced/common/config/main-local.phpにデータベース名、ユーザー名を追加しました。 xampp webserverとphpのバージョンの使用は5.6.8で、PDOも有効になっています。

これは私のdb設定です。

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

これは Yii2 で見つかりました

「おそらくシステム構成です。MAMP、XAMPPなどのパッケージを使用している場合は、db.php構成ファイルで「localhost」を「127.0.0.1」に変更する必要があります。また、Linuxを使用している場合は、 php5-mysqlなどの追加パッケージをインストールする必要があるかもしれません。」

12
Dan Cundy

Yii2(詳細)移行中に同様の状況が発生しました(Ubuntu 14.04およびPHPのXampp)

これは私が持っているメッセージです:

例外「yii\db\Exception」とメッセージ「could not find driver」

だからグーグルしてこのスレッドや他のスレッドを読んだ後、私はそれが可能な問題である可能性があることを発見しました

PHP拡張 "pdo_mysql"が無効になっているか、まったくインストールされていません

私の端末でこれを試しました:

php -m

モジュールがそこにないことに気づいた後...

Sudo apt-get install php5-Gd php5-mysql

クイックインストール後、サービスを再起動する必要があります...

Sudo /opt/lampp/lampp restart

....最終的に(移行を再試行)

php yii migrate

正常に移行されました。

あなたがそれが他の人にとって有用であり、うまくいくことを願っています。

私はask ubuntuでそれを見つけましたが、これは私の最初の投稿なので、リンクやコードを追加できません。

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

7
Levi Saturnino

私はまったく同じエラーがありました。検索したところ、コンピューターに2つの異なるphpバージョンがインストールされているために発生した同様の問題に関するブラジルのコメントが見つかりました。

/ opt/lampp/binディレクトリを確認したところ、プレーンな「php」と「php-5.6.8」の2つの異なるphpバージョンが見つかったので、2番目のバージョンを実行することにしました。

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

3
Alexis

PHPパスをこのように変更することでこの問題を解決しました

  1. 「マイコンピュータ」を右クリックして、「プロパティ」をクリックします。
  2. 「システムの詳細設定」をクリックします
  3. 「環境変数」をクリックします
  4. システム変数で「パス」を見つけ、ダブルクリックします。
  5. PHPパスを見つけるか、「D:\ xampp\php」のように、まだない場合は追加します。
  6. [OK]をクリックして、Apacheサーバーを再起動します。
  7. それだけです、それでdbを移行できます。
0
user3345269

私はphpを再構成し、フラグを追加します

--with-pdo-mysql

私の状況(ランプ)それは私のために働きます。

同じエラーが発生しましたが、xamppの代わりにApacheでFedora 25を使用しました。「dnf install -y php-mysqlnd」でこのエラーが修正されたため、おそらく拡張機能がありません。

0
Kevin Murda

私の場合:

追加 extension=php_pdo_mysql.dll php\php.ini

0
Lee