mysql的主从复制

一、主从复制的原理

1.主从形式

  • mysql主从复制 灵活
  • mysql基于gtid的主从复制
  • mysql基于gtid的半同步主从复制

2.用途及条件

mysql主从复制用途

  • 实时灾备,用于故障切换
  • 读写分离,提供查询服务
  • 备份,避免影响业务

主从部署必要条件:

  • 主库开启binlog日志(设置log-bin参数)
  • 主从server-id不同
  • 从库服务器能连通主库

3.主从原理

从库生成两个线程,一个I/O线程,一个SQL线程;

i/o线程去请求主库 的binlog,并将得到的binlog日志写到relay log(中继日志) 文件中;

主库会生成一个 log dump 线程,用来给从库 i/o线程传binlog;

SQL 线程,会读取relay log文件中的日志,并解析成具体操作,来实现主从的操作一致,而最终数据一致;

二.部署

环境:

  • 虚拟机server1:master数据库
  • 虚拟机server2:slave数据库
  • 软件:mysql-5.7.24-1.el7.x86_64    ==>   点击下载

1.sever1:master节点

将软件使用scp传到server1和server2

安装mysql软件

yum install mysql-community-common-5.7.24-1.el7.x86_64.rpm 
mysql-community-client-5.7.24-1.el7.x86_64.rpm 
mysql-community-libs-5.7.24-1.el7.x86_64.rpm 
mysql-community-libs-compat-5.7.24-1.el7.x86_64.rpm 
mysql-community-server-5.7.24-1.el7.x86_64.rpm -y

然后修改数据库设置文件

vim /etc/my.cnf                    ##添加下面的语句

log-bin=mysql-bin
server-id=1

然后开启数据库软件

systemctl start mysqld
cat /var/log/mysqld.log | grep password                    ##查看数据库的初始密码
mysql_secure_installation                                  ##安全初始化,密码要复杂些,我设置的密码是Mysql1994.

进入数据库设置为master节点

mysql -pMysql1994.

 

mysql> grant replication slave on *.* to repl@'172.25.1.%' identified by 'Mysql1994.';
mysql> Flush privileges;
mysql> show master status;

如上,master节点就设置好了

 

2.sever2:slave节点

安装mysql软件

yum install mysql-community-common-5.7.24-1.el7.x86_64.rpm 
mysql-community-client-5.7.24-1.el7.x86_64.rpm 
mysql-community-libs-5.7.24-1.el7.x86_64.rpm 
mysql-community-libs-compat-5.7.24-1.el7.x86_64.rpm 
mysql-community-server-5.7.24-1.el7.x86_64.rpm -y

然后修改数据库设置文件

vim /etc/my.cnf                    ##添加下面的语句

server-id=2

然后开启数据库软件

systemctl start mysqld
cat /var/log/mysqld.log | grep password                    ##查看数据库的初始密码
mysql_secure_installation                                  ##安全初始化,密码要复杂些,我设置的密码是Mysql1994.

先测试以下远程用户是否可以登陆

进入数据库设置为slave节点

mysql -pMysql1994.
      mysql> change master to master_host='172.25.1.5',
          master_user='repl',
          master_password='Mysql1994.',
          master_log_file='mysql-bin.000002',
          master_log_pos=1398;
      mysql> start slave;
      mysql> show slave status\G

出现图片最下方的两个yes,这样就设置成功了

3.测试

思路:在server1上新建数据库和表格,然后在server2上查看是否同步

1)在server新建xupt数据库

mysql> create database xupt;

 

2)在server2上查看

ok~

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值