准备环境
| 节点 | IP |
|---|---|
| db1 | 192.168.100.10 |
| db2 | 192.168.100.30 |
| mycat | 192.168.100.50 |
配置过程
# 主机名[root@localhost ~]# hostnamectl set-hostname mycat[root@localhost ~]# su# 配置hosts文件[root@mycat ~]# vim /etc/hosts192.168.100.50 mycat192.168.100.10 db1192.168.100.30 db2# 配置本地yum源[root@mycat ~]# mv /etc/yum.repos.d/* /media/[root@mycat ~]# vim /etc/yum.repos.d/local.repo[mariadb]name=mariadbbaseurl=file:///opt/gpmall-repogpgcheck=0enabled=1[centos]name=centosbaseurl=file:///opt/centosgpgcheck=0enabled=1[root@mycat ~]# mount /opt/CentOS-7-x86_64-DVD-1511.iso /opt/centos/mount: /dev/loop0 is write-protected, mounting read-only# 安装jdk[root@mycat ~]# yum install -y java-1.8.0-openjdk java-1.8.0-openjdk-devel[root@mycat ~]# java -versionopenjdk version "1.8.0_222"OpenJDK Runtime Environment (build 1.8.0_222-b10)OpenJDK 64-Bit Server VM (build 25.222-b10, mixed mode)# db1、db2节点授权mysql> grant all privileges on *.* to root@'%' identified by "000000";Query OK, 0 rows affected (0.00 sec)# 安装mycat[root@mycat ~]# tar -zxf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz -C /usr/local/[root@mycat ~]# chmod -R 777 /usr/local/mycat[root@mycat ~]# echo export MYCAT_HOME=/usr/local/mycat/ >> /etc/profile[root@mycat ~]# source /etc/profile# 修改配置文件[root@mycat ~]# vim /usr/local/mycat/conf/schema.xml<?xml version="1.0"?><!DOCTYPE mycat:schema SYSTEM "schema.dtd"><mycat:schema xmlns:mycat="http://io.mycat/"><schema name="USERDB" checkSQLschema="true" sqlMaxLimit="100" dataNode="dn1"></schema><dataNode name="dn1" dataHost="localhost1" database="test" /><dataHost name="localhost1" maxCon="1000" minCon="10" balance="3" dbType="mysql" dbDriver="native" writeType="0" switchType="1" slaveThreshold="100"><heartbeat>select user()</heartbeat><writeHost host="hostM1" url="192.168.100.10:3306" user="root" password="000000"><readHost host="hostS1" url="192.168.100.50:3306" user="root" password="000000" /></writeHost></dataHost></mycat:schema># 80行左右修改[root@mycat ~]# chown root:root /usr/local/mycat/conf/schema.xml<property name="password">000000</property><property name="schemas">USERDB</property># 最下面删除[root@mycat ~]# /usr/local/mycat/bin/mycat startStarting Mycat-server...[root@mycat ~]# netstat -ntlpActive Internet connections (only servers)Proto Recv-Q Send-Q Local Address Foreign Address State PID/Program nametcp 0 0 0.0.0.0:22 0.0.0.0:* LISTEN 1095/sshdtcp 0 0 127.0.0.1:25 0.0.0.0:* LISTEN 2221/mastertcp 0 0 127.0.0.1:32000 0.0.0.0:* LISTEN 12070/javatcp6 0 0 :::9066 :::* LISTEN 12070/javatcp6 0 0 :::59094 :::* LISTEN 12070/javatcp6 0 0 :::22 :::* LISTEN 1095/sshdtcp6 0 0 ::1:25 :::* LISTEN 2221/mastertcp6 0 0 :::1984 :::* LISTEN 12070/javatcp6 0 0 :::8066 :::* LISTEN 12070/javatcp6 0 0 :::38310 :::* LISTEN 12070/java# 测试[root@mycat mycat]# yum install -y MariaDB-client[root@mycat mycat]# mysql -h127.0.0.1 -P8066 -uroot -p000000MySQL [(none)]> show databases-> ;+----------+| DATABASE |+----------+| USERDB |+----------+1 row in set (0.002 sec)MySQL [(none)]> use USERDBDatabase changedMySQL [USERDB]> create table company(id int not null primary key,name varchar(50),addr varchar(255));Query OK, 0 rows affected (0.180 sec)MySQL [USERDB]> show tables;+----------------+| Tables_in_test |+----------------+| company |+----------------+1 row in set (0.002 sec)MySQL [USERDB]> insert into company values(1,"facebook","usa");Query OK, 1 row affected (0.040 sec)MySQL [USERDB]> select * from company-> ;+----+----------+------+| id | name | addr |+----+----------+------+| 1 | facebook | usa |+----+----------+------+1 row in set (0.048 sec)[root@mycat ~]# mysql -h127.0.0.1 -P9066 -uroot -p000000 -e 'show @@datasource;'+----------+--------+-------+----------------+------+------+--------+------+------+---------+-----------+------------+| DATANODE | NAME | TYPE | HOST | PORT | W/R | ACTIVE | IDLE | SIZE | EXECUTE | READ_LOAD | WRITE_LOAD |+----------+--------+-------+----------------+------+------+--------+------+------+---------+-----------+------------+| dn1 | hostM1 | mysql | 192.168.100.10 | 3306 | W | 0 | 10 | 1000 | 116 | 0 | 2 || dn1 | hostS1 | mysql | 192.168.100.30 | 3306 | R | 0 | 7 | 1000 | 115 | 4 | 0 |+----------+--------+-------+----------------+------+------+--------+------+------+---------+-----------+------------+
至此,读写分离配置结束
