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

时间:2012-10-03 07:41:43

标签: symfony symfony-2.1

我正在使用symfony 2.1.2,FOSuserBundle,SonataAdminBundle,SonataUserBundle和SonataMediaBundle。问题是我无法访问我的数据库并收到此错误。

这是我的parameters.yml

parameters:
    database_driver: pdo_mysql
    database_host: localhost
    database_port: null
    database_name: superlinea
    database_user: root
    database_password: !Admin1234
    mailer_transport: smtp
    mailer_host: localhost
    mailer_user: null
    mailer_password: null
    locale: en
    secret: f4c89326a7c2d2fb848e84dc8b39ea92
    database_path: null

这是我的config.yml [doctrine section:]

doctrine:
    dbal:
        default_connection:   default
        connections:
            default:
                driver:   %database_driver%
                host:     %database_host%
                port:     %database_port%
                dbname:   %database_name%
                user:     %database_user%
                password: %database_password%
                charset:  UTF8
    orm:
        auto_generate_proxy_classes: %kernel.debug%
        # auto_mapping: true
        # entity_managers:
        #     default:
        #         mappings:
        #             ApplicationSonataMediaBundle: ~
        entity_managers:
            default:
                mappings:
                    ApplicationSonataMediaBundle: ~
                    ApplicationSonataUserBundle: ~
                    SonataUserBundle: ~
                    FOSUserBundle: ~
    dbal:
        types:
            json: Sonata\Doctrine\Types\JsonType

我检查了使用parameters.yml上的凭据从我的终端连接到mysql并且它正确连接。 我清除了缓存,但仍未使用指定的密码。

任何帮助?

4 个答案:

答案 0 :(得分:10)

问题出在你的config.yml中,

dbal:
  types:
    json: Sonata\Doctrine\Types\JsonType

应该进入学说dbal。像这样:

doctrine:
    dbal:
        default_connection:   default
        connections:
            default:
                driver:   %database_driver%
                host:     %database_host%
                port:     %database_port%
                dbname:   %database_name%
                user:     %database_user%
                password: %database_password%
                charset:  UTF8
        types:
            json: Sonata\Doctrine\Types\JsonType

希望有所帮助

答案 1 :(得分:2)

在你的app / config / parameters.yml

# This file is auto-generated during the composer install
parameters:
    database_driver: pdo_mysql
    database_host: 127.0.0.1
    database_port: 3306
    database_name: symfony
    database_user: root
    database_password: "your_password"
    mailer_transport: smtp
    mailer_host: 127.0.0.1
    mailer_user: null
    mailer_password: null
    locale: en
    secret: ThisTokenIsNotSoSecretChangeIt

database_password应该在双引号(“)或单引号(')内。

我见过大多数用户发生这种情况是因为他们使用的密码是前导零或数字(在我的情况下就是这样)


我也试过使用localhost和双引号密码,但它无效。

所以在那种情况下使用

database_host: 127.0.0.1

而不是

database_host: localhost

答案 2 :(得分:0)

你能把所有参数都放在引号中并设置database_port =“3306”吗?

问题:您是否可以使用SqlYog等程序使用这些参数连接到DB?

答案 3 :(得分:0)

对于所有有此问题的人,只需尝试清除缓存:

php bin/console cache:clear
相关问题