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

时间:2017-02-27 22:26:26

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

在我的Ubuntu VM中,我一直在

  

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

更新

我已在我的.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)

5 个答案:

答案 0 :(得分:6)

解决方案:

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

错误消息是:

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

数据库正试图从&#34;缓存&#34;获取信息。 .env配置,你应该尝试:

php artisan config:clear

如果不解决,请重新启动服务器。

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

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

并设置自己的凭据

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

答案 3 :(得分:0)

我认为您的问题出在数据库而不是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)

希望这会有所帮助。

答案 4 :(得分:0)

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