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

Docker中MySQL无法启动:Unix套接文件被占用问题求助

解决Laravel Sail在macOS上MySQL启动失败及连接DNS解析错误问题

一、解决MySQL容器启动失败(套接字被占用)

1. 终止本地占用套接文件的MySQL进程

macOS可能通过Homebrew、官方安装包等方式运行了本地MySQL,占用了Unix套接文件,执行以下操作排查并终止:

  • 查看所有MySQL相关进程:
    ps aux | grep mysqld
    
  • 找到PID为62的进程,强制终止:
    sudo kill -9 62
    
  • 若为Homebrew安装的MySQL,直接停止服务:
    brew services stop mysql
    
  • 若为官方DMG安装的MySQL,卸载启动项:
    sudo launchctl unload -w /Library/LaunchDaemons/com.oracle.oss.mysql.mysqld.plist
    

2. 清理Docker残留资源

  • 彻底停止并移除Sail容器及关联卷(避免残留缓存或无效套接文件):
    ./vendor/bin/sail down -v
    
  • 重启Docker Desktop(点击顶部状态栏Docker图标,选择Restart)

3. 重新启动Sail服务

./vendor/bin/sail up -d

二、解释"getaddrinfo for mysql failed"错误

这个错误不是连接拒绝,而是DNS解析失败:当MySQL容器未正常启动时,Laravel应用所在的Docker容器无法在内部网络中找到名为mysql的服务,导致DNS解析失败。只要MySQL容器启动成功,该错误会自动消失,无需修改.env中的DB_HOST配置(默认值mysql是正确的)。

验证

启动服务后,执行以下命令确认MySQL容器状态:

./vendor/bin/sail ps

当mysql容器状态显示为Up时,访问localhost即可正常连接数据库。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 17:01:19