簡體   English   中英

在 yii2 中遷移時出現異常“找不到驅動程序”

[英]Exception 'could not find driver' while 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}

我是 yii2 的新手。 我在advaced/common/config/main-local.php添加了數據庫名稱、用戶名。 使用 xampp 網絡服務器,php 版本為 5.6.8,並且還啟用了 PDO。

這是我的數據庫配置。

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

Yii2上找到這個

“很可能是您的系統配置。如果您使用 MAMP、XAMPP 或其他軟件包,您可能需要在 db.php 配置文件中將“localhost”更改為“127.0.0.1”。此外,如果您使用的是 Linux,可能需要安裝一些其他附加軟件包,例如 php5-mysql 之類的東西。”

我在 Yii2(高級)遷移(Ubuntu 14.04 和 PHP 中的 Xampp)期間遇到了類似的情況

這是我得到的消息:

帶有消息“找不到驅動程序”的異常“yii\\db\\Exception”

因此,在谷歌搜索並閱讀此線程和其他線程后,我發現這可能是可能的問題

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/

就我而言(在 Ubuntu 上):

sudo apt-get install php-mysql  
sudo service apache2 restart

我有完全相同的錯誤。 搜索,我發現了一個巴西人的評論,因為他在他的計算機上安裝了兩個不同的 php 版本而引起的類似問題。

我檢查了 /opt/lampp/bin 目錄,我發現了兩個不同的 php 版本,一個只是簡單的“php”,另一個是“php-5.6.8”,所以我決定運行第二個版本,它工作正常!

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

就我而言:

在 php\\php.ini 中添加extension=php_pdo_mysql.dll

我有同樣的錯誤,但我沒有使用 xampp,而是使用 Fedora 25 和 Apache,對我來說,'dnf install -y php-mysqlnd' 修復了這個錯誤,所以你可能缺少擴展。

我通過像這樣更改 PHP 路徑解決了這個問題

  1. 轉到“我的電腦”右鍵單擊並單擊“屬性”
  2. 點擊“高級系統設置”
  3. 點擊“環境變量”
  4. 在系統變量中找到“路徑”,雙擊它。
  5. 找到您的 PHP 路徑,如果您還沒有,請添加它,例如“D:\\xampp\\php”
  6. 單擊“確定”並重新啟動 Apache 服務器。
  7. 就是這樣,我可以遷移數據庫了。

我重新配置php,添加標志

--with-pdo-mysql

我的情況 (LAMP) 它對我有用。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM