【问题标题】:SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: YES) symfony2SQLSTATE [HY000] [1045] 用户'root'@'localhost'的访问被拒绝(使用密码:YES)symfony2
【发布时间】:2015-08-16 04:18:34
【问题描述】:

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

SQLSTATE[HY000] [1045] 用户 'root'@'localhost' 的访问被拒绝(使用密码:YES)

parametrs.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

【问题讨论】:

    标签: php mysql symfony


    【解决方案1】:

    这是由于您的 mysql 配置造成的。 根据此错误,您正在尝试使用用户“root”连接到数据库名称“sgce”上的数据库主机“localhost”,而没有被授予访问权限。

    假设你没有配置你的 mysql 实例。以 root 用户身份登录并访问以下内容:

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

    还要在 parameters.yml 中添加您的 database_port。 默认mysql监听3306:

    database_port: 3306
    

    【讨论】:

    • 您是否直接在终端上尝试过? mysql -u roo -p ?
    • 你添加端口了吗?你的数据库在哪里运行?
    • 是的,我写了 3306 端口,你有什么建议,但我仍然无法登录
    • 你的数据库和你的 symfony 应用在同一个服务器上吗?
    • 也可以是 bind-address 的 my.cnf 设置。默认情况下它指向 127.0.0.1,所以不妨试试database_host: 127.0.0.1。
    【解决方案2】:

    database_password: password 会在引号之间:" 或 '。

    像这样:

    database_password: "password"

    【讨论】:

      【解决方案3】:

      检查boostrap/cache/config.php 数据库详细信息是否正确。如果是的话,那应该会给你一个提示。

      如果不是,则需要使用以下步骤清除缓存:

      1. rm -fr bootstrap/cache/*
      2. php artisan optimize

      【讨论】:

      • 这个答案应该附在这个问题上吗?我在问题中没有看到引导程序,也没有在答案中解释为什么清除缓存可能有助于解决 SQL 错误。
      【解决方案4】:
      'default' => env('DB_CONNECTION', 'mysql'),
      

      将此添加到您的代码中

      【讨论】:

        【解决方案5】:

        我在 Windows 10 中使用 Xampp 和 Laravel 5.8,我以前也是这样。当我遇到这个问题时,我的 XAMPP 没有密码 然后我试图删除一些代码 config>database.php

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

        在.env

        DB_PASSWORD=SECRET
        

        问题解决了

        【讨论】:

          【解决方案6】:

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

          '密码' => env('DB_PASSWORD', '')

          改成

          '密码' => '你的密码',

          【讨论】:

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