错误:(发生在产品环境中)
request.CRITICAL: PDOException: SQLSTATE[28000] [1045] 在 /srv/inta/current/vendor/doctrine-dbal/lib/ 处拒绝用户 'root'@'localhost' 的访问(使用密码:YES)(未捕获的异常) Doctrine/DBAL/Driver/PDOConnection.php 第 36 行 [] []
到目前为止我尝试过的
奇怪的是,我实际上可以使用 root 用户和提供的密码进行访问。通过控制台以 root 身份登录效果很好。
我正在使用位于app/config/中的以下parameters.yml文件
parameters:
database_driver: pdo_mysql
database_host: localhost
database_port: ~
database_name: int_apartments
database_user: root
database_password: pw goes here
mailer_transport: smtp
mailer_host: localhost
mailer_user: ~
mailer_password: ~
locale: en
secret: ThisTokenIsNotSoSecretChangeIt
如您所见,它非常标准,仅更改了数据库的名称、用户和密码。
在我位于app/config的config.yml中(相关部分)
imports:
- { resource: security.yml }
- { resource: parameters.yml }
...
doctrine:
dbal:
driver: %database_driver%
host: %database_host%
port: %database_port%
dbname: %database_name%
user: %database_user%
password: %database_password%
charset: UTF8
dbname: int_apartments
orm:
auto_generate_proxy_classes: %kernel.debug%
auto_mapping: true
mappings:
StofDoctrineExtensionsBundle: false
现在,我想从“第 1 步”开始并验证 parameters.yml 文件是否实际被导入,所以我将主机更改为“localhos”或将用户更改为“tom”或其他任何内容,并且错误消息位于app/ logs/prod.log保持原样 - 位置不变,用户不变。
所以我检查了位于app/config中的config_prod.yml
imports:
- { resource: config.yml }
#doctrine:
# metadata_cache_driver: apc
# result_cache_driver: apc
# query_cache_driver: apc
monolog:
handlers:
main:
type: fingers_crossed
action_level: error
handler: nested
nested:
type: stream
path: %kernel.logs_dir%/%kernel.environment%.log
level: debug
...一切看起来都很标准!
正在发生的事情的摘要
所以这里是快速版本。
- root@localhost 存在身份验证错误
- 通过控制台以该用户身份登录来验证我的身份验证信用
- 想检查parameters.yml文件是否正在加载
- 更改了一些值 - 没有影响错误消息
(小)编辑: 我真正想做的是以完全不同的用户身份使用不同的密码连接到数据库。即使我在parameters.yml 文件中输入不同的凭据,学说仍然会吐出“root@localhost”错误。
想法?