2.0 Mycat实现MySQL的分库分表、读写分离、主从复制

Mycat及MySQL实例部署情况:

Mycat(版本:5.6.29):

IP:192.168.227.6,Port:3310/3311

MySQL(版本:5.6.29) :注意MySQL版本最好5,6以上,刚开始yum安装默认版本5.1.73版本总报错

userHost1,IP:192.168.227.3,Port:3306

userHost2,IP:192.168.227.4,Port:3306

userHost3,IP:192.168.227.5,Port:3306

 

架构图:

2.0 Mycat实现MySQL的分库分表、读写分离、主从复制_第1张图片

1,MySQL主从复制配置

主IP:192.168.227.3

从IP:192.168.227.5

首先:修改mysql的配置文件,使其支持二进制日志功能。

打开主服务器的mysql配置文件:my.conf

vim /etc/my.cnf 加上:

 

server-id = 3  //为服务器设置一个独一无二的id便于区分,这里使用ip地址的最后一位充当server-id

log-bin=mysql-bin //将mysql二进制日志取名为mysql-bin

binlog_format=mixed //二进制日志的格式,有三种:statement/row/mixed,具体分别不多做解释,这里使用mixed

replicate-do-db = db_store //需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可

replicate-ignore-db = mysql //不需要复制的数据库名,如果复制多个数据库,重复设置这个选项即可

replicate-ignore-db = information_schema

保存重启数据库

同样进入从数据库修改

server-id = 5

log-bin=mysql-bin

binlog_format=mixed

replicate-do-db = db_store

replicate-ignore-db = mysql

replicate-ignore-db = information_schema

截图:

2.0 Mycat实现MySQL的分库分表、读写分离、主从复制_第2张图片

其次:在主服务器上为从服务器分配一个账号,就像一把钥匙,从服务器拿着这个钥匙,才能到主服务器上来共享主服务器的日志文件。

进入主服务器的mysql界面,

命令: # mysql -u root -p password     //我这里mysql账号是root,密码是password

在mysql操作界面下,输入下面一行命令:

GRANT replication slave ON *.* TO 'slave'@'%' IDENTIFIED BY 'password'; 

查看主服务器BIN日志的信息(执行完之后记录下这两值,然后在配置完从服务器之前不要对主服务器进行任何操作,因为每次操作数据库时这两值会发生改变).

2.0 Mycat实现MySQL的分库分表、读写分离、主从复制_第3张图片

再次:设置从服务器

进入从服务器

关闭slave(如果你以前配置过主从的话,一定要先关闭)

命令:stop slave;

开始配置:

输入下面代码即可:

2.0 Mycat实现MySQL的分库分表、读写分离、主从复制_第4张图片

CHANGE MASTER TO

MASTER_HOST="192.168.227.3",

MASTER_USER="root",

MASTER_PASSWORD="password",

MASTER_LOG_FILE="mysql-bin.000001",

MASTER_LOG_POS=311;

注意:MASTER_LOG_FILE和MASTER_LOG_POS值看主服务器日志信息

从服务器配置完成,启动从服务器:

命令: start slave;

2.0 Mycat实现MySQL的分库分表、读写分离、主从复制_第5张图片

2,配置Mycat

server.xml:



   
        1
        0
        druidparser
        2
        0
        3310      
        3311      
        0
        1
        1m
        1k
        0
        389m
   

   
        123456
       
db_store,db_user
        false
   

 

schema.xml:



   
     
        


        
     
            
        

   
    
        
        

    

   
   
    
    
    
     
     

   
                   writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
        select user()
        
        

    

    
                   writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
        select user()
        
        
        

    

    
             writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
        select user()
        
        
            
                
        
        
    

 

修改rule.xml中下列配置项:


       
            id          
            mod-long
       


       
        2

 


db_store建表语句:

 

DROP TABLE IF EXISTS `employee`;

CREATE TABLE `employee` (

`employeeID` int(11) NOT NULL,

`userName` varchar(16) COLLATE utf8_bin DEFAULT NULL,

`phoneNum` varchar(32) COLLATE utf8_bin DEFAULT NULL,

`age` int(11) DEFAULT NULL,

`createTime` datetime DEFAULT NULL,

`lastUpdate` datetime DEFAULT NULL,

PRIMARY KEY (`employeeID`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

 

-- ----------------------------

-- Table structure for store

-- ----------------------------

DROP TABLE IF EXISTS `store`;

CREATE TABLE `store` (

`storeID` int(11) NOT NULL,

`storeName` varchar(32) COLLATE utf8_bin DEFAULT NULL,

`storeAddress` varchar(256) COLLATE utf8_bin DEFAULT NULL,

`createTime` datetime DEFAULT NULL,

`lastUpdate` datetime DEFAULT NULL,

PRIMARY KEY (`storeID`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

你可能感兴趣的:(数据库)