Centos 7_MySQL主主复制_Haproxy实现负载均衡

Centos7下采用haproxy+keepalived搭建mysql高可用负载均衡 Centos7下采用haproxy+keepalived搭建mysql高可用负载均衡。 阅读详情

Centos 7下安装MySQL 5.5

以管理员身份进行以下操作:

删除centos预先安装的mariadb

rpm -qa | grep mariadb
rpm -e --nodeps mariadb-libs-5.5.56-2.el7.x86_64
rpm -qa | grep mariadb

安装MySQL依赖

yum install -y gcc gcc-c++ gcc-g77 autoconf automake zlib* fiex* libxml* ncurses-devel libmcrypt* libtool-ltdl-devel*

创建MySQL工作目录

cd ~ && mkdir mysql && cd mysql

安装cmake

wget http://www.cmake.org/files/v3.4/cmake-3.4.0.tar.gz 
tar -zxvf cmake-3.4.0.tar.gz && cd cmake-3.4.0
./configure
gmake && make install 

安装MySQL

rm -rf /etc/my.cnf && rm -rf /etc/init.d/mysqld
userdel mysql 
groupdel mysql
groupadd mysql
useradd -g mysql mysql

cd ~/mysql
wget http://mirrors.sohu.com/mysql/MySQL-5.5/mysql-5.5.54.tar.gz
tar -zxvf mysql-5.5.54.tar.gz cd mysql-5.5.54

执行cmake命令

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DWITH_EXTRA_CHARSETS:STRING=utf8,gbk \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_MEMORY_STORAGE_ENGIME=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DMYSQL_DATADIR=/usr/local/mysql/data \
-DMYSQL_USER=mysql

make && make install

修改MySQL文件权限,创建软连接,复制MySQL配置文件等

chmod +w /usr/local/mysql && chown -R mysql:mysql /usr/local/mysql

ln -s /usr/local/mysql/lib/libmysqlclient.so.18 /usr/lib/libmysqlclient.so.18 #软连接
cd support-files  #里面有多个my-*.cnf,large,huge,small,medium,不同的配置适用于不同的机器
cp my-large.cnf /etc/my.cnf && cp mysql.server /etc/init.d/mysqld
修改配置文件
vi /etc/my.cnf
在[mysqld]下面添加 
basedir = /usr/local/mysql
datadir = /usr/local/mysql/data
log-error = /usr/local/mysql/mysql_error.log
pid-file = /usr/local/mysql/data/mysql.pid
default-storage-engine=InnoDB
user = mysql
vi /etc/init.d/mysqld
修改路径
basedir=/usr/local/mysql
datadir=/usr/local/mysql/data
完成MySQL初始化
/usr/local/mysql/scripts/mysql_install_db \
--basedir=/usr/local/mysql \
--datadir=/usr/local/mysql/data \
--user=mysql 

将MySQL加入开机启动

chmod +x /etc/init.d/mysqld
chkconfig --add mysqld && chkconfig --level 345 mysqld on

为MySQL配置环境变量

vi ~/.bashrc
export PATH=/usr/local/mysql/bin:$PATH
source ~/.bashrc

启动MySQL

service mysqld start
配置root密码
cd /usr/local/mysql && /usr/local/mysql/bin/mysql_secure_installation (一开始root初始密码为空)
允许MySQL远程连接
# mysql -u root -p
>use mysql;
>grant all privileges  on *.* to root@'%' identified by "password";

至此在Centos 7上完成了MySQL 5.5的安装。

MySQL 5.5的主主复制

MySQL的主主复制即为两个MySQL之间互为主从关系。通过主主复制,可以达到容灾防范,同时为后面的MySQL负载均衡做好准备。

在两台Centos虚拟机中分别安装好MySQL数据库,这两台虚拟机的地址分别被192.168.200.214与192.168.200.215,下午中分别称为214机与215机。

A) 实现214机与215机的主从复制

214机上操作:

a) 在214机的MySQL中为215机建立一个可以登录的用户

用户名:mysql12,密码:mysql12

mysql>GRANT REPLICATION SLAVE ON *.* TO 'mysql12'@'192.168.200.215' IDENTIFIED BY 'mysql12';

mysql>FLUSH PRIVILEGES;

b) 查看214机上MySQL服务器二进制文件名与位置

 mysql>SHOW MASTER STATUS;

c) 修改214机中MySQL的配置文件 (在215机器上做相同配置server-id=215)

vi /etc/my.cnf

server-id=214
log-bin=mysql-bin
auto_increment_increment=2
auto_increment_offset=1
binlog-ignore=mysql   #忽略mysql库,可以不写
binlog-ignore=information_schema   #忽略information_schema库,可以不写
replicate-do-db=test   #要同步的数据库,默认所有库,可以不写

