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

Laravel迁移无法连接数据库,但应用其余功能正常求助

Laravel迁移报错SQLSTATE[HY000] [2002] No such file or directory(MAMP环境)

问题场景

本地Laravel 7.30.6应用在Mac MAMP环境下,Web功能可正常连接数据库,但执行php artisan migrate时出现如下错误:

SQLSTATE[HY000] [2002] No such file or directory (SQL: select * from information_schema.tables where table_schema = dbname and table_name = migrations and table_type = 'BASE TABLE')

已尝试将.env中DB_HOST改为127.0.0.1,并执行过缓存清除、Composer更新等操作,均无效。数据库中已存在migrations表。

解决方案

问题根源是MAMP的MySQL Socket文件路径与PHP命令行默认查找路径不一致:Web环境因MAMP预设了正确路径可正常连接,而Artisan命令行未识别到该路径。

  1. 添加Socket路径配置
    在.env文件中新增DB_SOCKET项,指定MAMP的MySQL Socket默认路径(若你的MAMP安装路径不同需调整):
DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=dbname
DB_USERNAME=root
DB_PASSWORD=root
DB_SOCKET=/Applications/MAMP/tmp/mysql/mysql.sock
  1. 清除配置缓存
    执行命令刷新配置:
php artisan config:clear
  1. 重新执行迁移
php artisan migrate

补充排查

若上述方法无效,可检查命令行PHP的配置文件(执行php --ini查看配置路径),确保以下参数指向MAMP的Socket路径:

mysql.default_socket = /Applications/MAMP/tmp/mysql/mysql.sock
mysqli.default_socket = /Applications/MAMP/tmp/mysql/mysql.sock
pdo_mysql.default_socket = /Applications/MAMP/tmp/mysql/mysql.sock

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.21 05:42:38