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

Laravel+Vagrant+Homestead使用unique校验时报MySQL访问被拒问题

问题排查与解决步骤

这个问题的核心是本地执行Artisan命令、Homestead虚拟机内运行Web请求两套场景下的数据库配置不匹配导致的,按照以下步骤排查即可解决:

  • 先确认.env文件的数据库配置是否匹配Homestead环境
    Homestead虚拟机内置MySQL的默认配置如下,直接替换你的.env对应字段即可:
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=homestead
DB_USERNAME=homestead
DB_PASSWORD=secret

注意:如果你是在本地物理机直接执行php artisan migrate这类命令,需要临时把DB_PORT改为33060才能连接到虚拟机映射出来的MySQL端口;如果是通过Homestead的Nginx访问项目,端口必须保持3306。不想来回改的话可以把DB_HOST改为192.168.10.10(Homestead默认虚拟机IP,可在Homestead.yaml里确认),两个场景下都可以用3306端口不用修改。

  • 清理Laravel配置缓存
    修改完.env后,进入Homestead虚拟机内项目根目录执行以下命令清除旧的缓存配置:
    php artisan config:clear
  • 确认数据库账号权限
    如果修改配置后依然报错,按以下步骤校验账号权限:
  1. 本地执行vagrant ssh进入Homestead虚拟机
  2. 执行mysql -u homestead -p,输入密码secret登录MySQL
  3. 执行SQL查看权限:
SHOW GRANTS FOR 'homestead'@'localhost';

如果权限不足,执行以下语句赋权后重试:

GRANT ALL PRIVILEGES ON homestead.* TO 'homestead'@'localhost';
FLUSH PRIVILEGES;
  • 特殊场景校验
    如果你没有用Homestead自带的Nginx,而是在本地物理机跑php artisan serve启动服务,需要保持DB_PORT=33060,同时确认Homestead处于正常运行状态、本地33060端口没有被其他程序占用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.03 07:39:01