运行php artisan migrate时出现用户权限拒绝问题求助
解决Laravel 8 API连接XAMPP phpMyAdmin数据库的权限问题
问题核心
报错SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO),本质是Laravel使用的数据库连接方式与phpMyAdmin中配置的root用户权限不匹配——Mac系统下XAMPP的MySQL对localhost和127.0.0.1的权限规则有严格区分。
分步解决方案
1. 调整.env数据库配置
将DB_HOST从127.0.0.1改为localhost,因为你在phpMyAdmin中创建的是root@localhost用户,Laravel默认用TCP连接127.0.0.1会触发不同的权限校验。修改后的配置如下:
DB_CONNECTION=mysql DB_HOST=localhost DB_PORT=3306 DB_DATABASE=draw_db DB_USERNAME=root DB_PASSWORD=
2. 清除Laravel配置缓存
修改.env后必须清除缓存,确保新配置生效:
php artisan config:clear php artisan cache:clear
3. 确认MySQL用户权限
登录phpMyAdmin,进入用户账户页面:
- 检查
root用户的主机是否为localhost - 确保该用户拥有
draw_db数据库的全部权限(包含迁移所需的CREATE、ALTER等权限) - 若未找到
root@localhost用户,直接创建:用户名填root,主机选localhost,密码留空,勾选所有权限后保存。
4. 重新执行迁移
完成上述操作后,运行迁移命令:
php artisan migrate
内容的提问来源于stack exchange,提问作者zygisk
相关产品推荐
相关产品推荐

