![将 MySQL 查询重定向到另一台服务器](https://linux22.com/image/603003/%E5%B0%86%20MySQL%20%E6%9F%A5%E8%AF%A2%E9%87%8D%E5%AE%9A%E5%90%91%E5%88%B0%E5%8F%A6%E4%B8%80%E5%8F%B0%E6%9C%8D%E5%8A%A1%E5%99%A8.png)
为了降低系统使用率,我计划使用另一台服务器来存储我的数据库。那么如何将 MySQL 查询重定向到另一台服务器或让 MySQL 将数据库存储在另一台服务器上?
答案1
你可以使用类似 mysql 代理的东西链接1 链接2但它没有得到很好的支持。此外,性能下降有点重要。如果可能的话,我建议你直接告诉你的应用程序连接到实际的 mysql 服务器,并选择一个选项。例如,对于 PHP,有mysqlnd_ms它允许添加多个 mysql 服务器并在它们之间进行负载平衡。
答案2
另一件事是在 tcp 模式下使用 HAProxy
答案3
最好的方法是将所有流量从 3306 端口转发到运行 mysql 的目标 IP 地址的 3306 端口。
根据您使用的操作系统,您可以使用不同的数据包转发应用程序,如 iptables、数据包过滤器等。
由于它工作在数据包层,而不是应用程序层,因此您将跳过使用应用程序进行重定向的开销。这将比使用 MysqlProxy 等传统应用程序快得多。
当您需要应用程序级别的理解时,MysqlProxy 很有用,例如,如果您想将 mysql 写请求重定向到一个服务器并将读取请求重定向到其他服务器,但在这种情况下,使用 mysql 代理将是一个很大的额外开销。