我确实遇到了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执行(By 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
# 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
编辑 29/03/2016
操作系统配置:虚拟机上的Ubuntu 14-04
答案 0 :(得分:0)
我会回答我自己的问题。出现此问题是因为我尝试在容器(形成虚拟化)上使用symfony和mysql pdo驱动程序。当我在真实虚拟机(=完全虚拟化虚拟机)上使用相同的设置时,它可以正常工作。找到驱动程序,我们可以在Symfony 3项目中创建pdo。
测试了2016年10月1日
Ty malcolm的帮助,感谢你学习一些事情:)
此致,Dykoine