使用MAMP服务器运行Laravel时执行php artisan migrate报错如何解决?
问题原因及解决步骤
你遇到的1045鉴权失败报错是MAMP环境部署Laravel的常见问题,按以下步骤排查即可解决:
- 修正.env文件配置错误
- MAMP默认MySQL端口为
8889,你当前配置的3306是系统默认MySQL端口,不属于MAMP的MySQL服务,将DB_PORT值改为8889(可打开MAMP偏好设置-端口页确认实际MySQL端口) - 删除
DB_USERNAME和DB_PASSWORD值两侧的双引号,Laravel读取.env文件时会将引号识别为值的一部分,导致鉴权时用户名密码不匹配,修改后配置如下:DB_USERNAME=root DB_PASSWORD=temp - 多余的
UNIX_SOCKET配置项可以删除,database.php中已指定读取DB_SOCKET参数,不会影响连接。
- MAMP默认MySQL端口为
- 清空Laravel配置缓存
如果你之前执行过php artisan config:cache生成过配置缓存,修改.env文件不会直接生效,执行以下命令清除缓存:
本地开发阶段不建议使用配置缓存,避免修改配置后不生效的问题。php artisan config:clear - 确认数据库已创建
登录MAMP自带的phpMyAdmin,确认已经提前创建了名为laravel的空数据库,建议字符集设置为utf8mb4,排序规则设置为utf8mb4_unicode_ci,和Laravel默认配置匹配。 - 测试连接并执行迁移
先执行以下命令测试数据库连接是否正常:
如果没有抛出异常即代表连接成功,退出tinker后再执行php artisan tinker # 进入tinker交互界面后输入 DB::connection()->getPdo();php artisan migrate即可完成表迁移。
补充说明:如果你需要MAMP的MySQL使用3306端口,可以进入MAMP偏好设置-端口页面修改MySQL端口为3306,修改后需要重启MAMP服务生效。
内容的提问来源于stack exchange,提问作者test12345
相关产品推荐
相关产品推荐

