Laravel 9登录时出现root@localhost数据库连接权限拒绝问题求助
解决Laravel 9本地XAMPP数据库连接权限问题
1. 核对.env文件配置
确保项目根目录下的.env文件数据库配置项完全匹配你的XAMPP设置(无密码场景):
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=你的目标数据库名 DB_USERNAME=root DB_PASSWORD=
注意:DB_PASSWORD需留空,不要添加任何引号、空格或占位符。
2. 彻底清除配置缓存
执行以下命令确保配置缓存完全刷新:
php artisan config:clear php artisan cache:clear php artisan route:clear
本地开发环境不建议使用config:cache,避免配置更新不生效。
3. 修正MySQL root用户权限
XAMPP的MySQL可能对root@localhost和root@127.0.0.1权限分离,即使密码为空也可能导致访问被拒:
- 打开XAMPP控制面板,启动MySQL后点击
Shell按钮 - 输入
mysql -u root回车进入MySQL命令行 - 执行以下SQL语句赋予全权限:
GRANT ALL PRIVILEGES ON *.* TO 'root'@'127.0.0.1' IDENTIFIED BY '' WITH GRANT OPTION; GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' IDENTIFIED BY '' WITH GRANT OPTION; FLUSH PRIVILEGES;
4. 强制TCP连接替代Socket
部分环境下localhost会触发Unix Socket连接,换成127.0.0.1可强制使用TCP连接,避免权限验证异常。
5. 验证连接有效性
在routes/web.php中添加测试路由快速验证:
Route::get('/test-db', function () { try { DB::connection()->getPdo(); return "数据库连接成功"; } catch (\Exception $e) { return "连接失败: " . $e->getMessage(); } });
访问http://localhost/你的项目路径/test-db查看结果。
内容的提问来源于stack exchange,提问作者Msu Rubel
相关产品推荐
相关产品推荐

