Symfony 3 MySQL驱动程序';找不到驱动程序';


Symfony 3 MySQL driver 'could not find driver'

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

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

找不到驱动程序

500内部服务器错误-PDOException

我检查了一下哪里出了问题,发现这是一个错误:/项目/供应商/条令/dbal/lib/条令/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执行(根据原则,在一个简单的控制器中测试)。


以下是我的参数:

# 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
        #     e.g. 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日

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

我会回答我自己的问题。出现这个问题是因为我试图在容器上使用symfony和mysql-pdo驱动程序(形成虚拟化)。当我在真实虚拟机(=完全虚拟化虚拟机)上使用相同的设置时,它可以正常工作。找到了驱动程序,我们可以在Symfony 3项目中创建pdo。

测试了2016年4月10日

谢谢Ty malcolm的帮助,多亏了你,我学到了一些东西:)

问候,Dykoine