linux下mycat安装使用

来源:互联网 发布:软件研发部 考核指标 编辑:程序博客网 时间:2024/06/06 00:26

1:下载安装包

下载地址:http://www.mycat.io/  





--点击下载linux版本的安装包



2:将安装包上传到/usr/local 目录下,解压

tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz

3:新建用户和组

groupadd mycatadduser -r -g mycat mycatchown -R mycat.mycat /usr/local/mycat  //修改mycat目录所属mycat用户

4:修改conf目录下的配置文件

schema.xml:定义并管理MyCat的逻辑库、表、分片规则、DataNode 以及DataSource。
server.xml:几乎保存了所有mycat 需要的系统配置信息。用于服务器参数调整和用户授权的配置文件。
rule.xml:用来定义拆分表格的分片规则。
wrapper.conf:jvm启动参数的配置。

一:修改wrapper.conf文件

vim wrapper.conf#********************************************************************a Wrapper Propertiesnameserver 192.168.196.1nameserve. 192.168.196.1#********************************************************************# 配置自己的java路径wrapper.java.command=/usr/local/java/bin/javawrapper.working.dir=..

二:修改schema.xml文件

<?xml version="1.0"?>  <!DOCTYPE mycat:schema SYSTEM "schema.dtd">  <mycat:schema xmlns:mycat="http://io.mycat/">        <!-- TESTDB是mycat数据库,注意名称必须和server.xml中配置的一致 -->      <schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">          <!-- dn1、dn2、dn3是mysql中的三个数据库节点,分别代替三个不同的数据库。               dataNode该属性定义逻辑表所属的数据库,               rule属性用于指定逻辑表要使用的规则名字,规则名字在rule.xml中定义。          -->          <table name="travelrecord" dataNode="dn1,dn2,dn3" rule="auto-sharding-long" />          <!--          primaryKey属性指定逻辑表对应的主键,          type属性定义了逻辑表的类型,目前逻辑表只有“全局表”和”普通表”两种类型,不指定即为普通表          -->          <table name="company" primaryKey="ID" type="global" dataNode="dn1,dn2,dn3" />          <table name="goods" primaryKey="ID" type="global" dataNode="dn1,dn2" />          <!-- autoIncrement指定这个表有使用自增长主键,默认为false -->          <table name="hotnews" primaryKey="ID" autoIncrement="true" dataNode="dn1,dn2,dn3"                 rule="mod-long" />          <table name="employee" primaryKey="ID" dataNode="dn1,dn2"                 rule="sharding-by-intfile" />          <table name="customer" primaryKey="ID" dataNode="dn1,dn2"                 rule="sharding-by-intfile">              <childTable name="orders" primaryKey="ID" joinKey="customer_id"                          parentKey="id">                  <childTable name="order_items" joinKey="order_id"                              parentKey="id" />              </childTable>              <childTable name="customer_addr" primaryKey="ID" joinKey="customer_id"                          parentKey="id" />          </table>      </schema>        <!-- 配置mysql数据库节点,一个dataNode代表一个数据库 -->      <dataNode name="dn1" dataHost="127.0.0.1" database="db1" />      <dataNode name="dn2" dataHost="127.0.0.1" database="db2" />      <dataNode name="dn3" dataHost="127.0.0.1" database="db3" />                  <!-- dataHost用来定义具体的mysql以及读写分离  -->      <!--        maxCon/maxCon指定最大最小连接数,      balance=“0”, 所有读操作都发送到当前可用的writeHost上。          balance=“1”,所有读操作都随机的发送到readHost。          balance=“2”,所有读操作都随机的在writeHost、readhost上分发。      writeType=“0”, 所有写操作都发送到可用的writeHost上。          writeType=“1”,所有写操作都随机的发送到readHost。          writeType=“2”,所有写操作都随机的在writeHost、readhost分上发。      dbType指定数据库类型,支持oracle、mongodb等      dbDriver指定连接后端数据库使用的Driver,目前可选的值有native和JDBC。      -->      <dataHost name="127.0.0.1" maxCon="1000" minCon="10" balance="0"                writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">          <!-- heartbeat标签指定后端数据库进行心跳检查的语句。例如,MYSQL可以使用select user(),Oracle可以使用select 1 from dual等-->          <heartbeat>select user()</heartbeat>          <writeHost host="hostM1" url="127.0.0.1:3306" user="root"                     password="root">              <!-- <readHost host="hostS2" url="192.168.1.200:3306" user="root" password="xxx" /> -->          </writeHost>          <!-- <writeHost host="hostS1" url="localhost:3316" user="root"                     password="123456" /> -->      </dataHost>        </mycat:schema>  


三:修改server.xml文件

       <!-- 配置根用户和密码,这里的TESTDB需要和schema.xml配置的名称一致 -->  <user name="root">      <property name="password">123456</property>      <property name="schemas">TESTDB</property>  </user>    <!-- 配置用户和密码,设置权限为只读 -->  <user name="test">      <property name="password">123456</property>      <property name="schemas">TESTDB</property>      <property name="readOnly">true</property>  </user> 


5:测试测试数据库

连接mysql创建db1、db2、db3 三个数据库


6:启动mycat
/usr/local/mycat/bin/mycat start

7:连接mycat

mysql -uroot -p123456 -h127.0.0.1 -P8066 -DTESTDB 
注意-P、-D需要大写,-h 后面必须是ip,使用localhost会出错


8:测试

use TESTDB;create table company(id int not null primary key,name varchar(50),addr varchar(255));insert into company values(1,"facebook","usa");



ok了,试试吧。




原创粉丝点击