MySQL高可用--主从复制与读写分离

一、Mysql高可用概念 



二、MySQL主从复制原理 


集群目的,减轻单台服务器压力



三、MySQL主从复制配置

实际操作mysql服务器集群,主从复制的过程

master   192.168.230.128
slave01  192.168.230.132

slave02  192.168.230.133


mysql主从复制步骤:
1.配置主从节点信息(server_id=) 
2.设置从服务器读取账号权限

3.同步

Linux环境下的配置文件:/etc/my.cnf

进入/etc目录查看my.cnf文件


修改主(master)服务器
vi /etc/my.cnf
server_id=128 ###服务器id
log-bin=mysql-bin ###开启日志文件,作用,主服务器做写操作时,都会在服务器里面生成日志文件,让从服务器拿到二进制执行文件进行同步。


查看:


重启mysql:service mysqld restart


登陆主服务器的mysql,查询服务器server_id 看下是否配置好,如果查询的值和配置的值不一致,说明没有配好。
show variables like 'server_id'


登陆主服务器的mysql,查询master的状态 ,出现下面的文件说明配置成功

show master status;


修改从(slave01)服务器

vim /etc/my.cnf

server_id=132       ###server_id不能有重复,表示唯一
log-bin-mysql-bin   ###开启日志文件
binlog_do_db=test   ###表示同步的数据库,这里同步的是test数据库


重启mysql:service mysqld restart

主服务器给从服务器账号授权

###在主服务器新建一个用户
CREATE USER 'mysync'@'%' IDENTIFIED BY '123456';
###赋予“REPLICATION SLAVE”的权限  一般不用root账号

GRANT REPLICATION SLAVE ON *.* TO 'mysync'@'%' IDENTIFIED BY '123456';


从服务器进行数据同步
###先关闭之前同步的  
stop slave; 
###授权
change master to master_host='192.168.230.128',master_user='mysync',master_password='123456',
master_log_file='mysql-bin.000003',master_log_pos=106;
###开始同步 
start slave; 
###检查从服务器复制功能是否成功
show slave status;


Slave_IO_Running   Yes  //此状态必须是yes

Slave_SQL_Running Yes //此状态必须是yes  说明同步成功

测试同步效果:在master服务器中test数据库创建test001表,从服务器test数据库自动生成test001表!


修改master主服务器test001表Id值,从服务器自动同步,至此,主从复制配置完成。


四、MySQL读写分离概述

什么是读写分离
在数据库集群架构中,让主库负责处理事务性查询,而从库只负责select查询,让两者分工明确达到提高数据库整体读写能力。MySQL没有自带读写分离,必须依靠第三方中间件或者使用Spring实现读写分离。

目前从服务器有写的权限,如果修改从服务器的值,主服务器是不会同步的。使用第三方中间件管理。



五、MySQL读写分离

1)使用中间件方式

2)使用Spring实现读写分离





猜你喜欢

转载自blog.csdn.net/yz2015/article/details/79720386