keepalived+mysql高可用
一.设置mysql同步信息
两节点安装msyql略
#配置节点1
1.配置权限
允许远程访问
mysql -u root -p
grant all on *.* to root@'%' identified by 'Root1212@#' with grant option;
flush privileges;
2.修改my.cnf
#作为主节点配置(节点1)
#作为主节点配置
server-id = 1 #节点ID
log_bin = mysql-bin.log #日志
binlog_format = "ROW" #日志格式
auto_increment_increment = 2 #自增ID间隔(=节点数,防止ID冲突)
auto_increment_offset = 1 #自增ID起始值(节点ID)
#binlog_ignore_db=mysql #不同步的数据库
#binlog_ignore_db=information_schema
#binlog_ignore_db=performance_schema
# 作为从节点配置(节点2),mysql修改my.cnf
server-id = 2
log_bin = mysql-bin.log
relay_log = mysql-relay-bin.log #中继日志
log_slave_updates = ON #中继日志执行后,变化计入日志
read_only = 0
binlog_format = "ROW"
auto_increment_increment = 2
auto_increment_offset = 2
#binlog_ignore_db=mysql
#binlog_ignore_db=information_schema
#binlog_ignore_db=performance_schema
#replicate_ignore_db=mysql
#replicate_ignore_db=information_schema
#replicate_ignore_db=performance_schema
3.开启同步(节点1)
mysql -P3306 -hxxx.xxx.xxx.xxx -uroot -p密码
CHANGE MASTER TOMASTER_HOST='10.10.16.50',MASTER_USER='root',MASTER_PASSWORD='Rootsql1212@#',MASTER_LOG_FILE='mysql-bin.000001',MASTER_LOG_POS=2959;
MASTER_HOST='10.10.16.50' 节点2的ip
MASTER_USER='root', 节点2的mysql用户名
MASTER_PASSWORD='密码',节点2的mysql密码
MASTER_LOG_FILE='mysql-bin.000014', 和 MASTER_LOG_POS=453768;;为节点2同步日志位置。
查看节点2的MASTER_LOG_FILE和MASTER_LOG_POS
#登录主节点2,mysql
mysql -P3306 -h10.10.16.50 -uroot -pRootsql1212@#
show master status
节点2配置主从,需要暂停同步stop slave,如果不暂停同步,则无法设置同步信息。
mysql -P3306 -hxx.xx.xx.xx -uroot -p密码#暂停同步
stop slave;#同步信息设置
CHANGE MASTER TOMASTER_HOST='10.10.16.44',MASTER_USER='root',MASTER_PASSWORD='密码',MASTER_LOG_FILE='binlog.000014',MASTER_LOG_POS=490354;#开启同步
start slave;
MASTER_HOST='10.10.16.44' 节点1的ip
MASTER_USER='root', 节点1的mysql用户名
MASTER_PASSWORD='密码',节点1的mysql密码
MASTER_LOG_FILE=binlog.000014 和 MASTER_LOG_POS=490354;为节点1同步日志位置。
查看节点1的MASTER_LOG_FILE和MASTER_LOG_POS
#登录主节点2,mysql
mysql -P3306 -h10.10.16.40 -uroot -pRootsql1212@#
show master status
#在mysql里面查看同步状态 Slave_IO_Running和Slave_SQL_Running需要均为Yes
show slave status\G;
二.安装keepalived
两节点服务器都安装keepalived
#编译安装
安装依赖
sudo apt install gcc # 安装gcc
sudo apt install make # 安装make
sudo apt install libssl-dev # 安装ssl编译依赖文件
sudo apt install libnfnetlink-dev # 安装libnfnetlink-dev
sudo apt install libnl-3-dev # 安装libnl-3-dev
sudo apt install libnl-genl-3-dev # 安装libnl-genl-3-dev
安装
cd /usr/local
wget https://www.keepalived.org/software/keepalived-2.2.2.tar.gz
tar -zxvf keepalived-2.2.2.tar.gz
mv keepalived-2.2.2 keepalived
cd /usr/local/keepalived
./configure --prefix=/usr/local/keepalived
sudo make && make install
#开启日志
sudo vim /etc/rsyslog.d/50-default.conf
*.=info;*.=notice;*.=warn;\
auth,authpriv.none;\
cron,daemon.none;\
mail,news.none -/var/log/messages
打开日志
sudo service rsyslog restart
#查看日志
tail -f /var/log/messages
复制文件:
sudo mkdir /etc/sysconfig
sudo cp /usr/local/keepalived/etc/sysconfig/keepalived /etc/sysconfig/
sudo cp /usr/local/keepalived/sbin/keepalived /sbin/
sudo mkdir /etc/keepalived
sudo cp /usr/local/keepalived/etc/keepalived/keepalived.conf /etc/keepalived/
配置节点信息
节点1 :
vim /etc/keepalived/keepalived.conf
bal_defs {router_id MYSQL_HA #当前节点名
}
vrrp_instance VI_1 {state BACKUP #两台配置节点均为BACKUPinterface enahisic2i0 #绑定虚拟IP的网络接口virtual_router_id 51 #VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组priority 101 #节点的优先级,另一台优先级改低一点advert_int 1 #组播信息发送间隔,两个节点设置必须一样nopreempt #不抢占,只在优先级高的机器上设置即可,优先级低的机器不设置authentication { #设置验证信息,两个节点必须一致auth_type PASSauth_pass 123456}virtual_ipaddress { #指定虚拟IP,两个节点设置必须一样192.168.1.111}
}
virtual_server 192.168.1.111 3306 { #linux虚拟服务器(LVS)配置delay_loop 2 #每个2秒检查一次real_server状态lb_algo wrr #LVS调度算法,rr|wrr|lc|wlc|lblc|sh|dhlb_kind DR #LVS集群模式 ,NAT|DR|TUNpersistence_timeout 60 #会话保持时间protocol TCP #使用的协议是TCP还是UDPreal_server 10.10.16.44 3306 {weight 3 #权重notify_down /usr/local/bin/mysql.sh #检测到服务down后执行的脚本TCP_CHECK {connect_timeout 10 #连接超时时间nb_get_retry 3 #重连次数delay_before_retry 3 #重连间隔时间connect_port 3306 #健康检查端口}}
}
重启keepalived
systemctl daemon-reload
service keepalived restart
查看虚拟ip
ip addr show enahisic2i0
节点2:
vim /etc/keepalived/keepalived.conf
bal_defs {router_id MYSQL_HA #当前节点名
}
vrrp_instance VI_1 {state BACKUP #两台配置节点均为BACKUPinterface enahisic2i0 #绑定虚拟IP的网络接口virtual_router_id 51 #VRRP组名,两个节点的设置必须一样,以指明各个节点属于同一VRRP组priority 100 #节点的优先级,另一台优先级改低一点advert_int 1 #组播信息发送间隔,两个节点设置必须一样nopreempt #不抢占,只在优先级高的机器上设置即可,优先级低的机器不设置authentication { #设置验证信息,两个节点必须一致auth_type PASSauth_pass 123456}virtual_ipaddress { #指定虚拟IP,两个节点设置必须一样192.168.1.111}
}
virtual_server 192.168.1.111 3306 { #linux虚拟服务器(LVS)配置delay_loop 2 #每个2秒检查一次real_server状态lb_algo wrr #LVS调度算法,rr|wrr|lc|wlc|lblc|sh|dhlb_kind DR #LVS集群模式 ,NAT|DR|TUNpersistence_timeout 60 #会话保持时间protocol TCP #使用的协议是TCP还是UDPreal_server 10.10.16.50 3306 {weight 3 #权重notify_down /usr/local/bin/mysql.sh #检测到服务down后执行的脚本TCP_CHECK {connect_timeout 10 #连接超时时间nb_get_retry 3 #重连次数delay_before_retry 3 #重连间隔时间connect_port 3306 #健康检查端口}}
}
重启keepalived
systemctl daemon-reload
service keepalived restart
查看虚拟ip
ip addr show enahisic2i0
虚拟ip只存在一个节点上
测试是否成功:
mysql -P3306 -h192.168.1.111 -uroot -pRootsql1212@#
停止其中的一个节点mysql
查看ip是否漂移到另一个节点
ip addr show enahisic2i0
另外mysql是否还可以登录
mysql -P3306 -h192.168.1.111 -uroot -pRootsql1212@#
相关文章:
keepalived+mysql高可用
一.设置mysql同步信息两节点安装msyql略#配置节点11.配置权限允许远程访问mysql -u root -p grant all on *.* to root% identified by Root1212# with grant option; flush privileges;2.修改my.cnf#作为主节点配置(节点1)#作为主节点配置 server-id 1 …...
JAVA工具篇--1 Idea中 Gradle的使用
前言: 既然我们已经使用Maven 来完成对项目的构建,为什么还要使用Gradle 进行项目的构建;gradle和maven都可以作为java程序的构建工具,但两者还是有很大的不同之处的:1.可扩展性,gradle比较灵活,…...
弄懂自定义 Hooks 不难,改变开发认知有点不习惯
前言 我之前总结逻辑重用的时候,就一直在思考一个问题。 对于逻辑复用,render props 和 高阶组件都可以实现,同样官方说 Hooks 也可以实现,且还是在不增加额外的组件的情况下。 但是我在项目代码中,没有找到自定义 …...
Java面向对象基础
文章目录面向对象类注意事项内存机制构造器this关键字封装javabean格式成员变量和局部变量区别static静态关键字使用成员方法使用场景内存机制注意事项static应用:工具类static应用:代码块静态代码块实例代码块(用的比较少)static…...
基于python下selenium库实现交互式图片保存操作(批量保存浏览器中的图片)
Selenium是最广泛使用的开源Web UI(用户界面)自动化测试套件之一,可以通过编程与浏览量的交互式操作对网页进行自动化控制。基于这种操作进行数据保存操作,尤其是在图像数据的批量保存上占据优势。本博文基于selenium 与jupyterla…...
一:Datart的下载、本地运行
前言:本文只是个人在使用datart的一个记录,仅供参考。如果有不一样的地方,欢迎评论或私信进行交流。datart 是新一代数据可视化开放平台,支持各类企业数据可视化场景需求,如创建和使用报表、仪表板和大屏,进…...
Docker-compose
一.Docker-compose概述Docker-Compose项目是Docker官方的开源项目,负责实现对Docker容器集群的快速编排。Docker-Compose将所管理的容器分为三层,分别是 工程(project),服务(service)以及容器&a…...
经典文献阅读之--PLC-LiSLAM(面,线圆柱SLAM)
0. 简介 对于激光SLAM来说,现在越来越多的算法不仅仅局限于点线等简答特征的场景了,文章《PLC-LiSLAM: LiDAR SLAM With Planes, Lines,and Cylinders》说到,平面、线段与圆柱体广泛存在于人造环境中。为此作者提出了一个使用这些landmark的…...
计算组合数Cnk即从n个不同数中选出k个不同数共有多少种方法math.comb(n,k)
【小白从小学Python、C、Java】 【计算机等级考试500强双证书】 【Python-数据分析】 计算组合数Cnk 即从n个不同数中选出k个不同数共有多少种方法 math.comb(n,k) 以下python代码输出结果是? import math print("【执行】print(math.comb(3,1))") print(math.comb(…...
工厂设计模式
基本概念:为创建对象提供过渡接口,以便将创建对象的具体过程屏蔽隔离起来,达到提高灵活性的目的。分为三类:简单工厂模式Simple Factory:不利于产生系列产品;工厂方法模式Factory Method:又称为…...
IO多路转接 —— poll和epoll
文章目录1. poll1.1 poll的函数接口1.2 poll的简单测试程序1.3 poll的优缺点分析2. epoll2.1 epoll的函数接口2.2 epoll的工作原理2.3 epoll的工作模式(LT,ET)2.4 epoll的简易服务器实现(默认是LT工作模式)前言: 接上文讲述的select,它有缺点,…...
计算机网络整理-问答
1. 程序工作的时候网络各层的状态 如下图所示: 1. TCP 在进行三次握手的时候,IP 层和 MAC 层对应都有什么操作呢? TCP 三次握手是通过在传输层建立连接的一个过程,在这个过程中,TCP 和 IP 层、MAC 层都起到了重要的…...
JS 实现抛物线动画案例
相信大家都有浏览过,很多购物网站购物车的添加商品动画,今天,我们就手写一个简单的抛物线动画,先上案例: 一、绘制页面 我们这里简单实现,一个按钮,一个购物车图标,样式这里直接跳过…...
CSGO搬砖项目,23年最适合小白的项目!
大家好,我是阿阳 不懂的小伙伴,咱继续听我娓娓道来 steam搬砖主要涉及的是csgo游戏平台装备的一个搬运,比较很好理解,主要就是道具的搬运工,简单来讲就是,从国外steam游戏平台购买装备,再挂到…...
谈谈会话管理
客户端和服务器之间进行数据传输遵循的是HTTP协议, 此协议属于无状态协议(一次请求对应一次响应, 响应完之后断开连接), 服务器是无法跟踪客户端的请求, 通过cookie技术可以给客户端添加一个标识, 客户端之后发出的每次请求都会带着这个标识从而让服务器识别此客户端, 但由于co…...
Linux查看JVM FULL GC频率
查看系统的full gc频率,可以使用jstack命令一、采用top命令定位进程登录服务器,执行top命令,查看CPU占用情况,找到进程的pid二、使用jstack命令统计垃圾回收jstat -gc pid 5000即会每5秒一次显示进程号为pid的java进程的GC情况以上…...
java世界String的那些事
String的创建机理: 由于String在Java世界中使用过于频繁,Java为了避免在一个系统中产生大量的String对象,引入了字符串常量池。其运行机制是:创建一个字符串时,首先检查池中是否有值相同的字符串对象,如果…...
【图像配准】多图配准/不同特征提取算法/匹配器比较测试
前言 本文首先完成之前专栏前置博文未完成的多图配准拼接任务,其次对不同特征提取器/匹配器效率进行进一步实验探究。 各类算法原理简述 看到有博文[1]指出,在速度方面SIFT<SURF<BRISK<FREAK<ORB,在对有较大模糊的图像配准时&…...
2023金三银四季跳槽季,啃完这软件测试面试题,跳槽不就稳稳的了
前言 2023年也到来了,接近我们所说的“金三银四”也正在执行了,时间晃眼就过去了,有的人为了2023跳槽早早做足了准备,有的人在临阵磨刀,想必屏幕前的你也想在2023年涨薪吧,那么问题来了,怎么才…...
【C++详解】——vector类
📖 前言:本期介绍vector类。 目录🕒 1. vector的介绍🕒 2. vector的使用🕘 2.1 定义🕘 2.2 iterator🕘 2.3 空间增长🕘 2.4 增删查改🕒 2. vector的模拟实现🕘…...
uniapp 离线本地打包
uniapp打包教程地址 https://nativesupport.dcloud.net.cn/AppDocs/usesdk/android.html点击查看 需要的环境: java (1.8)离线SDK(上面的连接下载即可)Android Studio(同上) 配置环境变量 依次点击“计算机”-“属性”&#…...
初识马尔科夫模型(Markov Model)
初识马尔科夫模型(Markov Model)一、概念二、性质三、学习步骤一、概念 马尔科夫模型(Markov Model)是一种概率模型,用于描述随机系统中随时间变化的概率分布。马尔科夫模型基于马尔科夫假设,即当前状态只…...
CentOS7 ifconfig(或 ip addr)命令不显示IP地址
问题(因为当时没有存图 所以这个图上是网上找的 )解决办法第一:可能是本地服务没有开启,检查本地服务。如图所示,检查这两个服务是否开启。注:如何快速找到服务 可以把光标放在其中一个上面 然后按下VM就可…...
2023/2/10总结
拓扑排序 拓扑排序是在一个有向无环图(DAG)所有顶点的线性排序。 拓扑排序核心思想非常简单,就是先找一个入度为0的顶点输出,再从图中删除该顶点和以它为起点的有向边。继续上面的操作知道所有的顶点访问完为止。 入度…...
2023最新版!宝塔面板Docker自建Bitwarden密码管理
Powered by:NEFU AB-IN 请一定要结合B站视频食用!!!!,下面的博客总体来说只是起到提纲作用 B站视频链接!!! 文章目录2023最新版!宝塔面板Docker自建Bitwarden密码管理前…...
【Hello Linux】 Linux基础命令
作者:小萌新 专栏:Linux 作者简介:大二学生 希望能和大家一起进步! 本篇博客简介:介绍Linux的基础命令 Linux基础命令ls指令lsls -als -dls -ils -sls -lls -nls -Fls -rls -tls -Rls -1总结思维导图pwd指令whoami指令…...
151、【动态规划】leetcode ——2. 01背包问题:二维数组+一维数组(C++版本)
题目描述 原题链接:2. 01背包问题 解题思路 (1)二维dp数组 动态规划五步曲: (1)dp[i][j]的含义: 容量为j时,从物品1-物品i中取物品,可达到的最大价值 (2…...
2023-02-09 - 3 Elasticsearch基础操作
本章主要介绍ES的基础操作,具体包括索引、映射和文档的相关操作。其中,在文档操作中将分别介绍单条操作和批量操作。在生产实践中经常会通过程序对文档进行操作,因此在介绍文档操作时会分别介绍DSL请求形式和Java的高级REST编码形式。 1 索引…...
云原生系列之使用 prometheus监控MySQL实战
文章目录前言一. 实验环境二. 安装MySQL5.72.1 配置yum源2.2 安装MySQL之前的环境检查2.3 开始使用yum安装2.4 启动MySQL并测试三. 安装MySQL_exporter3.1 MySQL_exporter的介绍3.2 mysql_exporter的安装3.3 设置MySQL账户,用于数据收集3.4 启动mysql_exporter3.5 配…...
电脑分盘怎么分?分盘详细教程来了,图文教学
电脑作为小伙伴日常生活使用的工具,很多事情都需要使用电脑来进行处理。虽然小伙伴使用电脑比较多,但是还是有不少的小伙伴不知道电脑分盘怎么分?其实电脑分盘很简单,下面小编就以图文教学的方式,详细的向小伙伴介绍电…...
惠网 做网站/专业培训
那些年我们写过的爬虫 从写 nodejs 的第一个爬虫开始陆陆续续写了好几个爬虫,从爬拉勾网上的职位信息到爬豆瓣上的租房帖子,再到去爬知乎上的妹子照片什么的,爬虫为我打开了一扇又一扇新世界的大门。除了涨了很多姿势之外,与网管斗…...
学美工难吗/seo 重庆
导出题库试题(101~200)共计677道试题478).在Access中,将"工资一月表","工资二月表"……中的字段"姓名"与"名单表"中的字段"姓名"建立关系,且各个月的工资表的记录都是惟一的,名单表的记录也是惟一的,…...
番禺网站排名优化公司/慧生活798app下载
Python微信订餐小程序课程视频 https://edu.csdn.net/course/detail/36074 Python实战量化交易理财系统 https://edu.csdn.net/course/detail/35475 目录* - * 版本说明 一、概述二、基本构建三、Git 导入编译器四、模块描述浅析五、配置文档 application.yml修改,涉及模块…...
佛山市建设小学网站/网络营销优化培训
IIS最近有个别客户反映购买的在线人数(IIS连接数)和实际不符合,现在特说明如下首先了解什么是IIS连接数。IIS连接数指并发连接数,什么意思呢?要分几种情况:(以100M空间50人在线为例)A 用户单点下载你的文件,结束后正常…...
个体可以做企业网站吗/市场调研怎么写
总结1. 实现的功能2. 遇到的问题1. 文件输入输出操作不熟悉1. 实现的功能 void Inputs(); //输入某个人的信息 void Add_infor(); //增加个人信息 void Payment(); //缴纳费用 void Search_infor(); //查询某个人的信息 void revise_infor(); //修改信息 void Sea…...
网站建设属于淘宝哪种类目/电子商务
项目里需要用到扫描二维码,自己实现,不会。 找到了两种解决方案: 通过reqrcode.js,这是一个前端解析二维码内容的js库。如果二维码比较清晰,用这种效果也不错调用微信扫一扫功能,这种效果很好。但是调试接口…...