SQLSTATE[HY000] [1045]表示用户'root'@'localhost'被拒绝访问(使用密码:YES),symfony2。

5

当我尝试登录时,出现错误:

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

parameters.yml:

此文件在composer安装期间自动生成。

parameters:
    database_driver: pdo_mysql
    database_host: localhost
    database_port: null
    database_name: sgce
    database_user: root
    database_password: mikem
    mailer_transport: smtp
    mailer_host: 127.0.0.1
    mailer_user: null
    mailer_password: null
    locale: en
    secret: ThisTokenIsNotSoSecretChangeIt

我使用的操作系统是Debian。

感谢你的帮助。

[mysqld_safe]
socket      = /var/run/mysqld/mysqld.sock
nice        = 0

[mysqld]
#
# * Basic Settings
#
#skip-grant-tables
user        = mysql
pid-file    = /var/run/mysqld/mysqld.pid
socket      = /var/run/mysqld/mysqld.sock
port        = 3306
basedir     = /usr
datadir     = /var/lib/mysql
tmpdir      = /tmp
lc-messages-dir = /usr/share/mysql
skip-external-locking
#
# Instead of skip-networking the default is now to listen only on
# localhost which is more compatible and is not less secure.
#bind-address       = 127.0.0.1
bind-address        = 10.1.4.3
6个回答

8
这是由于您的mysql配置问题导致的。根据这个错误,您正在尝试使用用户“root”连接到主机名为“localhost”的数据库“sgce”,但没有被授予访问权限。
假设您没有配置您的mysql实例,请以root用户身份登录并执行以下操作:
CREATE DATABASE sgce;

CREATE USER 'root'@'localhost' IDENTIFIED BY 'mikem';
GRANT ALL PRIVILEGES ON sgce. * TO 'root'@'localhost';
FLUSH PRIVILEGES;

还需要在parameters.yml文件中添加你的数据库端口号。默认情况下,mysql监听3306端口:

database_port: 3306

你尝试过在终端直接输入吗? mysql -u roo -p ? - DerStoffel
你加了端口吗?你的数据库运行在哪里? - DerStoffel
是的,我写了端口3306,你有什么建议吗?但我仍然无法登录。 - Denis Rd
你的数据库是否与Symfony应用程序在同一台服务器上? - DerStoffel
我把我的 my.conf 发布在上面。 - Denis Rd
显示剩余2条评论

5

database_password: password应该用引号 " 或 ' 括起来。

像这样:

database_password: "password"


3
这基本上意味着你的用户名不正确或者你的密码不正确。请重新检查并确保你正在使用正确的密码。

这个答案是否应该附加在这个问题上?我在问题中没有看到关于Bootstrap的提及,也没有在答案中解释为什么清除缓存可能有助于解决SQL错误。 - Jason Aller

1
我正在Windows 10上使用Xampp和Laravel 5.8,之前也遇到过这样的情况。当出现问题时,我的XAMPP没有密码。于是我尝试删除config>database.php中的一些代码。
'password' => env('DB_PASSWORD', ''),

.env 中:

DB_PASSWORD=SECRET

问题已解决


1
'default' => env('DB_CONNECTION', 'mysql'),

将此代码添加到您的代码中。

0

将密码直接写入config>database.php文件中

'password' => env('DB_PASSWORD', '')

更改为

'password' => '您的密码',


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接