使用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 |
+-------------+
相关推荐
玩转4G物联网15 分钟前
零基础玩转物联网-串口转以太网模块如何快速实现与HTTP服务器通信
服务器·网络·物联网·网络协议·tcp/ip·http·fs100p
SeaTunnel43 分钟前
如何将SeaTunnel MySQL-CDC与Databend 高效整合?格式与方案全解析
数据库·mysql·开源·数据集成·seatunnel·databend
顾三殇1 小时前
【自考】《计算机信息管理课程实验(课程代码:11393)》华师自考实践考核题型解析说明:C++ 与 mysql 实践题型与工具实践题分析
c++·mysql·华师自考实践考核题型分析
xiaolyuh1231 小时前
基于binlog恢复误删除MySQL数据
数据库·mysql
倔强的石头1061 小时前
【Linux指南】文件系统基础操作与路径管理
linux·运维·服务器
中科三方2 小时前
如何通过DNS解析实现负载均衡?有哪些优势?
运维·负载均衡
独爱竹子的功夫熊猫2 小时前
数据库技巧:INSERT IGNORE的高效插入策略
数据库·后端·mysql
码农101号3 小时前
Linux中shell流程控制语句
linux·运维·服务器
水水沝淼㵘3 小时前
嵌入式开发学习日志(数据库II && 网页制作)Day38
服务器·c语言·网络·数据结构·数据库·学习
程序猿小D3 小时前
第26节 Node.js 事件
服务器·前端·javascript·node.js·编辑器·ecmascript·vim