Laravel执行php artisan migrate时报SQLSTATE[HY000] [2002]错误如何解决
Laravel执行migrate报SQLSTATE[HY000] [2002]错误解决方案
SQLSTATE[HY000] [2002] No such file or directory 错误本质是PHP无法定位到MySQL的Unix Socket文件,导致无法建立数据库连接,可按以下步骤排查解决:
- 第一步:确认MySQL服务正常运行
对应系统执行命令检查MySQL运行状态:- Ubuntu/Debian:
systemctl status mysql - macOS(brew安装):
brew services list | grep mysql - Windows:打开服务管理器,确认MySQL服务处于「正在运行」状态
- Ubuntu/Debian:
- 第二步:配置正确的MySQL Socket路径
先查询你本地MySQL的实际Socket地址:
进入MySQL命令行执行:show variables like 'socket';
拿到路径后,在你的.env配置文件末尾添加两行配置:
常见Socket路径参考:DB_SOCKET=你查询到的Socket实际路径 UNIX_SOCKET=你查询到的Socket实际路径- 官网原生安装MySQL:
/tmp/mysql.sock - MAMP集成环境:
/Applications/MAMP/tmp/mysql/mysql.sock - XAMPP集成环境:
/Applications/XAMPP/xamppfiles/var/mysql/mysql.sock
- 官网原生安装MySQL:
- 第三步:清空配置缓存并重试迁移
执行命令清空Laravel配置缓存:php artisan config:clear
再执行迁移命令:php artisan migrate
补充排查点
- 确认你本地MySQL的root用户确实没有设置密码,和
.env中DB_PASSWORD的空值配置匹配 - 确认
sugarDaddy数据库已经提前在MySQL中创建完成,Linux系统下MySQL库名区分大小写,需和配置完全一致
内容的提问来源于stack exchange,提问作者Dan Alexandru
相关产品推荐
相关产品推荐

