现有Laravel项目Sail部署后MySQL容器启动失败求助
Laravel Sail MySQL容器启动后立即退出的解决方法
问题现象
现有Laravel项目安装Sail后,执行sail up -d启动容器,MySQL容器仅运行3-4秒就停止。查看容器日志,核心错误为:
2023-10-23T08:36:46.114719Z 0 [ERROR] [MY-010259] [Server] Another process with pid 62 is using unix socket file. 2023-10-23T08:36:46.114731Z 0 [ERROR] [MY-010268] [Server] Unable to setup unix socket lock file.
执行docker ps -a可见MySQL容器状态为Exited (1),其他Sail项目运行正常。
解决步骤
1. 清理项目关联的Docker数据卷
残留的socket锁文件是最常见原因,执行以下命令彻底清理并重启:
- 停止容器并删除关联卷:
sail down -v - 重新启动容器:
sail up -d
2. 排查宿主机MySQL进程冲突
若宿主机本地运行MySQL服务,可能与容器的socket映射冲突:
- 临时停止宿主机MySQL服务:
sudo systemctl stop mysql - 或修改项目的
docker-compose.yml,移除MySQL服务下的socket映射行(通常是/var/run/mysqld/mysqld.sock:/var/run/mysqld/mysqld.sock),再重启容器。
3. 重置Sail配置(兜底方案)
若以上方法无效,重新生成Sail的Docker配置:
- 删除当前
docker-compose.yml:rm docker-compose.yml - 重新发布Sail配置:
php artisan sail:publish - 启动容器:
sail up -d
内容的提问来源于stack exchange,提问作者Enad Abuzaid
相关产品推荐
相关产品推荐

