快速搭建MySQL主从同步

快速搭建MySQL主从同步

    概述:在实际生产环境中,如果对数据库的读和写都在同一个数据库服务器中操作,无论是在安全性、高可用性,还是高并发等各方面都是完全不能满足时间需求的,因此

    一般来说都是通过主从复制(Master-Slave)的方式来同步数据,再通过读写分离来提升数据库的并发负载能力。

    

    主从用途

    实时灾备,用于故障切换,主数据库出现问题,可以切换到从数据库

    读写分离,提供查询服务

  数据备份,避免影响业务


    下面通过实验案例来分析   

    一台主MySQL 两台从MySQL

    主 192.168.30.33/24           

    从 192.168.30.34/24         

       192.168.30.35/24        

image.png


    首先关闭防火墙和selinx

    service firewalld stop

    setenforce 0

1、 建立时间同步环境,在主节点上搭建时间同步服务器。

    yum install -y ntp

[root@lin3033 ~]# vi /etc/ntp.conf 

大约17行修改添加 约束网段和子网

image.png

[root@lin3033 ~]# systemctl start ntpd

接下来修改主MySQL的配置文件

[root@lin3033 ~]# vi /etc/my.cnf

全局配置模块下添加如下

image.png

[root@lin3033 ~]# systemctl restart mysqld


接下来配置两台从服务

slave1:

yum install -y ntp

ntpdate 192.168.30.33

echo '*/30 * * * * /usr/sbin/ntpdate 192.168.30.33' >> /var/spool/cron/root

image.png

[root@lin3035 ~]# vi /etc/my.cnf

image.png

[root@lin3035 ~]# systemctl restart mysqld


slave2:

yum install -y ntp

ntpdate 192.168.30.33

echo '*/30 * * * * /usr/sbin/ntpdate 192.168.30.33' >> /var/spool/cron/root

image.png

[root@lin3034 ~]# vi /etc/my.cnf

image.png

[root@lin3034 ~]# systemctl restart mysqld



数据库一主多从操作

 

Master:

 

授权用户相应权限

GRANT REPLICATION SLAVE ON *.* TO 'myslave'@'192.168.30.%' IDENTIFIED BY 'abc123';

                     授权myslave 登陆192.168.30。%网段  

FLUSH PRIVILEGES;

show master status; //要记下 Position 列的值 会变更,每次操作时需确认无变动才可进行下一步

image.png


slave1:

mysql> change master to master_host='192.168.30.33', master_user='myslave', master_log_file='mysql-bin.000001', master_log_pos=471;   

mysql> start slave;


slave  2

mysql> change master to master_host='192.168.30.33', master_user='myslave', master_log_file='mysql-bin.000001', master_log_pos=471;

mysql> start slave;


验证两台Slave_IO_Running、Slave_SQL_Running是否是YES,两个都是YES表示mysql主从复制配置成功了

mysql> show slave status \G

slave 1                             

image.png

slave 2

image.png


如果不放心可以在主服务器中创建一个库,之后看看两台从有没有

在主MySQL中添加一个数据库

mysql> create database client;

image.png

在两个从服务器中查看

image.png image.png



猜你喜欢

转载自blog.51cto.com/9075724/2326831
今日推荐