CentOS6.8下MySql5.7主从复制实现

一、简介
Mysql作为目前世界上使用最广泛的免费数据库,非常受到企业的欢迎。随着互联网用户的激增,在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面。

因此,一般来说都是通过 主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力,以此来提升整个系统的性能。
二、主从复制原理
在这里插入图片描述 主从复制原理图

1) 在每个事务更新数据完成之前,master在二进制日志记录这些改变。写入二进制日志完成后,master通知存储引擎提交事务。

2) Slave将master的binary log复制到其中继日志。首先slave开始一个工作线程(I/O),I/O线程在master上打开一个普通的连接,然后开始binlog dump process。binlog dump process从master的二进制日志中读取事件,如果已经跟上master,它会睡眠并等待master产生新的事件,I/O线程将这些事件写入中继日志。

3) Sql slave thread(sql从线程)处理该过程的最后一步,sql线程从中继日志读取事件,并重放其中的事件而更新slave数据,使其与master中的数据一致,只要该线程与I/O线程保持一致,中继日志通常会位于os缓存中,所以中继日志的开销很小。
三、配置
3.1 修改主MySQL配置文件my.cnf
进入配置文件:
# vi /etc/my.cnf
在[mysqld] 中添加下面配置。

server-id=128
log-bin=mysql-bin

重启MySQL:service mysqld restart
查看主MySQL状态:mysql>show master status;
mysql> show master status;
±-----------------±---------±-------------±-----------------±------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
±-----------------±---------±-------------±-----------------±------------------+
| mysql-bin.000004 | 154 | | | |
±-----------------±---------±-------------±-----------------±------------------+
1 row in set (0.00 sec)
在主库创建主从同步账号:
mysql> create user repl;
赋予远程登录权限:
mysql> grant replication slave on . to ‘repl’@‘192.168.2.129’ identified by ‘NewPassword’;
mysql> flush privileges; #刷新

3.2 修改从MySQL配置文件my.cnf
在[mysqld] 中添加下面配置。
server-id=129
relay-log=slave-relay-bin
relay-log-index=slave-relay-bin.index
重启从服务器:service mysqld restart

在从库连接主库:

mysql> 
change master to master_host='192.168.2.128',master_port=3306,master_user='repl',master_password='NewPassword',master_log_file='mysql-bin.000004',master_log_pos=0;

3.3 开启主从追踪

mysql> start slave;

查看主从同步是否开启:

mysql> show slave status \G;

当出现Slave_IO_Running: Yes , Slave_SQL_Running: Yes两项为yes,时,表示配置成功
Slave_IO_State: Waiting for master to send event
Master_Host: 192.168.2.128
Master_User: repl
Master_Port: 3306
Connect_Retry: 60。
Master_Log_File: mysql-bin.000004
Read_Master_Log_Pos: 306
Relay_Log_File: slave-relay-bin.000011
Relay_Log_Pos: 519
Relay_Master_Log_File: mysql-bin.000004
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
Replicate_Do_DB:
Replicate_Ignore_DB:
Replicate_Do_Table:
Replicate_Ignore_Table:
Replicate_Wild_Do_Table:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值