symfony 2.4.4试图强制pdo_mysql连接而不是mongodb

时间:2014-05-15 06:59:54

标签: mongodb fosuserbundle symfony-2.4

我是一个非常新的Symfony2。我安装了FOSUserBundle和DoctrineMongoDBBundle,我试图让这些工作正确。 在我以前的项目中,我设法从我的mongoDB数据库创建一个新用户和导入用户列表。根据我的composer.json,这个以前的项目是symfony版本2.1.x-dev。 在我的新项目中,我使用的是symfony~2.4。而且我无法在FOSUserBundle上加载/注册页面。 symfony没有加载注册表单,而是抛出了这个错误:

An exception occured in driver: SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO) 

所以Symfony正在尝试使用pdo_mysql驱动程序而不是连接到mongoDB,因为它在我以前的项目中做得很好。我按照相同的步骤,根据FOSUserBundle文档:在app / config / config.yml中,我设置了doctrine_mongodb和fos_user信息,如下所示:

#doctrine_mongodb
doctrine_mongodb:
    connections:
        default:
            server: mongodb://localhost:27017
            options: {}
    default_database: agitw
    document_managers:
        default:
            auto_mapping: true

#fos user
fos_user:
    db_driver:     mongodb
    firewall_name: main
    user_class:    Van\UserBundle\Document\User

我很确定这种行为是由symfony 2.4引起的,因为我无法使用我的symfony 2.1项目重现它。 有没有人知道为什么symfony试图强制pdo_mysql连接,尽管我填写了正确的配置文件?

1 个答案:

答案 0 :(得分:1)

经过大量挖掘后找到了解决方案。 如果你正在使用Symfony和MongoDB,你需要评论所有" doctrine:"部分在app / config / config.yml文件中。我的文件充满了" doctrine:"部分和" doctrine_mongodb:"部分。似乎" doctrine:"配置已设置,symfony将在任何其他数据库之前使用它。