使用haproxy实现MySQL服务器负载均衡

一、环境准备

|-------------|----------------|----------------|
| 主机名 | IP地址 | 备注 |
| openEuler-1 | 192.168.121.11 | mysql-server-1 |
| openEuler-2 | 192.168.121.12 | mysql-server-2 |
| openEuler-3 | 192.168.121.13 | client |
| Rocky-1 | 192.168.121.51 | haproxy |

二、mysql-server配置

复制代码
[root@openEuler-1 ~]# yum install -y mariadb-server
[root@openEuler-1 ~]# vim /etc/my.cnf
[mysqld]
server-id=11     # 另一台主机为12

# 授权用户(mariadb授权自动创建用户)
[root@openEuler-1 ~]# systemctl enable --now mariadb
[root@openEuler-1 ~]# mysql -e "grant all on *.* to test@'192.168.121.%' identified by '123456'"

三、haproxy配置

复制代码
[root@Rocky-1 ~]# vim /etc/haproxy/conf.d/mysql.cfg
listen mysql_port
  bind 192.168.121.51:3306
  mode tcp
  balance leastconn
  server mysql1 192.168.121.11:3306 check
  server mysql2 192.168.121.12:3306 check

# 或者使用frontend和backend实现
frontend mysql
        bind :3306
        mode tcp                            #必须指定tcp模式
        default_backend mysqlsrvs
backend mysqlsrvs
        mode tcp                            #必须指定tcp模式
        balance leastconn
        server mysql1 192.168.121.11:3306
        server mysql2 192.168.121.11:3306


# 检查配置文件
[root@Rocky-1 ~]# haproxy -c -f /etc/haproxy/conf.d/mysql.cfg
[root@Rocky-1 ~]# systemctl restart haproxy.service

四、client测试

复制代码
[root@openEuler-3 ~]# mysql -utest -p123456 -h192.168.121.51 -e "select @@server_id"
+-------------+
| @@server_id |
+-------------+
|          11 |
+-------------+
[root@openEuler-3 ~]# mysql -utest -p123456 -h192.168.121.51 -e "select @@server_id"
+-------------+
| @@server_id |
+-------------+
|          12 |
+-------------+
相关推荐
tianyuanwo13 分钟前
企业级NTP客户端配置指南:基于内部NTP服务器的实践
运维·服务器·ntp客户端
_别来无恙_1 小时前
TFTP的使用Linux
linux·服务器
gaize12131 小时前
Moltbot(Clawdbot) 专属轻量服务器
运维·服务器
Zaralike1 小时前
Linux 服务器网络不通排查 SOP(标准操作流程)
linux·服务器·网络
getapi2 小时前
注塑件的费用构成
linux·服务器·ubuntu
Maynor9962 小时前
OpenClaw 玩家必备:用 AI 自动追踪社区最新动态
java·服务器·人工智能
郝学胜-神的一滴2 小时前
深入解析C/S模型下的TCP通信流程:从握手到挥手的技术之旅
linux·服务器·c语言·网络·网络协议·tcp/ip
chian-ocean2 小时前
CANN 生态进阶:利用 `profiling-tools` 优化模型性能
数据库·mysql
“αβ”2 小时前
数据链路层协议 -- 以太网协议与ARP协议
服务器·网络·网络协议·以太网·数据链路层·arp·mac地址
Thera7773 小时前
【Linux C++】彻底解决僵尸进程:waitpid(WNOHANG) 与 SA_NOCLDWAIT
linux·服务器·c++