繁体   English   中英

Symfony 3 MySQL驱动程序“找不到驱动程序”

[英]Symfony 3 MySQL driver 'could not find driver'

实际上,我在使用Symfony 3和PDO驱动程序时遇到了一些困难。

这是我的第一个使用Symfony 3的项目(在此之前我使用过Symfony 2),当我想使用Doctrine或FOSUserBundle时出现此错误:

找不到驱动程序

500内部服务器错误-PDOException

我检查出什么问题了,我发现这是由/ path-to-project / vendor / doctrine / dbal / lib / Doctrine / DBAL / Driver / PDOMySql引发的错误

当PDO类无法访问数据库服务器时,这是一个简单的PDOException抛出。 但是我可以使用“ $> php test.php”执行此代码而不会出现问题

$pdo = new PDO("mysql:dbname=Accounting;host=127.0.0.1","<user>", "<secret>");
$sql = 'SELECT * FROM Accounting.fos_user;';
echo count($pdo->query($sql));

并且此错误由相同的代码引发,由Symfony 3执行(由Doctrine进行并在简单的Controller中进行了测试)。


这是我的参数:

 # app/config/parameters.yml parameters: database_driver: pdo_mysql database_host: 127.0.0.1 database_port: 3306 database_name: Accounting database_user: <user> database_password: <secret> # app/config/config.yml # Doctrine Configuration doctrine: dbal: driver: "%database_driver%" host: "%database_host%" port: "%database_port%" dbname: "%database_name%" user: "%database_user%" password: "%database_password%" charset: UTF8 # if using pdo_sqlite as your database driver: # 1. add the path in parameters.yml # eg database_path: "%kernel.root_dir%/data/data.db3" # 2. Uncomment database_path in parameters.yml.dist # 3. Uncomment next line: # path: "%database_path%" orm: auto_generate_proxy_classes: "%kernel.debug%" naming_strategy: doctrine.orm.naming_strategy.underscore auto_mapping: true fos_user: db_driver: orm # other valid values are 'mongodb', 'couchdb' and 'propel' firewall_name: main user_class: UserBundle\\Entity\\User 

编辑 2016年3月29日

操作系统配置:VM上的Ubuntu 14-04

我将回答我自己的问题。 发生此问题的原因是,我尝试在容器上使用mysql pdo驱动程序使用symfony(形成虚拟化)。 当我在真实的VM (=完全虚拟化虚拟机)上使用相同的设置时,它可以正常工作。 找到了驱动程序,我们可以在Symfony 3项目中创建pdo。

测试了10/04/2016

泰·马尔科姆(Ty malcolm)的帮助,我对您的学习有所帮助

问候,Dykoine

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM