mycat的安装
1、取消大小写敏感
vi /etc/my.cnf 在[mysqld]下添加一行
lower_case_table_names=1
2、编辑配置文件
vi schema.xml 修改成这样,标红的是进行修改的地方,这部分是把信息都写到数据库,没有进行读写分离
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://org.opencloudb/">
<schema name="e3-mall" checkSQLschema="false" sqlMaxLimit="100"> e3-mall表示数据库的名称
<!-- auto sharding by id (long) -->
<table name="tb-item" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" /> tb-item表示表的名称,可以自己修改 auto-sharding-long表示一种规则,可以在rule.xml看到,
不同点可以进行百度
</schema>
下面这个表示有3个节点,有对应的数据库如localhost1、localhost2
<dataNode name="dn1" dataHost="localhost1" database="db1" />
<dataNode name="dn2" dataHost="localhost2" database="db2" />
<dataNode name="dn3" dataHost="localhost1" database="db3" />
<dataHost name="localhost1" 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="212.64.17.245:3306" user="root"
password="85586537">
<!-- can have multi read hosts -->
</writeHost>
</dataHost>
<dataHost name="localhost2" 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="localhost:3306" user="root"
password="85586537">
</writeHost>
</dataHost>
</mycat:schema>
3、读写分离的的话就修改配置,也是在schema.xml配置
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://org.opencloudb/">
<schema name="e3-mall" checkSQLschema="false" sqlMaxLimit="100">
<!-- auto sharding by id (long) -->
<table name="tb-item" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />
</schema>
<dataNode name="dn1" dataHost="localhost1" database="db1" />
<dataNode name="dn2" dataHost="localhost2" database="db2" />
<dataNode name="dn3" dataHost="localhost1" database="db3" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="1"
writeType="0" dbType="mysql" dbDriver="native" switchType="2" slaveThreshold="100">
<heartbeat>show slave status</heartbeat>
这个的意思就是读取db1和db3的数据库是基于localhost,而写的数据库是在212.64.17.245这个服务器的数据库,进行了读写分离
<writeHost host="hostM1" url="212.64.17.245:3306" user="root"
password="85586537">
<readHost host="hosts" url="localhost:3306" user="root" password="85586537">
</writeHost>
</dataHost>
<dataHost name="localhost2" 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="localhost:3306" user="root"
password="85586537">
</writeHost>
</dataHost>
</mycat:schema>
balance后面有3个参数
0表示读操作都发送到writeHost上 1表示读操作发送到readHost上 2表示随机发送到writeHost和readHost上
switchType也是3个参数
-1 表示不自动切换 1表示自动切换 2则是基于Mysql的主从同步状态进行切换
具体数据库的截图:

4、最后vi server.xml配置文件

表示用户名和密码都是user,而连接的数据库是e3-mall
然后开启mycat的服务,就可以进行远程连接的操作了。服务器名称是安装mycat的服务器,用户名和密码都是userer(上面图片自己配置的),端口是8066

浙公网安备 33010602011771号