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

Laravel 5.6 数据表迁移报错:MAMP 4/Mac环境连接异常排查

解决MAMP 4 + Laravel 5.6 数据表迁移时的SQLSTATE[HY000] [2002]错误

这个问题我之前帮好几个开发者排查过,本质上是Laravel默认的MySQL连接配置和MAMP的实际参数不匹配——虽然你用Sequel Pro能正常访问数据库,但Sequel Pro是手动指定了MAMP的连接参数,而Laravel还在走系统默认的路径。下面给你一步步解决:

第一步:确认MAMP的MySQL核心参数

先打开MAMP,点击顶部菜单栏的MAMP > Preferences,切换到MySQL标签页,记好这两个关键信息:

  • 端口号:默认是8889(别和Mac系统默认的3306混淆)
  • Socket路径:默认是/Applications/MAMP/tmp/mysql/mysql.sock

第二步:调整Laravel的.env配置文件

找到你的Laravel项目根目录下的.env文件(如果Finder里看不到,按Cmd+Shift+.显示隐藏文件),两种调整方案二选一即可:

方案一:用TCP/IP连接(推荐,避开socket路径问题)

把原来的DB_HOST=localhost改成127.0.0.1,同时指定MAMP的MySQL端口:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=8889
DB_DATABASE=laravel_database
DB_USERNAME=root
DB_PASSWORD=root

方案二:指定MAMP的Socket路径

如果你想继续用socket连接,就在.env里新增DB_SOCKET参数,指向MAMP的socket路径:

DB_CONNECTION=mysql
DB_HOST=localhost
DB_DATABASE=laravel_database
DB_USERNAME=root
DB_PASSWORD=root
DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock

第三步:清除Laravel配置缓存

修改完.env后,一定要执行这条命令清除配置缓存,不然Laravel可能还在使用旧的配置:

php artisan config:clear

第四步:重新运行迁移

现在再执行迁移命令试试:

php artisan migrate

如果还是不行,先确认MAMP的MySQL服务是启动状态(MAMP界面里MySQL的指示灯是绿色的),另外检查.env里的数据库名、用户名和密码是否和你在Sequel Pro里用的完全一致。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.26 10:31:57