mycat
是什么不再介绍。
mycat官网地址:
http://www.mycat.io/
依赖:jdk 1.7+
关于jdk的安装,可以参考:
http://blog.csdn.net/github_26672553/article/details/58222614
mycat下载地址:
https://github.com/MyCATApache/Mycat-download/tree/master/1.5-RELEASE
下载完毕之后,解压到我们的目录:
tar -zvxf 压缩包名 -C /usr/local/
我这里解压到了/usr/local
目录下。
设置mycat的环境变量
vi /etc/profile
export MYCAT_HOME=/usr/local/mycat
保存后执行:source /etc/profile
另外还要mysql忽略表名大小写,修改mysql配置文件:
[mysqld]
lower_case_table_names = 1
mycat配置文件
mycat/conf
下有3个重要的配置文件:
server.xml 定义系统参数和授权;
schema.xml 定义逻辑库、表、分片节点;
rule.xml 定义分片规则等
我们首选来看 schema.xml 这个配置文件
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://org.opencloudb/">
<!-- mydbname 自定义的名字(可以理解为虚拟的数据库名) -->
<schema name="mydbname" checkSQLschema="false" sqlMaxLimit="100">
<!-- news 真实表名 id是主键 -->
<!-- dataNode是节点-->
<table name="news" primaryKey="id" type="global" dataNode="dataNode1,dataNode2" />
</schema>
<!-- 节点配置 -->
<!-- 2个节点 数据库名称是test(真实的数据库名称) -->
<dataNode name="dataNode1" dataHost="dataHost1" database="test" />
<dataNode name="dataNode2" dataHost="dataHost2" database="test" />
<dataHost name="dataHost1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM1" url="10.211.55.13:3306" user="root" password="root"> </writeHost>
</dataHost>
<dataHost name="dataHost2" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM1" url="192.168.15.138:3306" user="root" password="root"> </writeHost>
</dataHost>
</mycat:schema>
需要注意的是:2台mysql之间要能够互相连通。
然后修改 server.xml这个配置文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://org.opencloudb/">
<system>
<property name="defaultSqlParser">druidparser</property>
</system>
<user name="mycat1">
<property name="password">admin888</property>
<!-- schemas就是schema.xml中配置的虚拟数据库名称-->
<property name="schemas">mydbname</property>
</user>
<user name="mycat2">
<property name="password">admin888</property>
<property name="schemas">mydbname</property>
<!-- 只读 -->
<property name="readOnly">true</property>
</user>
</mycat:server>
启动 mycat
cd /usr/local/mycat/bin
./mycat start
然后我们可以用数据库客户端工具来连接我们的mycat