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

Directus连接MySQL报connection refused错误,本地命令可正常连接

解决Directus容器连接本地MySQL时的connection refused错误
  • 问题根源:Docker容器内的localhost指向容器自身,而非宿主机。你本地命令行能正常连接MySQL,是因为直接访问了宿主机的服务,但Directus容器里的localhost无法定位到宿主机的MySQL进程。

  • 修复方案:

    1. 修正DB_HOST配置:
      • Linux/macOS/Windows(Docker Desktop环境):将docker-compose.yml中的DB_HOST: 'localhost'改为DB_HOST: 'host.docker.internal'(Docker内置的宿主机别名);
      • 也可直接填写宿主机的局域网IP(如192.168.1.100),但需确保MySQL监听该IP地址。
    2. 清理无效环境变量:删除Directus服务下的MYSQL_*系列配置项(这些是MySQL容器专属的环境变量,Directus容器不需要):
      MYSQL_ROOT_PASSWORD: 'MYSQL_PASSWORD'
      MYSQL_USER: 'root'
      MYSQL_PASSWORD: 'MYSQL_PASSWORD'
      MYSQL_DATABASE: 'directus'
      
    3. 重启容器:执行命令docker-compose down && docker-compose up -d
  • 辅助配置(使用IP访问时):
    确保MySQL允许远程连接,执行以下SQL授权:

    GRANT ALL PRIVILEGES ON directus.* TO 'root'@'%' IDENTIFIED BY 'MYSQL_PASSWORD';
    FLUSH PRIVILEGES;
    

    然后修改MySQL配置文件(my.cnf/my.ini),将bind-address设置为0.0.0.0,重启MySQL服务。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.21 11:12:38