读写分离是在主从复制的基础上实现的
一:安装MyCat
MyCat下载完解压就能用,但是我们需要进行我们的配置
下载地址 http://dl.mycat.io
下载完成上传并解压就ok了
如果启动失败的的话可以查看logs/wrapper.log文件里的错误信息,百度一搜就可以解决了
我的MyCat安装在mysql主机上ip地址为192.168.118.4
二:配置MyCat
主要配置两个文件
servvice.xml里的东西备份之后,替换成下面的
<mycat:server xmlns:mycat="http://io.mycat/"> <!-- 添加user --> <user name="mycat_master" defaultAccount="true"> <property name="password">mycat_master</property> <property name="schemas">hehe</property> </user> <!-- 添加user --> <user name="mycat_slave"> <property name="password">mycat_slave</property> <property name="schemas">hehe</property> <property name="readOnly">true</property> </user> </mycat:server>
schema.xml里的东西备份之后,替换成下面的
<mycat:schema xmlns:mycat="http://io.mycat/"> <!--name 逻辑库名称 checkSQLschema忽略表前的数据名称--> <schema name="hehe" checkSQLschema="true" sqlMaxLimit="100" > <!--name 表的名称 primaryKey主键 dataNode来自哪个数据库(并非真实数据库名称)--> <table name="t_users" primaryKey="user_id" dataNode="dn1"/> <table name="t_message" type="global" primaryKey="messages_id" dataNode="dn1" /> </schema> <!--一个dataNode代表一个数据库--> <dataNode name="dn1" dataHost="jdbchost" database="weibo_simple" /> <dataHost name="jdbchost" maxCon="1000" minCon="10" balance="3" writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <!--主从机配置--> <writeHost host="hostMaster" url="192.168.118.4:3306" user="root" password="root"/> <writeHost host="hostSlave" url="192.168.118.5:3306" user="root" password="root"/> </dataHost> </mycat:schema>
修改为启动mycat,位于安装路径的/bin目录下
./mycat start #启动
./mycat stop #停止
./mycat restart #重启
使用连接工具进行连接主机
使用连接工具进行连接从机
执行添加语句,报错