TiDB+HAProxy配置IP透传问题

【 TiDB 使用环境】测试
【 TiDB 版本】7.5
【复现路径】根据文档:https://docs.pingcap.com/zh/tidb/stable/haproxy-best-practices
添加proxy-protocol.networks参数,里面配置的IP为HAproxy节点IP。
【遇到的问题:问题现象及影响】
问题1:
登录tidb本机,使用mysql命令连接4000端口,提示ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading authorization packet’, system error: 0
但其他主机远程连接这个tidb的4000端口可以正常访问。通过配置了send-proxy标志的HAProxy也能正常连接。

问题2:
dashboard,多个模块的页面(慢查询、SQL语句分析、Top SQL、集群信息的主机标签页等等)都提示:commands out of sync. You can’t run this command now

1 个赞

HAproxy节点IP不会就配置在你tidb本机上吧?这个地址配置后,这个地址只能通过happroxy协议访问了,不能通过tidb原来的协议访问了

1 个赞

haproxy和tidb共享机器的

主要是服务器资源比较紧张,只能这么玩了

那haproxy没啥意义了,正常应该部署到其他机器 上,然后负载到3个tidb-server上,如果1台tidb-server挂了不影响使用,你这要挂了,haproxy和tidb-server都挂了。。。

不是这样的,我是准备多台机器都部署haproxy和tidb,然后用keepalived在这几台上做vip漂移实现高可用的。

这个配了么

配置了,我在问题的【复现路径】里面写了的

https://docs.pingcap.com/zh/tidb/v5.4/command-line-flags-for-tidb-configuration#--proxy-protocol-networks
这个配置之后,对应ip只能通过proxy协议访问了,不能通过tidb协议访问了,所以你的dashboard用不了了,要不你换机器部署haproxy,或者不要透传ip

1 个赞

问题1:
看一下这个:
https://docs.pingcap.com/zh/tidb/stable/error-codes#mysql-原生报错汇总

有篇实践文章你可以看看

看了报错,好像是跟认证有关系,而且问题是必现的,感觉不像是超时了。

这个探活策略,比官方文档的要细致,我配置一下试试

好的,我先独立部署一下试试看效果

请问,大佬有实际生产的配置经验么,想再请教一下

之前我在haproxy也出过问题,我参考的这个,你可以看看,还有之前猫哥提醒过系统如果ubuntu20后的apt装的有问题,需要手动编译。

非正常情况部署,可以服用app 主机

ubuntu22.04我装过没啥问题问题,全是新的,跑了大半年了
haproxy apt 安装 版本号2.4.22

haproxy还代理了dashbaord和grafana

我之前用的ubuntu20,确实是差不多四五个月后突然就连接不上了,后面手动编译就好了

可能还是有 bug ,用最新的就好了