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

Laravel本地连接Docker部署的MySQL报getaddrinfo失败问题求助

问题根因

报错php_network_getaddresses: getaddrinfo failed: No such host is known本质是主机名解析失败,核心原因是:mysql是Docker内部的服务名称,仅能被同一个Docker网络下的其他容器识别解析,而你的Laravel应用运行在本地物理机环境,不属于Docker容器网络,无法直接解析mysql这个主机名。

解决步骤

  • 第一步:确认MySQL容器端口映射配置
    检查你的docker-compose.yml中MySQL服务是否配置了端口映射,将容器内的3306端口暴露到宿主机,参考配置:
    services:
      mysql:
        image: mysql:你使用的版本号
        # 保留你原有其他配置(环境变量、卷挂载等),新增以下端口映射段
        ports:
          - "3306:3306"
    
    若你本地宿主机的3306端口已被其他服务占用,可改为"3307:3306",后续配置对应修改端口即可。修改配置后执行docker-compose up -d重启容器生效。
  • 第二步:修改本地Laravel的.env配置
    将DB_HOST从mysql改为127.0.0.1,同时删除配置项首尾多余的单引号(.env文件不需要额外加引号包裹值),修改后参考:
    DB_CONNECTION=mysql
    DB_HOST=127.0.0.1
    DB_PORT=3306
    DB_DATABASE=select_elect
    DB_USERNAME=root
    DB_PASSWORD=root
    
  • 验证生效
    配置修改后重启Laravel服务即可。如果仍连接失败,可先通过本地MySQL客户端工具尝试连接127.0.0.1:3306,确认容器运行正常、端口映射生效、账号密码和数据库权限配置正确。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.20 02:54:07