mysql 在yi2中迁移时出现异常“could not find driver”

c9qzyr3d  于 2023-11-16  发布在  Mysql
关注(0)|答案(8)|浏览(167)

这是我的堆栈跟踪:

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',
    ],

h9vpoimq

h9vpoimq1#

Yii2上找到的
“很可能是系统配置。如果您使用的是MAMP、XAMPP或其他软件包,则可能需要在db.php配置文件中将“localhost”更改为“127.0.0.1“。此外,如果您使用的是Linux,则可能需要安装一些其他附加软件包,如php5-mysql等。”

sxissh06

sxissh062#

我在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


.finally(重试迁移)

php yii migrate


已成功向上迁移。
希望你觉得它有用,并为他人工作。
我在ask ubuntu上找到了它,但我无法添加链接或代码,因为这是我的第一篇文章。
友情链接:http://www.yiiframework.com/forum/index.php/topic/49450-error-on-migrate-command-advanced-yii2-app/

jdzmm42g

jdzmm42g3#

在我的情况下(在Ubuntu上):

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

字符串

daupos2t

daupos2t4#

我有完全相同的错误.搜索,我发现了一个巴西的评论关于一个类似的问题,因为他有两个不同的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

hsvhsicv

hsvhsicv5#

在我的例子中:
在php\php.ini中添加extension=php_pdo_mysql.dll

y0u0uwnf

y0u0uwnf6#

我有同样的错误,但不是xampp我使用Fedora 25与Apache,对我来说'dnf install -y php-mysqlnd'修复了这个错误,所以你可能是失踪的扩展.

dpiehjr4

dpiehjr47#

我通过像这样更改PHP路径解决了这个问题
1.进入“我的电脑”右键点击“属性”
1.点击“高级系统设置”
1.点击“环境变量”
1.在系统变量中找到“路径”,双击它。
1.找到你的PHP路径,如果你还没有它,就添加它,比如“D:\xampp\php”
1.单击“确定”并重新启动Apache服务器。
1.就这样,我就可以迁移db了。

piztneat

piztneat8#

我重新配置了php,添加了这个标志:

--with-pdo-mysql

字符串
我用的是LAMP,这对我很有效。

相关问题