auto_imcrement(步进值,一般有n台主MySQL就填n),auto_increment_offset(起始值。一般填第n台主MySQL。此时为第一台主MySQL)。

这两个值非常重要,如果不配置,则会导致主键重复而引起的插入冲突。

配置完成后重启MySQL服务。

d) 在215机上的MySQL中进行从属配置

 mysql>CHANGE MASTER TO
      >MASTER_HOST=’192.168.200.214’,
      >MASTER_USER=’mysql12’,
      >MASTER_PASSWORD=’mysql12’,
      >MASTER_LOG_FILE=’mysql-bin.000016’,
      >MASTER_LOG_POS=107;

在215机中开启从属复制

mysql>SLAVE START; 
mysql>SHOW SLAVE STATUS\G

当看见Slave_IO_Running: YES、Slave_SQL_Running: YES时,主从复制即完成。

B) 实现215机与214机的主从复制

在215机上的MySQL中对214机进行相同的主从配置操作,用户名可以为mysql21,密码为mysql21。

至此214机与215机实现了主主复制。无论在214机还是215机的MySQL中进行更新操作,均会相应的体现在另一台机器上面。

Centos 7下安装Haproxy,配置MySQL的负载均衡

Haproxy做为负载均衡的中间件,它将被安装在地址为192.168.200.216的虚拟机中。

groupadd haproxy
useradd -g haproxy haproxy
yum install haproxy

A) 关闭SELinux

如果不想配置SELinux策略,则一定要关闭SELinux。否则Haproxy和所代理的后端会出现端口连接错误。

vi /etc/selinux/config
// 修改为
SELINUX=disabled 

设置后需要重启才能生效。

B) 将Haproxy加入Centos的系统服务中

将Haproxy压缩包中(haproxy-1.5.14.tar.gz,直接用yum安装的话,压缩包需要单独下载)examples文件夹下的haproxy.init拷贝至/etc/init.d文件夹下,更名为haproxy。

chmod +x /etc/init.d/haproxy
chkconfig haproxy on

重启系统即可完成开机自动启动Haproxy服务。

C) 开启Haproxy的日志服务

创建记录日志文件

touch /var/log/haproxy.log
chown haproxy:haproxy /var/log/haproxy.log
chmod a+x /var/log/haproxy.log

开启rsyslog记录haproxy日志功能

vi /etc/rsyslog.conf 
(打开如下配置项)
# Provides UDP syslog reception
$ModLoad imudp
$UDPServerRun 514
# Provides TCP syslog reception
$ModLoad imtcp
$InputTCPServerRun 514

(在RULES块中添加)
#### RULES ####
# save haproxy.log
local0.* /var/log/haproxy.log

修改/etc/sysconfig/rsyslog文件,内容如下:

vi /etc/sysconfig/rsyslog

# Options for rsyslogd
# Syslogd options are deprecated since rsyslog v3.
# If you want to use them, switch to compatibility mode 2 by "-c 2"
# See rsyslogd(8) for more details
SYSLOGD_OPTIONS="-r -m 0 -c 2"

配置Haproxy打开日志服务

vi /etc/haproxy/haproxy.cfg

global
log         127.0.0.1 local0

重启rsyslog与Haproxy服务

service rsyslog restart
service haproxy restart

查看Haproxy日志文件

tail -f /var/log/haproxy.log

D) Haproxy基础配置

vi /etc/haproxy/haproxy.cfg 
global
global    
    log         127.0.0.1 local0
    chroot      /var/lib/haproxy
    pidfile     /var/run/haproxy.pid
    maxconn     4000
    user        haproxy
    group       haproxy
    daemon

defaults

defaults
    mode                    tcp
    log                     global
    option                  dontlognull // 不记录健康检查日志
    option                  httpclose
    option                  httplog
    option                  redispatch // serverId对应的服务器挂掉后,强制定向到其他健康的服务器
    retries                 3
    timeout http-request    10s
    timeout queue           1m
    timeout connect         10s
    timeout client          1m
    timeout server          1m
    timeout http-keep-alive 10s
    timeout check           10s
    maxconn                 3000
E) 开启Haproxy监控页面

在/etc/haproxy/haproxy.cfg中进行配置:

vi /etc/haproxy/haproxy.cfg

listen admin_stats
        mode    http
        stats   enable
        bind    *:8080  // 监听端口
        stats   refresh 30s
        stats   uri /admin // 统计页面访问的url
        stats   realm haproxy
        stats   auth root:root // 认证用户与密码
        stats   hide-version

