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

如何将OSTicket Docker镜像与MariaDB Galera集群配合使用

解决OSTicket连接MariaDB Galera集群(HAProxy代理)的标准方法
  • 直接配置MYSQL_HOST指向HAProxy代理
    别注释MYSQL_HOST,直接把它设为HAProxy代理的地址和端口,比如MYSQL_HOST=swarm-maria_proxy:3306(如果你的代理用了自定义端口,替换成对应端口)。先确认OSTicket容器能解析swarm-maria_proxy这个主机名——如果是Docker Swarm环境,要保证两个服务在同一个overlay网络里;如果是单机Docker,得在同一个自定义网络。同时去HAProxy的日志里看看,OSTicket的连接请求有没有到达代理,代理有没有正确转发到Galera节点。

  • 先测连通性
    进到OSTicket容器里,用telnet swarm-maria_proxy 3306或者nc -zv swarm-maria_proxy 3306测试端口能不能通。要是不通,先搞定网络问题——要么把两个容器拉到同一个Docker网络,要么检查DNS解析配置。

  • 调整HAProxy的Galera健康检查
    Galera集群不能用普通的MySQL健康检查,HAProxy得确认节点处于Synced状态才转发流量。给你个HAProxy配置片段参考:

    listen galera_cluster
        bind *:3306
        mode tcp
        balance leastconn
        option tcp-check
        tcp-check send PING\
        tcp-check expect string PONG
        tcp-check send QUERY\;SHOW\ STATUS\ LIKE\ \'wsrep_ready\'\;\
        tcp-check expect string wsrep_ready\tON
        server galera-node1 节点1IP:3306 check
        server galera-node2 节点2IP:3306 check
        server galera-node3 节点3IP:3306 check
    

    确保健康检查能识别正常节点,不然OSTicket连过去可能碰到未同步的节点导致失败。

  • 检查所有数据库参数
    除了MYSQL_HOST,MYSQL_USER、MYSQL_PASSWORD、MYSQL_DATABASE这些变量一个都不能少,而且得和Galera集群里的数据库权限匹配。

  • 看OSTicket日志找具体错误
    跑docker logs <你的OSTicket容器名>,看日志里的具体报错——是主机解析失败?连接超时?还是权限不够?根据报错针对性解决比瞎试有用多了。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 08:40:50