mysql主从复制

Mysql作为目前世界上使用最广泛的免费数据库,相信所有从事系统运维的工程师都一定接触过。但在实际的生产环境中,由单台Mysql作为独立的数据库是完全不能满足实际需求的,无论是在安全性,高可用性以及高并发等各个方面。

因此,一般来说都是通过 主从复制(Master-Slave)的方式来同步数据,再通过读写分离(MySQL-Proxy)来提升数据库的并发负载能力 这样的方案来进行部署与实施的。

 

mysql主从复制(异步)

主从复制是指一台服务器充当主数据库服务器,另一台或多台服务器充当从数据库服务器,主服务器中的数据自动复制到从服务器之中。

1、基于语句的复制:主服务器上面执行的语句在从服务器上面再执行一遍,在MySQL-3.23版本以后支持。

存在的问题:时间上可能不完全同步造成偏差,执行语句的用户也可能是不同一个用户。

2、基于行的复制:把主服务器上面改编后的内容直接复制过去,而不关心到底改变该内容是由哪条语句引发的,在MySQL-5.0版本以后引入。

存在的问题:比如一个工资表中有一万个用户,我们把每个用户的工资+1000,那么基于行的复制则要复制一万行的内容,由此造成的开销比较大,而基于语句的复制仅仅一条语句就可以了。

3、混合类型的复制:MySQL默认使用基于语句的复制,当基于语句的复制会引发问题的时候就会使用基于行的复制,MySQL会自动进行选择。

配置步骤

两个相同版本的Mysql--不同服务器(ubuntu-mysql5.7)

主(47.105.85.89)
1,配置授权用户
GRANT REPLICATION SLAVE ON *.* to 'repl'@'134.175.43.128' identified by 'password';
FLUSH PRIVILEGES;

2,开启binlog,并设置server-id(唯一标识服务器),设置在[mysqld]下,重启mysql
log-bin = mysql-bin
server_id = 128(从服务器ip段)
binlog-do-db = test
log-slave-updates 

show master status\G;


从(134.175.43.128)

1,同样配置,重启

2,启动数据库同步命令
change master to master_host='47.105.85.89',
master_user='repl',
master_password='password',
master_log_file='mysql-bin.000001',
master_log_pos=0

3,开始复制
start slave;

show slave status\G;


mysql 5.7.17之后,支持mysql group replication

install plugin group_replication soname 'group_replication.so';插件

单主模式
在单主模式下,只有一个节点可以可以读写,其他节点只能提供读

多主模式
在多主模式下,在加入该群组的所有成员,所有服务器都设置为读写模式,在多主模式下,不支持SERIALIZABLE事务隔离级别

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值