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

Ubuntu下运行php artisan migrate提示No such file or directory如何解决

报错原因

这个SQLSTATE[HY000] [2002] No such file or directory是PHP无法连接MySQL服务导致的,核心原因有2类:

  1. 系统连接localhost的机制差异:Windows环境下PHP连接localhost默认走TCP协议,而Ubuntu环境下默认走Unix Socket文件,你的项目没有配置正确的Socket路径,导致PHP找不到对应的连接文件。
  2. 其他基础配置问题:MySQL服务未启动、数据库账号权限不匹配、数据库未提前创建也会触发同类报错。
解决方案

按优先级依次尝试以下操作即可:

  • 优先修改.env配置,强制走TCP连接:
    将DB_HOST=localhost改为DB_HOST=127.0.0.1,保存后执行php artisan config:clear清理配置缓存,再重新运行php artisan migrate测试,90%以上的同类型问题都可以通过这个操作解决。
  • 若修改后仍报错,先检查MySQL服务状态:
    执行sudo systemctl status mysql查看服务运行状态,若显示未启动,执行sudo systemctl start mysql启动服务,需要开机自启可以额外执行sudo systemctl enable mysql。
  • 检查数据库和账号权限配置:
    执行sudo mysql -u root -p登录MySQL命令行,先运行SHOW DATABASES;确认已创建blog数据库,未创建的话执行CREATE DATABASE blog CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;创建。再执行GRANT ALL ON blog.* TO 'blog'@'localhost' IDENTIFIED BY '你的数据库密码';给blog账号分配对应数据库的权限,注意和.env里的DB_PASSWORD配置保持一致。
  • 若需要用Unix Socket连接:
    先执行mysql_config --socket获取Socket文件实际路径,在.env中新增一行DB_SOCKET=刚才查到的Socket路径,清理缓存后重新执行迁移命令即可。

内容的提问来源于stack exchange,提问作者Seif Khédija

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 02:18:05