php - SQLSTATE[HY000] [1045] 用户 'root'@'localhost' 的访问被拒绝(使用密码:否)。DB_HOST 设置为 localhost
问题描述
我将 Laravel 项目从 localhost 移动到服务器。我在服务器上完成了每一步。
我可以在我的服务器上查看登录页面。问题是我无法连接到我的 MySQL 服务器。
我的.env
文件:
APP_NAME=Transport
APP_ENV=local
APP_KEY=base64:mrakeyidharhaikonsdf
APP_DEBUG=true
APP_URL=http://localhost
LOG_CHANNEL=stack
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=transport_db
DB_USERNAME=root
DB_PASSWORD=mypass
我尝试将主机更改为127.0.0.1
并尝试输入服务器的 IP 地址。它没有帮助我。我错过了什么吗?
我的错误:
SQLSTATE[HY000] [1045] 用户'root'@'localhost'的访问被拒绝(使用密码:否)(SQL:选择计数(*)作为聚合 from
users
where
我知道这个问题在 Stack Overflow 上可能已经有了答案。但我在这里有不同的问题。
解决方案
老实说,在开发 Laravel 6 时,我也多次遇到这个问题,可能无法找出解决方案。我尝试了 and 之类的命令
php artisan config:cache
,php artisan config:clear
但这两个命令没有帮助。
要解决此问题,您必须执行以下所有命令:
php artisan route:cache
php artisan route:clear
php artisan config:cache
php artisan config:clear
php artisan optimize
注意:确保.env
你有 adddb_password
并且它不为空,并检查你是否db_password
使用了任何特殊字符。始终将它们包含在""
.
例子:
DB_PASSWORD="%123456%"
要调试此问题,您还可以创建一个测试路由,然后将.env
变量转储到那里以检查它们是否具有正确的值。
Route::get('/test/env', function () {
dd(env('DB_DATABASE')); // Dump 'db' variable value one by one
});
注意:请确保重新启动您的服务器。
推荐阅读
- terraform - 你如何为 IAC 设置你的仓库?
- node.js - 我必须为迁移回滚编写反向操作吗?
- php - 如何通过 php 使用 sendgrid 正确发送电子邮件
- c# - C# Windows 窗体应用程序 ListView:如何强制 ListView 不更新?
- php - 无法将值添加到关联数组 php
- azure-devops - 当我包含代码覆盖率时,无法获得 Azure DevOps Release Pipelines
- c - 在 gcc 中编译 c 时收到有关强制转换“从指针到不同大小的整数”的警告
- java - 无效标志:将 java 包升级到 1.8.0_211 后的 -jar
- python - 如何在 Subprocess.run 命令中使用 for 循环
- python-3.x - 如何让我的计算机识别用 python3 编写的代码?