搭建Haproxy为tidb做负载均衡时,发现配置的端口始终报“cannot bind socket”
报错如下:
[ALERT] 338/094612 (32969) : Starting proxy mysql: cannot bind socket [0.0.0.0:3306]
使用下面的命令检查后,发现端口并未被占用
netstat -tunlp | grep 3306
/etc/haproxy/haproxy.cfg配置文件转发片段如下:
listen mysql
bind :3306
mode tcp
balance roundrobin
server mysql1 10.152.9.13:4000 maxconn 10000
server mysql2 10.152.9.14:4000 maxconn 10000
使用haproxy -f /etc/haproxy/haproxy.cfg -c检查配置文件也没有问题。
最终在https://stackoverflow.com/questions/34793885/haproxy-cannot-bind-socket-0-0-0-08888找到问题。
原来是要先设置haproxy连接策略,执行以下命令即可
setsebool -P haproxy_connect_any=1