目的使用docker安装mysql主从集群
docker pull mysql:5.7.33
mkdir -p mydata/mysql/master/log
mkdir -p mydata/mysql/master/data
mkdir -p mydata/mysql/master/conf
docker run -p 3307:3306 --name mysql-master -v /mydata/mysql/master/log:/var/log/mysql -v /mydata/mysql/master/data:/var/lib/mysql -v /mydata/mysql/master/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.33
docker run -p 3308:3306 --name mysql-slave1 -v /mydata/mysql/slave1/log:/var/log/mysql -v /mydata/mysql/slave1/data:/var/lib/mysql -v /mydata/mysql/slave1/conf:/etc/mysql --link mysql-master:master -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.33
docker run -p 3309:3306 --name mysql-slave2 -v /mydata/mysql/slave2/log:/var/log/mysql -v /mydata/mysql/slave2/data:/var/lib/mysql -v /mydata/mysql/slave2/conf:/etc/mysql --link mysql-master:master -e MYSQL_ROOT_PASSWORD=root -d mysql:5.7.33
映射文件夹修改配置
vi /mydata/mysql/conf/my.conf
下面是my.conf配置文件内容
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
[mysqld]
init_connect='SET collation_connection = utf8_unicode_ci'
init_connect='SET NAMES utf8'
character-set-server=utf8
collation-server=utf8_unicode_ci
skip-character-set-client-handshake
skip-name-resolve
再修改my.cnf配置
vi /mydata/mysql/conf/my.cnf
下面是my.cnf配置文件内容
[mysqld]
log-bin=/var/lib/mysql/mysql-bin
server-id=1001
expire_logs_days = 30
docker restart mysql
docker exec -it mysql bash
mysql -u root -p
ALTER USER 'root'@'localhost' IDENTIFIED BY 'Lens2022'
grant replication slave on . to 'upstream'@'%' identified by '123456'
flush privileges
show variables like '%log_bin%'
show master status\G
stop slave
change master to master_host='master', master_user='slave', master_password='123456', master_port=3307, master_log_file='mysql-bin.000001', master_log_pos=154, master_connect_retry=30
start slave
show slave status\G
什么是高可用?高可用其实就是可以实现自动故障转移。当主节点挂了之后其他节点可以自动顶上,防止节点出现故障时MySQL不能对外提供服务。
MySQL的高可用解决方案其实有很多种(想了解自行百度),这里只说其中一种:MHA。这也是当前比较主流的方案。
在搭建MHA之前应该先保证已经安装配置好了MySQL的主从/集群。因为既然是高可用架构,那么针对的肯定是多台设备,单机的话谈不上高可用。
MySQL的主从搭建过程这里就不说了,可以看这里: MySQL搭建主从架构
本次搭建环境:centos7.8 + mysql5.7.31
现在的架构是 :
101:主节点
102:从节点1
103:从节点2
手动将101的MySQL主节点关闭,在102的节点上查看VIP,发现配置的VIP:192.168.232.105已经从101节点漂移到102节点了。
然后在103的节点上可以看到主节点确实已经变成了 102
到此,MHA 搭建大功告成啦!
MHA 的切换过程,共包括以下的步骤:
最后说明一点,宕机的节点,重启后由于MySQL机制问题不会自动加入到集群中,需要我们手动加入。
如果Master收到所有 Slave的OK消息,它就会向所有Slave发送提交消息,告诉Slave提交该事务;
如果Slave收到提交请求,它们就会提交事务,并向Master发送事务已提交 的确认;
如果Slave收到取消请求,它们就会撤销所有改变并释放所占有的资源,从而中止事务,然后向Masterv送事务已中止的确认。
随着计算机和信息技术的迅猛发展和普及,行业应用系统的规模迅速扩大,行业应用所产生的数据量量呈爆炸式增长,类似于MySQL集群这样的技术得到了广泛的运用,MySQL集群原理的运用就显得尤其重要。
动力节点的MySQL集群教程 ,对于MySQL集群技术的应用场景有着详细的介绍,能够有效帮助我们学以致用, 教程主要从MySQL集群架构解析到架构部署再到集群架构测试,一步步带你部署企业级的MySQL数据库集群项目,熟悉各个环节技术点,提升数据库架构设计能力。
https://www.bilibili.com/video/BV1Rg4y1i7VR
http://www.bjpowernode.com/?toutiao
•001.MySQL集群视频教程:主从复制介绍
•002.MySQL集群视频教程:主从复制结构
•003.MySQL集群视频教程:主从复制流程原理
•004.MySQL集群视频教程:多实例安装
•005.MySQL集群视频教程:多实例链接
•006.MySQL集群视频教程:一主多从-配置
•007.MySQL集群视频教程:-一主多从测试
•008.MySQL集群视频教程:双主双从配置
•009.MySQL集群视频教程:双主双从测试
•010.MySQL集群视频教程:多数据源-环境搭建
•011.MySQL集群视频教程:多算数据源实现
•012.MySQL集群视频教程:修复MySLQ主从复制
•013.MySQL集群视频教程:多数据源的问题
•014.MySQL集群视频教程:动态数据源
•015.MySQL集群视频教程:动态数据源执行流程
•016.MySQL集群视频教程:SpringBoot集成多数据源
•017.MySQL集群视频教程:SpringBoot集成多数据源问题
•018.MySQL集群视频教程:SpringBoot集成动态数据源
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)