基于MyCat实现MySQL读写分离与动态数据源切换

为什么要使用主从分离和读写操作呢?

主从复制:1、当主数据库出现问题时,可以当从数据库代替主数据库,可以避免数据的丢失。

     2、可以进行读写分离

读写分离:(1)、避免从数据库进行写操作而导致的主从数据库数据不一致的情况,因为当主从数据库数据不一致时,那么从数据库最主要的备份任务就没有意义了。 

        (2)、减轻主数据库的压力。因为进行写操作更耗时,所以如果不进行读写分离的话,写操作将会影响到读操作的效率。

读写操作在同一个数据库中进行时,数据库的压力比较大。因此我们需要对数据库进行读写分离来减轻单台数据库的压力。

接下来我们借助MyCat数据库中间件实现MySQL数据库读写分离。前提是要先做好数据库的主从复制哦

1.下载Mycat安装包

http://dl.mycat.io/

基于MyCat实现MySQL读写分离与动态数据源切换_第1张图片

2.下载后上传到Linux下  使用 tar -zxvf 文件名 解压安装包

解压后会看到一个mycat文件夹

3.运行mycat

基于MyCat实现MySQL读写分离与动态数据源切换_第2张图片

mycat启动后我们可以查看日志文件查看mycat是否真正的启动成功。如出现下面所示,则启动成功。

基于MyCat实现MySQL读写分离与动态数据源切换_第3张图片

5.配置mycat实现读写分离

这里配置很简单,我们只需要配置conf文件夹下的server.xml 和shema.xml 文件重启就可以了。

shema.xml文件配置:



    
    
        
    
    
    
        select user()
        
        
            
            
        
    

从shema.xml文件可以看出192.168.245.128为可写数据库,192.168.245.132为只读数据库。

server.xml 文件配置:





   

   
    
        123456
        mycat_testdb

        
        
    

    
    
        user
        mycat_testdb
        true
    


重启mycat,这样配置就完成了,从文件配置中我们可以看的出,root用户拥有读写权限,user用户只有读的权限。下面我测试一下,mycat是否配置成功。

(1)登录user用户对e表进行写操作,在保存数据时提示readonly,只能读不能做写操作。

()基于MyCat实现MySQL读写分离与动态数据源切换_第4张图片

(2)登录root用户:操作成功

 

 

基于MyCat实现MySQL读写分离与动态数据源切换_第5张图片

可以看到,从mycat的虚拟数据库中写的数据的是写到了128 数据库中,132数据库是128数据库的从数据库,所以128和132数据库中的数据是一致。

基于MyCat实现MySQL读写分离与动态数据源切换_第6张图片

到这里,MySQL数据库的读写分离就实现了。

你可能感兴趣的:(mysql)