MySQL多主模型实战
mysql 实战
2023-06-13 09:12:43 时间
MySQL AB解决了数据备份的问题,但是当A由于某些原因宕机后,WEB服务器就没有办法在往数据库写或者读写了。线上业务中断了,完了,出事故了。这该怎么办呢?
本节课主要给大家讲解如果处理因为MySQL主服务器宕机造成的业务中断问题,保障MySQL业务高可用。
一、实验拓扑图
二、架构原理
1、MySQL互为主备,保障多台MySQL的数据强一致性。
2、VIP漂移,任何一台宕机都不影响数据读写
3、宕机服务器修复,自动同步故障间的缺失数据
三、实验准备
- 机器三台并设置好IP地址
- 关闭防火墙、selinux
- 时间同步
- node1、node2安装mysql
- manage01部署lamp
- 上线业务并进行容灾测试
- 知识储备点:MySQL AB复制
四、node1、node2互为主备
1、确认binlog开启
2、设置server-id
3、创建同步mysql用户
4、设置同步
#以node2为例
#创建用户
mysql> create user sko2 identified by "123456";
Query OK, 0 rows affected (0.00 sec)
mysql> grant replication slave on *.* to sko2;
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
#开始同步
#同步前 主服务器生成一个新binlog开始同步,防止之前的binlog中语句无法执行
mysql> stop slave;
Query OK, 0 rows affected, 1 warning (0.00 sec)
mysql> change master to
-> master_host='192.168.98.202',
-> master_user='sko',
-> master_password='98989',
-> master_log_file='binlog.000002',
-> master_log_pos=xxx;
Query OK, 0 rows affected, 3 warnings (0.01 sec)
mysql> start slave;
Query OK, 0 rows affected (0.00 sec)
五、manage01-lamp
# 部署lamp业务环境
[root@manage01 ~]# yum -y install httpd php php-mysql
[root@manage01 ~]# systemctl start httpd
[root@manage01 ~]# systemctl start php-fpm
[root@manage01 ~]# vim /var/www/html/phpinfo.php
#测试
<?php phpinfo(); ?>
六、配置MySQL高可用
1、模拟故障,将配有VIP的mysql宕机,手动回收VIP并配给另外一个运行的mysql服务器,查看业务是否正常。
2、恢复宕机mysql,查看宕机过程中的产生的数据是否能够从另外一个运行的mysql中恢复回来。
参考nginx高可用部署
https://www.zutuanxue.com/home/4/58_388
七、上线业务测试
a、拷贝站点
[root@manage01 ~]# cp -r 测试站点html/* /var/www/html/
b、安装站点 打开浏览器输入 http://IP/install.php
c、根据站点提示输入数据并查询,查询数据库数据同步情况
d、停止主mysql继续测试业务,确保正常工作
e、启动宕机mysql,确保停机期间的数据同步
相关文章
- Mysql:2003 - Can't connect to MySQL server on 'localhost' (10061 "Unknown error") 解决方法
- mysql如何获取当前时间_mysql怎么获取当前时间「建议收藏」
- MySQL Error number: MY-011664; Symbol: ER_GRP_RPL_FAILED_TO_UNREGISTER_BINLOG_STATE_OBSERVER; SQLSTATE: HY000 报错 故障修复 远程处理
- MySQL双向数据同步:实现数据无缝交互(mysql双向数据同步)
- MySQL中创建强大字符串函数的使用(mysql中的字符串函数)
- MySQL:累积汇总报告(mysql合计)
- MySQL 中字段值的计算与操作(mysql字段计算)
- C语言连接MySQL数据库实现快速网络查询(c链接mysql数据库)
- 如何更改MySQL数据库密码(更改mysql数据库密码)
- Mac无法连接MySQL:权限问题(mac没有权限mysql)
- MySQL: 使用驱动连接你的数据库(mysql的连接驱动)
- MySQL中灵活运用二进制数据(mysql二进制数据)
- MySQL实现自动任务:时间触发器特性分析(mysql时间触发器)
- MySQL的RPM安装方法,轻松实现数据库安装工作(mysql的rpm)
- 的root密码Linux重置MySQL Root密码的指南(linux忘记mysql)
- “MySQL批量删除表:简单高效的循环删除方法”(mysql循环删表)
- MySQL如何修改数据库名称(mysql 修改数据库名)
- MySQL实现精准的事务控制(mysql控制事务)
- MySQL中end的使用方法详解(mysql中end的用法)
- MySQL多版本锁机制全解析(mysql个版本的锁机制)
- MySQL实战技巧使用JOIN操作筛选两个表中不同数据(mysql两表筛不同)
- ADODB驱动MySQL快速便捷访问数据库(adodb访问mysql)
- 结构使用 cmdMySQL 查看表结构的快捷方法(cmd mysql查看表)
- MySQL实现一次性同时更新多条记录(mysql 一次更新多条)
- 解决方法MySQL如何查询不包含某个字的数据(mysql 不包含某个字)
- 全面解读MySQL从不以开头的基础到高级应用(mysql 不以开头)
- MySQL上机报告总结25字完整文章标题(mysql上机报告总结)
- 数据库如何解决mysql不能连接到数据库问题(mysql不能连接到)
- MySQL插入数据时遇到字母无法操作看这篇解决方案(mysql不能插入字母)
- MySQL连接串简化,无需配置了吗(mysql不用配连接串吗)