当前位置: 首页 > news >正文

笔记:mysql双主,keepalived 配置

准备工作

1,两台主机,3个IP
mysql-1:192.168.0.1
mysql-2:192.168.0.2
vip 192.168.0.3

2,mysql安装包
下载地址:https://dev.mysql.com/downloads/mysql/

3,keepalived安装包
下载地址:https://www.keepalived.org/download.html

4,已验证的版本兼容
CentOS release 6.7 (Final) 兼容 keepalived-1.2.24

安装mydwl

1,安装mysql软件

2,配置my.cnf
两台主机使用不同的 server-id

[client]
port=3306
socket=/data9/mysql/log/mysql.sock
#客户端编码
default-character-set=utf8[mysqld]
port=3306
basedir=/data9/mysql
datadir=/data9/mysql/data
socket=/data9/mysql/log/mysql.sock
log-error=/data9/mysql/log/mysql.log
pid-file=/data9/mysql/log/mysql.pidserver-id=1
log-bin=mysql-bin
#max_binlog_size = 500M
#expire_logs_days = 15
#主从同步时,需要同步的数据库,多个数据库写多行binlog_do_db配置
#binlog_do_db=test_db
#主从同步时,不需要同步的数据库,多个数据库写多行binlog_ignore_db配置
binlog_ignore_db=mysql
binlog_ignore_db=information_schema
binlog_ignore_db=sys
binlog_ignore_db=performance_schema
#主从同步方式
binlog_format=row
#服务端编码
character-set-server=utf8

双主配置

mysql-1创建用户并授权

grant replication slave on *.* to slave@'192.168.0.2' identified by 'slave';
flush privileges;

查看mysql-1

mysql> show master status;
+------------------+----------+--------------+-------------------------------------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB                                | Executed_Gtid_Set |
+------------------+----------+--------------+-------------------------------------------------+-------------------+
| mysql-bin.000002 |      154 |              | mysql,information_schema,sys,performance_schema |                   |
+------------------+----------+--------------+-------------------------------------------------+-------------------+
1 row in set (0.00 sec)

配置mysql-2对mysql-1的从库
登录mysql-2数据库

mysql> change master to -> master_host='192.168.0.1',-> master_port=3306, -> master_user='slave',-> master_password='slave', -> master_log_file='mysql-bin.000002',-> master_log_pos=154; mysql> start slave;

相同方式配置mysql-1对mysql-2的从库

keepalived

1,安装keepalived并创建shutdown.sh

[root@localhost ~]## cd /opt
[root@localhost opt]# yum -y install gcc openssl-devel popt-devel psmisc
[root@localhost opt]# tar -zxvf keepalived-2.3.1.tar.gz
[root@localhost opt]# cd keepalived-2.3.1
[root@localhost keepalived-2.3.1]# ./configure --prefix=/opt/keepalived-2.3.1
[root@localhost keepalived-2.3.1]# make && make install[root@localhost keepalived-2.3.1]mkdir /etc/keepalived
[root@localhost keepalived-2.3.1]cp keepalived/etc/keepalived/keepalived.conf.sample /etc/keepalived/keepalived.conf
[root@localhost keepalived-2.3.1]cp keepalived/etc/init.d/keepalived /etc/init.d/
[root@localhost keepalived-2.3.1]cp keepalived/etc/sysconfig/keepalived /etc/sysconfig/
[root@localhost keepalived-2.3.1]cp bin/keepalived /usr/sbin/
[root@localhost keepalived-2.3.1]vi /etc/keepalived/shutdown.sh
#!/bin/bash
#该脚本是在mysql服务出现异常时,将keepalived应用停止,从而使虚拟vip主机自动连接到另一台mysql上
killall keepalived
[root@localhost keepalived-2.3.1]chmod +x /etc/keepalived/shutdown.sh

2,查看网卡

bond0

[root@localhost ~]# ifconfig
bond0: flags=5187<UP,BROADCAST,RUNNING,MASTER,MULTICAST>  mtu 1500

3,配置keepalived
192.168.0.1:/etc/keepalived/keepalived.conf

! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_MASTERvrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_instance VI_1 {state MASTER#interface为刚才查到的本机网卡名称interface band0#同一网段中同一组virtual_router_id值相同。不同组virtual_router_id值唯一。virtual_router_id 212#字数越大,优先级越高,master必须大于backuppriority 100advert_int 1authentication {auth_type PASSauth_pass 2222}virtual_ipaddress {#该ip为虚拟出来的vip地址192.168.0.3}
}#配置virtual_server  ip为上面配置的虚拟vip地址  端口为mysql的端口
virtual_server 192.168.0.3 3306 {delay_loop 6lb_algo rrlb_kind NATpersistence_timeout 50protocol TCP#real_server 该配置为实际物理机ip地址 以及实际物理机mysql端口real_server 192.168.0.1 3306 {#当该ip 端口连接异常时,执行该脚本notify_down /etc/keepalived/shutdown.shTCP_CHECK {#实际物理机ip地址connect_ip 192.168.0.1#实际物理机port端口connect_port 3306connect_timeout 3nb_get_retry 3delay_before_retry 3}}
}

