构建一个简单的MYSQL主从复制集群

该文章详细描述了一个使用两台2c/4GCentOS7.9服务器构建的MySQL主从复制集群项目,旨在提升数据库并发能力和业务处理能力。步骤包括系统准备、MySQL安装配置、主从服务器设置、用户授权、数据同步以及启动复制服务。作者探讨了主从复制的工作原理,并提出了对于主服务器故障时如何自动提升从服务器为主的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

项目名称:构建一个简单的MYSQL主从复制集群
项目环境:2台2c/4G的服务器(虚拟机),centos7.9,mysql 5.7.33
项目描述:
        为了提升MYSQL的并发能力构建一个简单的MYSQL集群,实现读写分离功能
        大大提升MYSQL集群的业务处理能力。同时深入学习MYSQL的整体的部署
        和对集群对集群架构的理解
项目步骤:
        1.准备好2台安装好系统的机器,使用脚本一键部署好二进制版本的MYSQL
        ,并且设置好my.cnf配置文件的内容。
        2.在master服务器上开启二进制日志和配置server_id,从服务器上
        配置server_id。
        3.在master上创建给slave过来复制二进制的用户
            3.1建用户
            create user 'sc_slave'@'192.168.118.161' identified by '123456'
            3.2授权
            grant replication slave on *.* to 'sc_slave'@'192.168.118.161';
        4.在master上做一个全备,导出数据,导入到slave,保持master和slave上的数据一致
            4.1    master上数据做全备,导出数据
            mysqldump -uroot -p123456 --all-databases >/backup/all_db.sql
            4.2 scp到slave上
            scp /backup/all_db.sql root@192.168.118.161:/root
            4.3 在slave上导入数据
            mysql -uroot -p123456 <all_db.sql
        5.在slave上配置去master上拉取二进制日志的用户名和密码和日志文件的
        名称和位置号等信息
            #flush logs
            #show master status; localhost-bin.000009 |      154
            5.1 在slave上启用master的信息
            CHANGE MASTER TO MASTER_HOST='192.168.118.160',
            MASTER_USER='sc_slave',
            MASTER_PASSWORD='123456',
            MASTER_PORT=3306,
            MASTER_LOG_FILE='localhost-bin.000009',
            MASTER_LOG_POS=154;
        6.在master和slave上要关闭防火墙和selinux
            service firewalld stop
            systemctl disable firewalld
            setenforce 0
            
        7.在slave服务器上启动slave服务,查看IO线程和SQL线程是否正常启动
            查看从服务器的状态 
            show slave status\G 垂直显示
            
            开启slave服务器
            start slave;
            
            #如果失败,清除所有master信息.重新输入配置
            reset slave all;

        7.启动slave后的效果
        *************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 192.168.118.160
                  Master_User: sc_slave
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: localhost-bin.000009
          Read_Master_Log_Pos: 325
               Relay_Log_File: slave-relay-bin.000002
                Relay_Log_Pos: 495
        Relay_Master_Log_File: localhost-bin.000009
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
        8.验证主从复制的效果
            8.1.在master上新建一个库或者插入一行数据,到slave上
            去查看是否有,如果有,说明主从复制成功,如果没有
            说明有问题
            
项目心得:
        通过这个项目,我更加了解两台机器之间是怎么传输数据的,对主从
        复制更深入的了解了一下,同时感受到了集群的魅力,两台机器
        容易出错,同时我在思考一个问题,如何让它更自动化。
        
思考的问题:
        如果主挂了,如何提升从为主?
            目前只能手动的停止从服务器上的slave服务,把业务
            的写和查询的操作都切到从服务器上。提升从服务器为主服务器。再搞一台服务器
            认原来的从服务器为主。要求原来的从服务器需要开启
            二进制日志。
        是否有自动进行主从切换操作的?
            1.脚本
            2.第三方软件
            
        主从复制搭建过程,怎么在mysql在提供服务的时候搭建主从复制

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值