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

Ubuntu环境下Laravel Sail启动报错:3306端口被占用求助

解决Laravel Sail启动时3306端口被占用的问题

方法一:定位并停止占用3306端口的进程

  • 先查询哪个进程占用了3306端口:
    sudo lsof -i :3306
    # 或者用另一种命令
    sudo netstat -tulpn | grep 3306
    
    输出结果里会显示进程ID(PID)和进程名称,比如常见的本地安装的mysql服务。
  • 停止该进程/服务:
    sudo systemctl stop mysql
    
  • 若不想下次开机时该服务再次占用端口,可禁用其开机自启:
    sudo systemctl disable mysql
    
    完成后重新执行sudo ./vendor/bin/sail up即可。

方法二:修改Laravel Sail的MySQL端口映射

如果需要保留本地MySQL服务,直接修改Sail的端口配置:

  • 打开项目根目录下的.env文件,找到DB_PORT=3306,将其改为未被占用的端口(比如3307):
    DB_PORT=3307
    
  • 保存文件后,重新启动Sail:
    sudo ./vendor/bin/sail up -d
    
    后续本地连接数据库时使用3307端口即可,Laravel应用会自动读取.env中的配置,无需修改业务代码。

额外排查步骤

  • 检查是否有残留的Docker容器:
    docker ps -a
    
    找到与mysql相关的容器,执行docker rm <容器ID>删除后,再重新启动Sail。
  • 清理Docker无用网络:
    docker network prune
    
    确认清理后再次尝试启动Sail。

内容的提问来源于stack exchange,提问作者Süheyla Ceren Mescioğlu

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.20 07:47:40