192.168.0.2:/etc/keepalived/keepalived.conf

! Configuration File for keepalivedglobal_defs {notification_email {acassen@firewall.locfailover@firewall.locsysadmin@firewall.loc}notification_email_from Alexandre.Cassen@firewall.locsmtp_server 127.0.0.1smtp_connect_timeout 30router_id LVS_MASTERvrrp_skip_check_adv_addrvrrp_strictvrrp_garp_interval 0vrrp_gna_interval 0
}vrrp_instance VI_1 {state MASTER#interface为刚才查到的本机网卡名称interface band0#同一网段中同一组virtual_router_id值相同。不同组virtual_router_id值唯一。virtual_router_id 212#字数越大,优先级越高,master必须大于backuppriority 100advert_int 1authentication {auth_type PASSauth_pass 2222}virtual_ipaddress {#该ip为虚拟出来的vip地址192.168.0.3}
}#配置virtual_server  ip为上面配置的虚拟vip地址  端口为mysql的端口
virtual_server 192.168.0.3 3306 {delay_loop 6lb_algo rrlb_kind NATpersistence_timeout 50protocol TCP#real_server 该配置为实际物理机ip地址 以及实际物理机mysql端口real_server 192.168.0.2 3306 {#当该ip 端口连接异常时,执行该脚本notify_down /etc/keepalived/shutdown.shTCP_CHECK {#实际物理机ip地址connect_ip 192.168.0.2#实际物理机port端口connect_port 3306connect_timeout 3nb_get_retry 3delay_before_retry 3}}
}

4,开机自启动并启动keepalived

[root@localhost keepalived-2.3.1]# systemctl enable keepalived
[root@localhost keepalived-2.3.1]# systemctl start keepalived

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • godis源码分析——Redis协议解析器
  • JVM内存泄露的ThreadLocal详解
  • 树莓派_Pytorch学习笔记20:初步认识深度学习框架
  • linux 查看历史命令列表来访问之前的内容的命令是:history
  • Backend - C# 操作PostgreSQL DB
  • RabbitMQ保证消息被成功发送和消费
  • 网络安全筑基篇——XSS、XML、XXE
  • 全新TTT架构:挑战Transformer和Mamba的霸主地位
  • 从Helm到 Operator:Kubernetes应用管理的进化
  • 二叉苹果树
  • 如何用Vue3和Plotly.js创建交互式表格?
  • 【亲测有效】Linux/Ubuntu远程服务器使用plt.show()没有反应,vscode ssh 远程ubuntu,plt.show不显示图片问题
  • 泰勒公式中拉格朗日余项和佩亚诺余项的区别及具体的应用场景案例
  • Vue3 根据相对路径加载vue组件
  • PostgreSQL 中如何处理数据的并发更新冲突解决?
  • 5、React组件事件详解
  • LeetCode刷题——29. Divide Two Integers(Part 1靠自己)
  • python大佬养成计划----difflib模块
  • Vue 重置组件到初始状态
  • vue--为什么data属性必须是一个函数
  • 分类模型——Logistics Regression
  • 关于 Linux 进程的 UID、EUID、GID 和 EGID
  • 回顾2016
  • 使用 Docker 部署 Spring Boot项目
  • 听说你叫Java(二)–Servlet请求
  • 为视图添加丝滑的水波纹
  • 看到一个关于网页设计的文章分享过来!大家看看!
  • LevelDB 入门 —— 全面了解 LevelDB 的功能特性
  • ​​​【收录 Hello 算法】10.4 哈希优化策略
  • ​LeetCode解法汇总518. 零钱兑换 II
  • ​必胜客礼品卡回收多少钱,回收平台哪家好
  • # Redis 入门到精通(八)-- 服务器配置-redis.conf配置与高级数据类型
  • (39)STM32——FLASH闪存
  • (Spark3.2.0)Spark SQL 初探: 使用大数据分析2000万KF数据
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (附源码)ssm基于web技术的医务志愿者管理系统 毕业设计 100910
  • (论文阅读23/100)Hierarchical Convolutional Features for Visual Tracking
  • (算法)区间调度问题
  • (转) 深度模型优化性能 调参
  • (转)fock函数详解
  • .ai域名是什么后缀?
  • .bat文件调用java类的main方法
  • .NET CF命令行调试器MDbg入门(一)
  • .net MySql
  • .net on S60 ---- Net60 1.1发布 支持VS2008以及新的特性
  • .NET(C#、VB)APP开发——Smobiler平台控件介绍:Bluetooth组件
  • .NET关于 跳过SSL中遇到的问题
  • .NET中winform传递参数至Url并获得返回值或文件
  • @RequestBody与@RequestParam:Spring MVC中的参数接收差异解析
  • [2009][note]构成理想导体超材料的有源THz欺骗表面等离子激元开关——
  • [20190401]关于semtimedop函数调用.txt
  • [ai笔记3] ai春晚观后感-谈谈ai与艺术
  • [Android Studio] 开发Java 程序
  • [BZOJ2281][SDOI2011]黑白棋(K-Nim博弈)
  • [C#] 基于 yield 语句的迭代器逻辑懒执行