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

MacBook Pro M1执行php artisan migrate遇SQLSTATE[HY000][2002]连接拒绝求助

解决MacBook Pro M1上Laravel迁移时SQLSTATE[HY000] [2002]连接拒绝问题

问题重现

执行php artisan migrate时收到错误:

SQLSTATE[HY000] [2002] Connection refused (SQL: select * from information_schema.tables where table_schema = library-app and table_name = migrations and table_type = 'BASE TABLE')

.env配置:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=library-app
DB_USERNAME=root
DB_PASSWORD=password123

已尝试将DB_HOST改为localhost,问题未解决。

针对M1 MacBook的排查与解决方案

1. 确认MySQL服务正在运行

M1设备上MySQL的启动方式分两种情况:

  • 若通过Homebrew安装:执行brew services list,查看mysql服务状态是否为started。若未启动,执行brew services start mysql。
  • 若通过官方DMG安装:打开系统偏好设置,找到底部的MySQL图标,确认服务处于启动状态,若未启动点击"Start MySQL Server"。

2. 验证MySQL端口与连接可用性

  • 执行lsof -i :3306,检查3306端口是否被MySQL占用。如果没有结果,说明MySQL可能使用了其他端口(比如部分M1环境下MySQL默认用33060),此时需要修改.env中的DB_PORT为对应端口,或者在MySQL配置文件中改回3306。
  • 尝试用终端直接连接MySQL:mysql -h 127.0.0.1 -P 3306 -u root -p,输入密码后看是否能成功登录。如果登录失败,说明用户权限或密码有问题,需要重置root密码或调整权限。

3. 修复M1特有的套接字连接问题

M1上使用localhost时,MySQL可能优先使用套接字而非TCP/IP连接,此时需要在.env中添加套接字路径:

DB_SOCKET=/tmp/mysql.sock

添加后执行php artisan config:clear清理配置缓存,再重新尝试迁移。

4. 确认目标数据库已创建

用MySQL客户端登录后,执行CREATE DATABASE IF NOT EXISTS library-app;,确保library-app数据库存在。

5. 重置Laravel配置缓存

修改.env后可能存在缓存未更新的情况,执行以下命令清理缓存:

php artisan config:clear
php artisan cache:clear

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 13:56:40