You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

执行php artisan migrate时遇MySQL 1045权限错误,求解决方案

解决Laravel php artisan migrate 1045权限错误

核心问题分析

错误SQLSTATE[HY000] [1045] Access denied for user 'root'@'localhost' (using password: NO)明确指向:使用空密码的root用户无法连接本地MySQL服务,要么你的MySQL root用户设置了密码,要么localhost的连接方式不符合MySQL的权限规则。

具体修复步骤

1. 确认MySQL root用户的密码

打开终端/命令行,直接尝试连接MySQL:

mysql -u root -p
  • 如果需要输入密码才能登录,说明root用户已设置密码,把该密码填入.env的DB_PASSWORD字段。
  • 如果无需密码直接登录成功,跳过此步骤,调整连接方式。

2. 修正.env配置

根据验证结果修改.env文件:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1  # 替换localhost,部分MySQL版本对localhost和127.0.0.1的权限规则不同
DB_PORT=3306
DB_DATABASE=e-commerce-web-proto
DB_USERNAME=root
DB_PASSWORD=你的MySQLroot密码  # 有密码则填,无密码留空

3. 重置配置缓存

修改.env后,必须先清除旧缓存再重新生成:

php artisan config:clear
php artisan config:cache

注意:config:cache会将配置生成静态文件,修改.env后不清除缓存的话,新配置不会生效。

4. 验证连接并执行迁移

用Laravel自带命令测试数据库连接:

php artisan db:connect

连接成功后,重新执行迁移:

php artisan migrate

5. 备选:给root用户授权数据库访问权限

如果上述步骤无效,可能是root用户没有e-commerce-web-proto数据库的访问权限。登录MySQL后执行:

-- 针对localhost连接的授权
GRANT ALL PRIVILEGES ON `e-commerce-web-proto`.* TO 'root'@'localhost';
FLUSH PRIVILEGES;

-- 或者针对127.0.0.1连接的授权
GRANT ALL PRIVILEGES ON `e-commerce-web-proto`.* TO 'root'@'127.0.0.1';
FLUSH PRIVILEGES;

内容的提问来源于stack exchange,提问作者Arya Aji

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.17 06:44:51