在主机浏览器地址栏中输入192.168.200.216:8080/admin即可访问统计页面。


D) 进行MySQL负载均衡配置

在/etc/haproxy/haproxy.cfg中进行配置:

vi /etc/haproxy/haproxy.cfg

frontend  main *:5000 // Haproxy对外部访问MySQL请求的监听端口
    default_backend             mysql_backend

backend mysql_backend
    balance  leastconn // 最小连接数为筛选的负载均衡原则   
    server mysql1 192.168.200.214:3306 check port 3306 maxconn 300 // 一定要加check,否则Haproxy会认为该server一直是可用状态
    server mysql2 192.168.200.215:3306 check port 3306 maxconn 300

至此重新启动Haproxy,在监控页面中就可以看见mysql1与mysql2两个可用的数据库。

在数据库连接工具(如MySQL workbench)中,配置新的MySQL连接时,地址不再是214或者215,而是Haproxy所在的216虚拟机。同时端口需要输入Haproxy所监听的5000端口。

在验证过程中,我们任意停止214机,或者215机,均可以在数据库客户端保持正常的数据访问操作。同时214机或者215机一旦恢复启动,会通过主主复制,把想要的数据复制到数据库中。







Mycat+Mysql主从复制+haproxy+keepalived实现高可用的分库分表集群方案 一, 部署架构 1.1架构图 1.2 软件版本 操作系统: CentOS2-7-X86_64-DVD-1708.iso JDK 版本: jdk1.8.0_11 Keepalived 版本: keepalived-1.2.18.tar.gz HAProxy 版本: haproxy-1.5.16.tar.gz MyCat 版本: Mycat-server-1.4-release-201... 阅读详情

相关推荐

TensorFlow手写数字识别:从LeNet-5原生实现到TFLite端侧部署

卷积神经网络(CNN)是计算机视觉的基础架构,其核心原理包括局部感受野、参数共享与层级特征提取。LeNet-5作为首个成功应用于手写数字识别的经典CNN模型,虽结构简洁,却完整体现了前向传播、梯度回传与算子可复现性等关键技术价值。在工程实践中,它常被用作轻量级模型baseline、嵌入式端侧部署起点,以及深度学习教学中理解张量流与层间对齐的范本。本文聚焦TensorFlow 2.x原生实现,覆盖数据归一化策略、S2下采样层可学习参数、C3局部连接掩码机制,并延伸至SavedModel导出与INT8量化部署,

weixin_33875839的博客 339

HAProxy+mysql实现负载均衡

HAProxy 是一个使用C语言编写的自由及开放源代码软件,其提供高可用性、负载均衡,以及基于 TCP 和 HTTP 的应用程序代理。相较与 Nginx,HAProxy 更专注与反向代理,因此它可以支持更多的选项,更精细的控制,更多的健康状态检测机制和负载均衡算法。haproxy 是工作在四层之上的,这也就意味着它可以代理的服务要比 nginx 更广泛,性能比 nginx 也要更高一些。相比较 lvs,可配置性又比较好,需要的机器没有 lvs 那么多。

莫忘、初心 5017

ADS Layout设计实战:从参数设置到协同仿真

本文详细介绍了ADS Layout设计的完整实战流程,从新建工程、单位设置、个性化偏好配置等基础操作入手,逐步深入到基板参数配置、端口设置与电磁仿真器选择等核心环节。重点阐述了参数化版图设计与扫描优化、以及原理图与Layout协同仿真的高级技巧,并通过一个微带线低通滤波器设计案例,完整演示了从理论到实现的闭环设计方法,帮助工程师高效、准确地完成高频电路版图设计与验证。

weixin_29268637的博客 797

高性能Mysql(三) | 通过haproxy与keepalived对mysql分库分表实现高可用

文章目录前言架构图安装并配置Haproxy安装并且配置KeepalivedHaproxy基础知识及配置文件参数详解KeepAlived基础知识与配置参数详解 前言       前文介绍了基于MyCat分库分表,读写分离,主从同步。本文则着重介绍如何通过haproxy负载均衡以及keepalived心跳机制搭建Mysql高可用架构。 架构图 前文: 本文: 在之前的架构上进行升级,实现高可用。 192.168.43.110 mysql maste

qq_38425803的博客 1521

Windows Server上OpenVPN 2.4.8双因子认证实战:账号密码+证书,附一键脚本

本文详细介绍了在Windows Server上部署OpenVPN 2.4.8双因子认证(账号密码+证书)的实战方案,包括架构设计、证书体系规划、环境准备、服务器端配置及客户端自动化部署。通过一键脚本和优化配置,提升企业VPN的安全性和运维效率,特别适合金融、医疗等对安全性要求高的行业。

