1.下载jdk,地址 https://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-2133151.html
FROM ubuntu
ADD jdk-8u201-linux-x64.tar.gz /usr/local/src
ADD mycat /usr/local/src/mycat
ENV JAVA_HOME=/usr/local/src/jdk1.8.0_201
ENV PATH=$JAVA_HOME/bin:$PATH
ENV CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
EXPOSE 8666 9666 3366
RUN chmod -R 777 /usr/local/src/mycat/bin
CMD ["./usr/local/src/mycat/bin/mycat", "console"]
root表示用户名、220316表示登陆密码、mycat是在shema.xml中配置的名称。
mycat为应用的名称也就是我们在server.xml提到的名称、database为数据库名称、url为数据库链接地址。
上述主从模式,需要提前自己配置mysql的主从模式,可参考我原先的博客 https://cloud.tencent.com/developer/article/1502430
<user name="tzxylao" defaultAccount="true">
<property name="password">123456</property>
<property name="schemas">mycat</property>
</user>
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="mycat" checkSQLschema="false" sqlMaxLimit="100">
<table name="hotnews" primaryKey="id" autoIncrement="true" dataNode="dn1,dn2"
rule="mod-long" />
</schema>
<dataNode name="dn1" dataHost="localhost1" database="mycat_test" />
<dataNode name="dn2" dataHost="localhost2" database="mycat_test" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1">
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM1" url="jdbc:mysql://47.99.85.92:3306" user="tzxylao"
password="123456">
</writeHost>
</dataHost>
<dataHost name="localhost2" maxCon="1000" minCon="10" balance="0" dbType="mysql" writeType="0" switchType="1"
dbDriver="jdbc">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM2" url="jdbc:mysql://47.99.85.92:3307" user="tzxylao" password="123456">
</writeHost>
</dataHost>
</mycat:schema>
insert into hotnews (id,name) values (1,"tom1");
insert into hotnews (id,name) values (2,"tom2");
insert into hotnews (id,name) values (3,"tom3");
insert into hotnews (id,name) values (4,"tom4");
insert into hotnews (id,name) values (5,"tom5");
结果
执行以下语句
set sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://io.mycat/">
<schema name="mycat" checkSQLschema="false" sqlMaxLimit="100" dataNode="dn3">
<table name="hotnews" primaryKey="id" autoIncrement="true" dataNode="dn1,dn2"
rule="mod-long" />
</schema>
<dataNode name="dn1" dataHost="localhost1" database="mycat_test" />
<dataNode name="dn2" dataHost="localhost2" database="mycat_test" />
<dataNode name="dn3" dataHost="localhost3" database="slave_test" />
<dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="jdbc" switchType="1">
<heartbeat>select user()</heartbeat>
<!-- can have multi write hosts -->
<writeHost host="hostM1" url="jdbc:mysql://47.99.85.92:3306" user="tzxylao"
password="123456">
</writeHost>
</dataHost>
<dataHost name="localhost2" maxCon="1000" minCon="10" balance="0" dbType="mysql" writeType="0" switchType="1"
dbDriver="jdbc">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM2" url="jdbc:mysql://47.99.85.92:3307" user="tzxylao" password="123456">
</writeHost>
</dataHost>
<dataHost name="localhost3" maxCon="1000" minCon="10" balance="0" dbType="mysql" writeType="0" switchType="1"
dbDriver="jdbc">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM3" url="jdbc:mysql://47.99.85.92:3306" user="tzxylao" password="123456">
<readHost host="hostS3" url="jdbc:mysql://47.99.85.92:3307" user="tzxylao" password="123456" />
</writeHost>
</dataHost>
</mycat:schema>
参考 https://blog.csdn.net/linzhiqiang0316/article/details/79619246