![在代理服务器后面设置 MySQL](https://linux22.com/image/553093/%E5%9C%A8%E4%BB%A3%E7%90%86%E6%9C%8D%E5%8A%A1%E5%99%A8%E5%90%8E%E9%9D%A2%E8%AE%BE%E7%BD%AE%20MySQL.png)
我正在代理服务器 (apache mod_proxy) 后面部署 MySQL 服务器。当我尝试使用 mysql 客户端或使用 php 连接到 mysql 服务器时出现此错误。
Lost connection to MySQL server at 'reading initial communication packet', system error: 0
我尝试将绑定地址设置为 0.0.0.0 并对其进行注释,但没有任何作用。
除了代理之外,我还使用 proxypass 在代理服务器上进行一些端口映射。例如:
ProxyPass / 123.145.1.5:13306
ProxyPassReverse / http://123.145.1.5:13306
我已将 apache 服务器设置为监听 3306,并且代理服务器上没有运行 mysql 服务器。
答案1
需要说明的是,mod_proxy 仅适用于 HTTP 协议。它从 HTTP 协议读取标头来工作。
您应该尝试使用 iptables:
iptables -t nat -A PREROUTING -p tcp --dport 3306 -j DNAT --to 123.145.1.5:13306