SQLSTATE[HY000] [1045] 用户 'username'@'localhost' 的访问被拒绝(使用密码:YES)
SQLSTATE[HY000] [1045] Access denied for user 'username'@'localhost' (using password: YES)
在我的 Ubuntu VM 中,我不断收到
SQLSTATE[HY000] [1045] Access denied for user 'username'@'localhost' (using password: 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)
解决方法:
有时,当您更改 .env 时,如果不清除缓存或重新启动服务器,配置不会刷新。
错误信息是:
SQLSTATE[HY000] [1045] Access denied for user 'forge'@'localhost' (using password: YES)
数据库正在尝试从 "cached" .env 配置中获取信息,您应该尝试:
php artisan config:clear
如果没有解决,重启你的服务器。
[编辑] 另一个不推荐选项:
- 转到您的
config\database.php
- 删除 .env 配置
并设置您自己的凭据
'mysql' => [
'host' => '45.55.88.77',
'database' => 'prod',
'username' => 'forge',
'password' => '*********',
],
此文件正在缓存一些数据,例如数据库配置 \bootstrap\cache\config.php
。要么删除它,要么用新数据更新它。
我认为你的问题出在你的数据库上,而不是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)
希望这对您有所帮助。
如果使用 wamp,请检查数据库端口,登录 phpmyadmin 并查看页面顶部的服务器:MySQL。
我遇到了同样的问题,试图在我的本地主机上安装 Matomo。我以为这是我的 MySQL 配置,但它似乎是我浏览器 (Opera) 中的广告拦截器和广告跟踪器插件。一旦停用,它工作正常。
我希望我能帮助...
祝你好运!
我也遇到了这个问题。当我们在 .env 文件中使用字符串的复杂字符时,ENV 变量应该用双引号引起来。例如密码、秘密、密钥等。
DB_PASSWORD="FDXSCHVBGFFUOVIDVKTFUVIF++++++****"
请先检查这个场景。
谢谢..
在我的 Ubuntu VM 中,我不断收到
SQLSTATE[HY000] [1045] Access denied for user 'username'@'localhost' (using password: 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)
解决方法:
有时,当您更改 .env 时,如果不清除缓存或重新启动服务器,配置不会刷新。
错误信息是:
SQLSTATE[HY000] [1045] Access denied for user 'forge'@'localhost' (using password: YES)
数据库正在尝试从 "cached" .env 配置中获取信息,您应该尝试:
php artisan config:clear
如果没有解决,重启你的服务器。
[编辑] 另一个不推荐选项:
- 转到您的
config\database.php
- 删除 .env 配置
并设置您自己的凭据
'mysql' => [
'host' => '45.55.88.77',
'database' => 'prod',
'username' => 'forge',
'password' => '*********',
],
此文件正在缓存一些数据,例如数据库配置 \bootstrap\cache\config.php
。要么删除它,要么用新数据更新它。
我认为你的问题出在你的数据库上,而不是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)
希望这对您有所帮助。
如果使用 wamp,请检查数据库端口,登录 phpmyadmin 并查看页面顶部的服务器:MySQL。
我遇到了同样的问题,试图在我的本地主机上安装 Matomo。我以为这是我的 MySQL 配置,但它似乎是我浏览器 (Opera) 中的广告拦截器和广告跟踪器插件。一旦停用,它工作正常。 我希望我能帮助... 祝你好运!
我也遇到了这个问题。当我们在 .env 文件中使用字符串的复杂字符时,ENV 变量应该用双引号引起来。例如密码、秘密、密钥等。
DB_PASSWORD="FDXSCHVBGFFUOVIDVKTFUVIF++++++****"
请先检查这个场景。
谢谢..