weixin_29231221的博客 465

YOLO26跨时代升级!YOLO26 MLCA注意力机制解读

摘要: 本文提出了一种基于多级上下文聚合(MLCA)注意力机制的改进卷积神经网络。MLCA模块通过局部和全局注意力机制动态调整特征图权重,结合了ECA注意力与自适应池化,显著提升特征表达能力。实验表明,添加MLCA后模型mAP提升12.11,准确率提高5.43。文中详细解析了MLCA1模块的工作原理,包括局部/全局池化、卷积操作和注意力加权机制,并介绍了集成MLCA的Bottleneck_MLCA模块。该机制通过多层次特征融合,在保持计算效率的同时增强模型对关键特征的敏感性。最后提供了YOLOv26-MLC

m0_71589036的博客 283

haproxy-实现mysql多slave读负载均衡

一 前言 HAProxy提供高可用性、负载均衡以及基于TCP和HTTP应用的代理,支持虚拟主机,它是免费、快速并且可靠的一种解决方案。而mysql一主多从是比较通用的架构,我们可以利用haproxy在tcp层对数据库的读请求进行代理,从而实现多个从库读的负载均衡。 二 背景说明 目前公司的业务都是一主多从,想要把查询分到多个从库上,都是通过开发维护多个从库的配置来实现,这样比较麻烦,通过hapr...

渐行渐远的博客 528

基于 STM32 的乒乓球发球机控制系统设计与实现

乒乓球发球机是一种能够按照预设参数自动、连续发出乒乓球的训练设备。本系统以 STM32F103C8T6 为主控核心,通过控制实现球速调节、实现落点与旋转方向控制、实现出球节奏控制,并配合 OLED 显示与按键人机交互,实现速度、频率、落点、旋转四大参数的可调发球训练。

weixin_42300449的博客 210

MySQL 主主复制 高可用负载均衡集群

搭建环境: 两台 CentOS 7.4(192.168.117.139、192.168.117.140) MySQL 5.7 HAProxy 1.5.18 Keepalived 1.3.5 MySQL 安装   安装笔记参考MySQL Yum 存储库安装,此处不再浪费“墨水”。两台机器按照相同步骤安装完成即可。 主主复制   什么叫主主复制?就是两个 MySQL 都能读能写...

5122

飞牛NAS 0day漏洞导致断网?完整的排查修复方案来了(含一键检测修复工具)

家里网络莫名断网,折腾十来天才发现是NAS被0day漏洞利用了?🔍 本文详细记录了从发现问题到最终解决的全过程,包括如何自查系统是否被入侵、使用检测脚本和专杀脚本进行修复,以及如何通过端口管理、访问控制、监控预警等措施加固系统安全 🔒,帮助遇到同样问题的用户快速排查和解决NAS安全风险 ✅

XiaoqiangClub的博客 5515

手把手教您国内安装 Claude Code 并配置自定义大模型(包含New-API中转和可视化管理工具的使用)

国内免魔法畅用 Claude Code!手把手教你 Windows 安装、配置文件写法、对接阿里百炼 / DeepSeek / 智谱✨,附完整参数、正确命令、三方工具管理方案,新手一次成功!✅

XiaoqiangClub的博客 3783

Haproxy搭建MySQL主备和Tomcat负载均衡集群

因项目要求需要使用Haproxy搭建MySQL主备高可用,主主文件复制和Tomcat负载均衡的系统,原理不在重复,网上很多案例。 一、环境说明 mysqlserver1:mysql主 172.25.10.129 5302 mysqlserver2:mysql从 172.25.10.130 5302 mysql版本:5.7.17 mysql数据存储路径:/Data/mysql

白沙巨浪 889

MCP开发实战:基于openEuler系统MCP插件的开发、测试与发布全流程

MCP开发实战:基于openEuler系统MCP插件的开发、测试与发布全流程

jks212454的博客 555

利用keepalived和haproxy配置mysql的高可用负载均衡

实验系统:CentOS 6.6_x86_64(2.6.32-504.30.3.el6.x86_64) 实验前提:防火墙和selinux都关闭 实验说明:本实验共有4台主机,IP分配如拓扑 实验软件:keepalived-1.2.19  haproxy-1.5.14  mariadb-10.0.20 下载地址:http://pan.baidu.com/s/1bnnYiMr 实验拓扑:  ...

Data & Analysis 618

47、利用组策略配置 Windows 防火墙与 IPsec 全解析

