2013-10-02 159 views
2

这令人沮丧。我设立的工作我的dev的机器上很好,但给了我一个FOSUserBundle - SQLSTATE [28000] [1045]访问被拒绝用户'root'@'localhost'(使用密码:否)

SQLSTATE [28000] [1045]访问被拒绝的用户 '根' @ 'localhost' 的(使用密码:NO)

部署到共享主机时出错。我parameters.yml:

# This file is auto-generated during the composer install 
parameters: 
    database_driver: pdo_mysql 
    database_host: mysql.server322.com 
    database_port: 3306 
    database_name: adirule_db 
    database_user: adirule 
    database_password: Ref1ect0b0l1! 
    mailer_transport: smtp 
    mailer_host: localhost 
    mailer_user: null 
    mailer_password: null 
    locale: en 
    secret: ThisTokenIsNotSoSecretChangeIt 

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, add the path in parameters.yml 
     # e.g. database_path: %kernel.root_dir%/data/data.db3 
     # path:  %database_path% 

    orm: 
     auto_generate_proxy_classes: %kernel.debug% 
     auto_mapping: true 

fos_user: 
    db_driver: orm 

我不知道去哪里找/如何解决这个问题,因为我从来没有见过它。它看起来像绕过我的数据库用户/密码组合和默认为根/无密码。

有什么建议吗?

+0

这正是它在做什么。那么你确定一切都复制到服务器? – RiggsFolly

+0

是的,考虑到当我尝试像'doctrine:schema:create'和'fos:user:create'这样的命令时,它可以正常工作。 –

+0

因此,在localhost上工作,你是否在服务器上这样做? – RiggsFolly

回答

4

奇怪的是,通过$ app/console cache:clear --env=prod清除缓存修复了它。不知道为什么。希望它保持不变,并不是某种幸运的巧合。

+0

在你的开发箱上,你使用开发环境。如果在共享主机上有一个“app/cache/prod”文件夹(来自上传),那么你有一个编译过的旧缓存用于生产。所有配置(包括parameters.yml)被编译为纯php代码。 –

+0

这两个缓存都包含在我的.gitignore中,所以既没有通过 –

+0

传输,谢谢!它解决了这个问题。 – iarroyo

相关问题