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

Docker部署Laravel项目遇MySQL连接错误求助:php_network_getaddresses异常

问题分析与解决方案

核心问题拆解

  • 容器网络访问错误:你用localhost连接MySQL是错误的——在Docker Compose创建的内部网络中,Laravel容器和MySQL容器属于同一网络域,必须用服务名mysql作为数据库主机地址,而非localhost(容器内的localhost指向容器自身,而非宿主机或MySQL容器)。
  • ARM64架构适配:你的配置已添加platform: linux/arm64/v8,但需确认镜像拉取、容器启动过程中是否存在架构兼容异常。

具体修复步骤

1. 修改Laravel数据库配置

打开项目根目录下的.env文件,调整数据库连接参数:

DB_CONNECTION=mysql
DB_HOST=mysql  # 替换为compose配置里的mysql服务名
DB_PORT=3306
DB_DATABASE=laravel_db  # 自定义数据库名,后续可自动创建
DB_USERNAME=root
DB_PASSWORD=root

2. 优化Docker Compose配置(推荐)

添加数据持久化、自动建库等配置,提升稳定性:

version: "3.9"
services:
  mysql:
    image: mariadb:10.8.3
    platform: linux/arm64/v8
    command: --default-authentication-plugin=mysql_native_password
    restart: always
    environment:
      MYSQL_ROOT_PASSWORD: root
      MYSQL_DATABASE: laravel_db  # 启动时自动创建指定数据库
    ports:
      - 3306:3306
    volumes:
      - mysql_data:/var/lib/mysql  # 持久化数据库数据,避免容器重启丢失
  adminer:
    image: adminer
    restart: always
    ports:
      - 8080:8080
    depends_on:
      - mysql  # 确保adminer在MySQL启动后再运行

volumes:
  mysql_data:  # 声明数据卷

3. 重启服务并验证

  • 停止现有容器:docker compose down
  • 重新启动服务:docker compose up -d
  • 进入Laravel运行容器(若有独立PHP容器),执行迁移验证连接:php artisan migrate

4. ARM64架构额外排查

如果仍有架构相关错误:

  • 手动拉取适配ARM64的镜像:docker pull mariadb:10.8.3 --platform linux/arm64/v8
  • 查看MySQL容器日志定位问题:docker compose logs mysql

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.27 08:47:08