本文深入解析了如何利用组策略配置Windows防火墙与IPsec,涵盖防火墙规则基础、IPsec身份验证与加密机制、服务器和域隔离实现方法、WFAS中新旧IPsec规则的区别与配置流程,并详细说明了防火墙属性与规则的优先级计算方式。同时介绍了证书服务、EFS等未详述的安全功能及相关学习资源,帮助管理员通过组策略有效提升网络安全性。

onion的博客 102

温度PID控制PLC程序

温度PID稳定控制程序,适用于欧姆龙PLC,对其他PLC也具有很大参考价值

mysql galera haproxy_miradb+galera+haproxy+keepalived实现mysql负载均衡与高可用

galera简介:galera为msyql/mariadb提供主主复制,所有的msyql/mariadb server是对等的,不分主从关系。下面搭建miradb+galera本次环境为2台虚拟机,操作系统均为centos7 其中 :node1:192.168.8.59node2:192.168.8.1401、关闭防火墙和selinux2、配置yum源[mariadb]name=MariaD...

weixin_31292909的博客 547

锂电池充电器电路设计 里面有电路

锂电池充电器电路设计 里面有电路 3.7V升压到5V电路设计。

mysql环形复制加HA_mysql复制+keepalived+haproxy配置(负载均衡)

双主+keepalived+haproxy配置(负载均衡)实验系统:CentOS 6.5_x86_64实验前提:防火墙和selinux都关闭实验软件:keepalived-1.2.13  haproxy-1.8.13  mysql—5.7.21主1 ip:192.168.226.134主2 ip:192.168.226.135vip 192.168.226.150一、安装mysql获取my...

weixin_39955781的博客 162

VB摄像头监控

该VB模块可对摄像头捕获的画面进行录像等,可在创建的窗口进行控制

jdk-8u144-linux-x64.tar.gz.

该资源为搭建Linux系统Java环境用,资源的后缀为tar.gz格式的压缩包

keepalived+haproxy实现mysql负载均衡高可用

环境准备 操作系统CentOS 6.9 Haproxy+keepalived(h1) 192.168.20.135 Haproxy+keepalived(h2) 192.168.20.136 Mysql主 192.168.20.139 Mysql...

小树苗 2278

haproxy配置mysql_利用keepalived和haproxy配置mysql的高可用负载均衡

实验系统:CentOS 6.6_x86_64(2.6.32-504.30.3.el6.x86_64)实验前提:防火墙和selinux都关闭实验说明:本实验共有4台主机,IP分配如拓扑实验软件:keepalived-1.2.19  haproxy-1.5.14  mariadb-10.0.20下载地址:http://pan.baidu.com/s/1bnnYiMr实验拓扑:一、安装mariadb1....

weixin_33067503的博客 395

mysql galera haproxy_CentOS7+MySQL/MariaDB+Galera+HAProxy+Keepalived构建高可用数据库集群

方案优势:Galera能够实现MySQL/MariaDB数据库的主主复制和多主复制等模式,这些复制模式都是同步进行的,同步时间非常短每一个节点都可以同时写入和读取,当某一节点发生故障时,可自动从集群中自动剔除HAProxy能提供负载均衡和故障判断等功能解决服务器系统存在的单点故障Keepalived能提供客户端连接数据库时使用的虚拟IP地址(VIP)关于HAProxy的负载均衡算法轮询方式(rou...

weixin_32237603的博客 291

mysql 代理 双主_MySQL日常运维之 MySQL双主复制+keepalived+haproxy配置(负载均衡)...

MySQL日常运维之 MySQL双主复制+keepalived+haproxy配置(负载均衡)实验系统:CentOS 6.5_x86_64实验前提:防火墙和selinux都关闭实验软件:keepalived-1.2.13  haproxy-1.8.13  mysql—5.7.21主1 ip:192.168.226.134主2 ip:192.168.226.135vip 192.168.226.15...

weixin_35218304的博客 197

haproxy对mysql主主复制的负载均衡中配keepalived实现高可用

突破单点故障限制,实现热备防止宕机 在主主复制的基础和负载均衡的基础之上用keepalived实现热备 keepalived 提供一个vip 虚拟的ip,并监测haproxy1和haproxy2的运行情况,让这个vip在两者间进行抢占(机制有默认,有优先,有宕机后另一个自动获取) keepalived的安装 yum 安装方式 keepalived-1.2.13-5.el6_6.x86_6...

weixin_43945743的博客 700
上一篇: Spring boot集成Quartz与RabbitMQ
下一篇: SpringBoot集成HttpClient
AlainGogogo
博客等级 码龄18年 5粉丝 20原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值