【问题标题】:Symfony - doctrine: SQLSTATE[HY000] [1045] access denied for user 'root'@'localhost' (using password: YES)Symfony - 学说:SQLSTATE[HY000] [1045] 用户'root'@'localhost'的访问被拒绝(使用密码:YES)
【发布时间】:2017-06-16 09:19:24
【问题描述】:

我是 symfony 的新手,我正在尝试通过学说创建一个实体,我正在使用 Windows 和 xampp。

在一个 cmd 中,我让服务器运行 (php bin/console server:run) 在另一个 cmd 中,我尝试使用php bin/console doctrine:generate:entity创建实体@

它要求我提供实体快捷方式名称 (BlogBundle:Post),之后我收到三个相同类型的错误;

SQLSTATE[HY000] [1045] access denied for user 'root'@'localhost' (using password: NO)

我用谷歌搜索发现,因为我已经在 xampp 中有数据库,并更改了密码。因此我应该在parameters.yml中更改我的密码,我这样做了(我还在phpMyAdmin中创建了一个空的symfony数据库);

# This file is auto-generated during the composer install
parameters:
    database_host: 127.0.0.1
    database_port: null
    database_name: symfony
    database_user: root
    database_password: mypassword
    mailer_transport: smtp
    mailer_host: 127.0.0.1
    mailer_user: null
    mailer_password: null
    secret: ac8be0befa84f2aeda5d2e9068a7ae2e948376fb

我的 config.yml 文件的教义部分如下所示;

# Doctrine Configuration
doctrine:
    dbal:
        driver: pdo_mysql
        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.project_dir%/var/data/data.sqlite"
        #   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

在这之后我仍然得到三个错误,只有“密码:否”更改为“密码:是”;

SQLSTATE[HY000] [1045] access denied for user 'root'@'localhost' (using password: YES)

谁能告诉我出了什么问题以及我应该改变什么?

我已经尝试了 SQLSTATE[28000] [1045] Access denied for user 'root'@'localhost' (using password: NO) 中的所有内容。将主机从 127.0.0.1 更改为 localhost,将端口更改为 3306,将密码放在引号中,并且 SonataUserBundle 部分不适用于此处。

【问题讨论】:

  • 请在该骗局中专门检查此答案:stackoverflow.com/a/27551131/367456 - 错误消息中是否有任何您不清楚的具体内容?您是否检查过数据库服务器的文档以了解该错误消息的含义(Mysql 和/或 Mariadb 都记录了所有错误消息以及附加信息)。
  • 这里有很多类似的问题,关于该错误消息与 Symfony 和 Doctrine 的结合。在配置文件中正确配置密码似乎很困难。无论如何,我建议您仔细检查您使用的凭据是否正确,如果是,请仔细检查这些值在编码到配置文件时是否被更改。
  • 我已经尝试了该问题中的所有内容。将主机从 127.0.0.1 更改为 localhost,将端口更改为 3306,将密码放在引号中,并且 SonataUserBundle 部分不适用于此处。
  • 凭据正确,我可以使用这些凭据登录到 myphpadmin。如何检查密码是否未更改?
  • 好问题。也许这与字符编码有关? Phpmyadmin 是否接受 UTF-8 输入? symfony 中的 yaml 文件是 UTF-8,对于属性文件我不完全确定。另一件事可能与 YAML 编码本身有关,例如sindlge / 双引号。我怀疑在找到罪魁祸首之前,调试起来并不容易。到目前为止,错误消息很清楚。

标签: php sql database symfony doctrine


【解决方案1】:

我也有同样的错误抛出mysql,解决方法是用单引号包裹密码

    database_password: 'mypassword' 

【讨论】:

    猜你喜欢
    • 2020-08-20
    • 2015-08-16
    • 2017-11-23
    • 2020-12-05
    • 1970-01-01
    • 1970-01-01
    • 2017-07-18
    • 2017-08-10
    • 2019-07-23
    相关资源
    最近更新 更多