mycat实现mysql读写分离

搭建前准备:

主:172.25.90.3

从:172.25.90.1

mycat client:172.25.90.2

主从上需要线配置好主从复制


现在mycat的主机上配置jdk:

jdk-7u79-linux-x64.tar.gz

解压到/usr/local/:# tar zxf jdk-7u79-linux-x64.tar.gz /usr/local/

做软链接:# ln -s jdk1.7.0_79/ java

# vim /etc/profile

export JAVA_HOME=/usr/local/java
export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib
export PATH=$PATH:$JAVA_HOME/bin

# source /etc/profile

配置mycat:

安装包:Mycat-server-1.4-beta-20150604171601-linux.tar.gz

解压到/usr/local:

# tar zxf Mycat-server-1.4-beta-20150604171601-linux.tar.gz -C /usr/local/

添加用户:

# useradd mycat

# passwd mycat

# chown mycat.mycat -R /usr/local/mycat/

添加环境变量:

# vim /etc/profile

export MYCAT_HOME=/usr/local/mycat
export PATH=$PATH:$MYCAT_HOME/bin

# source /etc/profile

# cd /usr/local/conf

配置:

# vim schema.xml


        
        
        

        

        

                select user()

                
                
        

# vim server.xml




        
        druidparser
        
        
                redhat
                pcx_schema
        

        
                redhat
                pcx_schema
                true
        




# vim log4j.xml

 
   
   
    
 



启动mycat:

因为之前把环境变量配置到了/etc/profile里了,所以

# mycat console&


读写分离:

在远端登录mycat:

[kiosk@foundation90 Desktop]$ mysql -h172.25.90.2 -P 8066 -u root -predhat
Welcome to the MariaDB monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.8-mycat-1.4-beta-20150604171601 MyCat Server (OpenCloundDB)

Copyright (c) 2000, 2015, Oracle, MariaDB Corporation Ab and others.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MySQL [(none)]> show databases;
+------------+
| DATABASE   |
+------------+
| pcx_schema |
+------------+
1 row in set (0.00 sec)

MySQL [(none)]> use pcx_schema;
Reading table information for completion of table and column names
You can turn off this feature to get a quicker startup with -A

Database changed
MySQL [pcx_schema]> show tables;
+----------------------+
| Tables_in_pcx_schema |
+----------------------+
| travelrecord         |
+----------------------+
1 row in set (0.01 sec)

MySQL [pcx_schema]> select * from travelrecord;
+---------+--------------+------------+------+------+
| id      | user_id      | traveldate | fee  | days |
+---------+--------------+------------+------+------+
|       1 | mysql-server | 2017-06-23 |  100 |   10 |
|       2 | mysql-server | 2017-06-23 |  100 |   10 |
| 5000001 | mysql-server | 2017-06-23 |  100 |   10 |
+---------+--------------+------------+------+------+
3 rows in set (0.01 sec)

MySQL [pcx_schema]> delete from travelrecord where id='1';
Query OK, 1 row affected (0.11 sec)





一开始,主和从是同步的:

mysql> select * from travelrecord;
+---------+--------------+------------+------+------+
| id      | user_id      | traveldate | fee  | days |
+---------+--------------+------------+------+------+
|       1 | mysql-server | 2017-06-23 |  100 |   10 |
|       2 | mysql-server | 2017-06-23 |  100 |   10 |
| 5000001 | mysql-server | 2017-06-23 |  100 |   10 |
+---------+--------------+------------+------+------+

现在间从机上的io_thread关闭
mysql> stop slave io_thread;
Query OK, 0 rows affected (0.12 sec)

我们在远端对数据库修改:

MySQL [pcx_schema]> delete from travelrecord where id='1';
Query OK, 1 row affected (0.11 sec)

MySQL [pcx_schema]> select * from travelrecord;
+---------+--------------+------------+------+------+
| id      | user_id      | traveldate | fee  | days |
+---------+--------------+------------+------+------+
|       1 | mysql-server | 2017-06-23 |  100 |   10 |
|       2 | mysql-server | 2017-06-23 |  100 |   10 |
| 5000001 | mysql-server | 2017-06-23 |  100 |   10 |
+---------+--------------+------------+------+------+



我们再来看看主和从:

主:

mysql> select * from travelrecord;
+---------+--------------+------------+------+------+
| id      | user_id      | traveldate | fee  | days |
+---------+--------------+------------+------+------+
|       2 | mysql-server | 2017-06-23 |  100 |   10 |
| 5000001 | mysql-server | 2017-06-23 |  100 |   10 |
+---------+--------------+------------+------+------+
2 rows in set (0.00 sec)

从:

mysql> select * from travelrecord;
+---------+--------------+------------+------+------+
| id      | user_id      | traveldate | fee  | days |
+---------+--------------+------------+------+------+
|       1 | mysql-server | 2017-06-23 |  100 |   10 |
|       2 | mysql-server | 2017-06-23 |  100 |   10 |
| 5000001 | mysql-server | 2017-06-23 |  100 |   10 |
+---------+--------------+------------+------+------+
3 rows in set (0.00 sec)


你可能感兴趣的:(mycat实现mysql读写分离)