下载mycat的地址:GitHub - MyCATApache/Mycat-download
本地资源下载地址:https://download.csdn.net/download/fearlessnesszhang/85130909
下载zip包直接解压:
我想要的是通过mycat将数据分流,放在三个子表,最后的数据库样式
解压后,我们需要修改的文件都在 conf 文件夹里面,主要有
schema.xml(配置数据库表之间的关联关系)
server.xml(配置可识别的数据库库名)
schema.xml
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="razer_sn" checkSQLschema="false" sqlMaxLimit="3000">
<table name="serial_number" dataNode="dn1,dn2,dn3" rule="mod-long" />
<table name="obound_serial_number" dataNode="dn1,dn2,dn3" rule="mod-long" />
</schema>
<dataNode name="dn1" dataHost="localhost1" database="sn1" />
<dataNode name="dn2" dataHost="localhost2" database="sn2" />
<dataNode name="dn3" dataHost="localhost3" database="sn3" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="jdbc" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostS1" url="jdbc:mysql://localhost:3306" user="root"
password="xxx" />
</dataHost>
<dataHost name="localhost2" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="jdbc" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostS2" url="jdbc:mysql://localhost:3306" user="root"
password="xxx" />
</dataHost>
<dataHost name="localhost3" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="jdbc" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostS3" url="jdbc:mysql://localhost:3306" user="root"
password="xxx" />
</dataHost>
</mycat:schema>
server.xml
<user name="mycat" defaultAccount="true">
<property name="password">mycat</property>
<property name="schemas">razer_sn</property>
</user>
<user name="user">
<property name="password">user</property>
<property name="schemas">razer_sn</property>
<property name="readOnly">true</property>
</user>
在回到bin目录下,双击 startup_nowrap.bat 后,cmd => jps 出现 MycatStartup 就成功了。
根据上面配置,本地mycat连接情况是
地址:localhost
端口:8066
账号:mycat
密码:mycat
以上是我的windows 部署mycat的全部流程。
提供了 Mycat - 1.7.3 的资源,直接下载后解压修改 conf 文件夹中 schema.xml 的数据库连接密码,在数据库中创建上面的 sn1/sn2/sn3 ,在 bin目录下双击 startup_nowrap.bat 即可。
记录一下遇到的问题:
1.mycat 启动服务总是报错 The Mycat-server service was launched...
解决办法:
win + R , 输入 jps ,出现 MycatStartup ,则启动成功(错误是 mycat已经启动,但是还想启动时,报的错)
2.Unrecognized VM option 'MaxPermSize=64M'
解决办法:
mycat 1.6 不支持 MaxPermSize,只需要在 wrapper.conf 配置文件删除 java.MaxPermSize 即可
3.mycat can`t get connection for sql:select user()
解决办法:
MySQL 8.0 配置mysql_native_password
4.columnNumber:43;必须为元素类型 "user" 声明属性 "defaultAccount"
解决办法:
根据 schema.xml 配置文件,必须生成相对应的表
5.each process allocated socket buffer pool bytes,a page size:2...
解决办法:
查看 wrapper.conf 配置文档中的 Java 版本,我是使用 17 版本报的错,因为版本太高
6.启动项目报错 'query_cache_size'
解决办法:
查找网上办法:
(1)将mycat lib文件中的mysql-connection 5.xx 版本换成 8.xx 版本
(2)将 schema.xml文件中的 dataHost 修改为
<dataHost name="localhost2" maxCon="1000" minCon="10" balance="0" writeType="0" dbType="mysql" dbDriver="jdbc" slaveThreshold="100"> <heartbeat>select user()</heartbeat> <writeHost host="hostS2" url="jdbc:mysql://localhost:3306" user="root" password="123456" /> </dataHost>
我使用了上面的方法,执行还是一样的问题。我的处理方法是 将mycat版本修改成 1.6.7.3 即可,且不需要修改lib中mysql-connection 5.xx版本包
7.双击 bin 目录下 mycat.bat 启动时,一直报"The Mycat-server service was launched,but faild to start."
解决办法:
如果一直启动不起来,那么可以直接双击 bin -> startup_nowrap.bat -> 提示"MyCAT Server startup successfully. see logs in logs/mycat.log" 即可