【问题标题】:SQLSTATE[HY000] [1045] Access denied for user 'username'@'localhost' (using password: YES)SQLSTATE[HY000] [1045] 用户'username'@'localhost'的访问被拒绝(使用密码:YES)
【发布时间】:2017-07-18 17:24:45
【问题描述】:

在我的 Ubuntu 虚拟机中,我不断得到

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


更新

我已经在我的 .env 文件中这样配置了我的数据库

DB_HOST=45.55.88.57
DB_DATABASE=b-prod
DB_USERNAME=root
DB_PASSWORD=*********
UNIX_SOCKET=/var/run/mysqld/mysqld.sock

效果很好。


但是当我使用时

DB_HOST=45.55.88.57
DB_DATABASE=b-prod
DB_USERNAME=b <----------------------------------------------
DB_PASSWORD=*********
UNIX_SOCKET=/var/run/mysqld/mysqld.sock

我没有工作。

我还应该研究什么来防止这种情况发生?


我感觉密码错误。

如何测试我的数据库密码? DB_PASSWORD=********* ?


这是我所有的用户

mysql> SELECT User,Host FROM mysql.user;
+------------------+-------------+
| User             | Host        |
+------------------+-------------+
| root             | %           |
| root             | 127.0.0.1   |
| root             | 45.55.88.57 |
| root             | ::1         |
| root             | b       |
| b            | localhost   |
| debian-sys-maint | localhost   |
| root             | localhost   |
+------------------+-------------+
8 rows in set (0.00 sec)

【问题讨论】:

  • 您授予权限了吗?授予后,您是否有 FLUSH 权限?
  • 尝试直接使用您的凭据直接登录说phpmyadmin。此外,您的主机不在错误中。您的主机是45.55.88.57,但您的错误显示为@localhost。如果您刚刚更改了配置,请执行php artisan config:clear
  • @JayBlanchard:如何以 root 身份登录 mysql?我试过mysql -u root -p 我不断收到ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
  • 我怎么知道我的root mysql密码?
  • 通常你在安装 mysql / 你的服务器时设置你的 root 密码。默认可能只是 root 作为用户名和空密码。你是如何设置这个虚拟机的?

标签: php laravel ubuntu laravel-5 database-connection


【解决方案1】:

解决办法:

有时当您更改 .env 时,如果没有清除缓存或重新启动服务器,配置不会刷新。

错误信息是:

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

数据库正在尝试从“缓存”的 .env 配置中获取信息,您应该尝试:

php artisan config:clear

如果不能解决,重启你的服务器。

[编辑]另一个不推荐选项:

  • 转到您的config\database.php
  • 删除 .env 配置

并设置您自己的凭据

'mysql' => [
            'host' => '45.55.88.77',
            'database' => 'prod',
            'username' => 'forge',
            'password' => '*********',
        ],

【讨论】:

  • 我尝试了 php artisan config:clearservice nginx restart ,刷新我的网站,还是一样 = bunlongheng.com
  • 试试我答案的编辑部分,不推荐,但我们可以用它来测试 .env
  • 我尝试过使用 root 用户工作,但使用我的其他用户 bheng 不起作用。我删除了我的伪造用户。
  • 我用更多信息更新我的帖子。我是否需要授予我的 bheng 用户以获得更多权限,例如我的 root 才能获得 int ?
  • 您没有收到更多 forge@localhost 错误,现在您在错误中收到 bheng@locahost,您的 .env 已刷新并且正在获取用户名而不是主机,请尝试检查您的在您的 .env 中托管或在 config/database.php 上手动更改它
【解决方案2】:

我遇到了同样的问题,试图在我的本地主机上安装 Matomo。我以为这是我的 MySQL 配置,但似乎是我的浏览器 (Opera) 中的 adblockers 和 adtrackers 插件。停用后,它工作正常。 我希望我能帮助... 祝你好运!

【讨论】:

    【解决方案3】:

    此文件正在缓存一些数据,例如数据库配置\bootstrap\cache\config.php。要么删除它,要么用新数据更新它。

    【讨论】:

      【解决方案4】:

      我认为您的问题在于您的数据库而不是 laravel。

      mysql> SELECT User,Host FROM mysql.user;
      +------------------+-------------+
      | User             | Host        |
      +------------------+-------------+
      | root             | %           |
      | root             | 127.0.0.1   |
      | root             | 45.55.88.57 |
      | root             | ::1         |
      | root             | b           |
      | b                | localhost   | <-- must be % not localhost coz you want to access it remotely not locally
      | debian-sys-maint | localhost   |
      | root             | localhost   |
      +------------------+-------------+
      8 rows in set (0.00 sec)
      

      希望这能有所帮助。

      【讨论】:

        【解决方案5】:

        如果您使用 wamp,请检查数据库端口,登录 phpadmin 并在页面顶部查看 Server: MySQL

        【讨论】:

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