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

群晖Container Manager中ProjectSend无法连接相邻MariaDB容器的问题

问题:ProjectSend容器无法连接同网络下的MariaDB容器

在群晖Synology Container Manager中部署了ProjectSend和MariaDB两个容器,均正常运行。首次通过Firefox访问ProjectSend进行数据库配置时,GUI中的Host、数据库名、用户名、密码均无法通过验证(无绿色勾选)。

已做排查:

  • 通过SSH成功访问MariaDB,确认用户账号权限为%(允许任意来源访问)
  • 在compose文件及数据库中设置--default-authentication-plugin=mysql_native_password适配ProjectSend的SHA1密码要求
  • 尝试过localhost、MariaDB容器IP、服务名作为Host
  • 两个容器同属projectsend_default网络,镜像均为latest版本
  • 按先启动MariaDB再启动ProjectSend的顺序重启过容器,但仍无法连接

附COMPOSE配置(密码已替换为x):

version: "2.1"
services:
  projectsend:
    image: linuxserver/projectsend
    container_name: projectsend
    environment:
      - PUID=998
      - PGID=100
      - TZ=America/Denver
      - MAX_UPLOAD=5000
    volumes:
      - /volume1/docker/projectsend/config:/config #Config Volume Goes Here
      - /volume1/docker/projectsend:/data #File Storage Volume Goes Here
    ports:
      - 8010:80
    restart: unless-stopped
  db:
    image: mariadb
    container_name: mariadb-projectsend
    environment:
      MYSQL_ROOT_PASSWORD: xxxxxxx
      MYSQL_DATABASE: projectsend
      MYSQL_USER: user
      MYSQL_PASSWORD: xxxxxxx
      TZ: America/Denver
    volumes:
      - /volume1/docker/projectsend/mariadb:/var/lib/mysql #Database Volume Goes Here
    ports:
      - "3306:3306"  
    command: --default-authentication-plugin=mysql_native_password   
    restart: unless-stopped
排查与解决方案
  • 验证容器网络连通性
    进入ProjectSend容器内部,测试与MariaDB服务名的连通性:

    docker exec -it projectsend ping db
    

    如果ping不通,说明网络存在异常。可以在compose文件末尾显式定义自定义网络,确保两个容器在同一网络组:

    networks:
      default:
        name: projectsend_net
    

    执行命令重新部署容器:

    docker-compose down && docker-compose up -d
    
  • 确认数据库用户的权限与加密方式
    进入MariaDB容器,登录后执行SQL语句验证用户信息:

    docker exec -it mariadb-projectsend mysql -u root -p
    

    输入root密码后执行:

    SELECT user, host, plugin FROM mysql.user WHERE user='user';
    

    确保host值为%,plugin值为mysql_native_password。若存在异常,重新设置用户密码并刷新权限:

    ALTER USER 'user'@'%' IDENTIFIED WITH mysql_native_password BY '你的实际密码';
    FLUSH PRIVILEGES;
    
  • 正确填写ProjectSend配置页的Host
    在ProjectSend的数据库配置GUI中,Host必须填写MariaDB的服务名db——同一Docker网络下,容器通过服务名实现稳定的内部访问,不要填写localhost(指向容器自身)、宿主机IP或容器IP。

  • 检查端口配置
    确认MariaDB容器未修改默认端口3306,ProjectSend配置页的数据库端口保持默认3306即可。

  • 清除ProjectSend缓存
    若之前多次尝试错误配置导致缓存残留,可直接重启ProjectSend容器:

    docker restart projectsend
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.03 23:12:37