Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/fsharp/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Symfony 拒绝用户“root”@“localhost”的SQLSTATE[28000][1045]访问(使用密码:否)_Symfony_Symfony 2.1 - Fatal编程技术网

Symfony 拒绝用户“root”@“localhost”的SQLSTATE[28000][1045]访问(使用密码:否)

Symfony 拒绝用户“root”@“localhost”的SQLSTATE[28000][1045]访问(使用密码:否),symfony,symfony-2.1,Symfony,Symfony 2.1,我正在使用symfony 2.1.2、FOSuserBundle、SonataAdminBundle、SonataUserBundle和SonataMediaBundle。问题是我无法访问我的数据库并获得此错误 这是我的参数 parameters: database_driver: pdo_mysql database_host: localhost database_port: null database_name: superlinea databas

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

这是我的参数

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:
    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,它连接正确。 我清除了缓存,但仍然没有使用指定的密码


有什么帮助吗?

问题出在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

希望对您有所帮助

问题出在您的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

希望它对你的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
数据库密码应在双引号或单引号内

我见过大多数用户出现这种情况,因为在我的情况下,他们使用带前导零或数字的密码

我也试过使用localhost和双引号密码,但它不起作用

所以在这种情况下,使用

database_host: 127.0.0.1
而不是

database_host: localhost

在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
数据库密码应在双引号或单引号内

我见过大多数用户出现这种情况,因为在我的情况下,他们使用带前导零或数字的密码

我也试过使用localhost和双引号密码,但它不起作用

所以在这种情况下,使用

database_host: 127.0.0.1
而不是

database_host: localhost

对于所有遇到此问题的用户,请尝试清除缓存:

php bin/console cache:clear

对于所有遇到此问题的用户,请尝试清除缓存:

php bin/console cache:clear

请尝试在参数中引用您的密码。yml:database_password:!Admin1234Thx,我尝试了,但仍然是相同的错误。它似乎没有读取config.yml或其他东西,它似乎识别出您的数据库用户根,因此我猜它读取配置,只是误解了其中一个值。您是否尝试过通过DI容器获取doctor.dbal,然后读取配置并查看它是否与parameters.yml中的设置匹配?错误消息表明缺少密码,但可能是其他原因?我将结帐到另一个分支机构,在那里它可以工作。当我更改config.yml并添加默认连接:默认和默认设置时,问题就开始了,正如您在parameters.ymlTry中看到的那样,在parameters.yml:database_password:中引用您的密码!Admin1234Thx,我尝试了,但仍然是相同的错误。它似乎没有读取config.yml或其他东西,它似乎识别出您的数据库用户根,因此我猜它读取配置,只是误解了其中一个值。您是否尝试过通过DI容器获取doctor.dbal,然后读取配置并查看它是否与parameters.yml中的设置匹配?错误消息表明缺少密码,但可能是其他原因?我将结帐到另一个分支机构,在那里它可以工作。当我更改config.yml并添加default_connection:default和default设置时,问题就开始了,您可以在parameters.yml中看到,对于任何有问题的人:使用symfony2.8.9,我都会得到相同的错误页面。出于某种原因,在config.yml文件中,组件原则>dbal>连接>默认>驱动程序被设置为pdo_mysql作为默认值。将其切换回%database\u driver%解决了此问题。对于任何有问题的人:使用symfony2.8.9时,我都会得到相同的错误页面。出于某种原因,在config.yml文件中,组件原则>dbal>连接>默认>驱动程序被设置为pdo_mysql作为默认值。将其切换回%database\u driver%解决了此问题。