准备工作:
@H_403_5@1、安装jdk1.7(因为MyCAT 是使用 JAVA 语言进行编写开发,使用前需要先安装 JAVA 运行环境(JRE),由于 MyCAT 中使用)点击下载jdk
@H_403_5@也可以参考我之前的文章: centos 安装jdk/tomcat@H_403_5@
@H_403_5@下载 tar.gz压缩包
@H_403_5@ 解压到指定位置(你也可以解压到你喜欢的目录里):tar zxvf xxx.tar.gz -C /usr/local/
@H_403_5@设置jdk环境变量:
@H_403_5@ vi /etc/profile
export JAVA_HOME=/usr/java/jdk1.7
export PATH=$JAVA_HOME/bin:$PATH
export CLASSPATH=.:$JAVA_HOME/lib/dt.jar:$JAVA_HOME/lib/tools.jar
source /etc/profile 【文件修改后立即生效】
@H_403_5@2、安装mycat(本文使用的1.6) 点击下载mycat
@H_403_5@ 加压到指定目录(自己喜欢的目录) tar zxvf xxxx.tar.gz -C /usr/local/
@H_403_5@设置mycat环境变量:
@H_403_5@ vim /etc/profile
@H_403_5@ export MYCAT_HOME=/usr/local/mycat
@H_403_5@ source /etc/profile 【文件修改后立即生效】
@H_403_5@3、修改myslq 的配置文件 my.cnf
@H_403_5@ lower_case_table_names = 1 【忽略大小写】
@H_403_5@ 1、Server.xml 【定义系统参数和授权】
@H_403_5@
- <?xml version="1.0" encoding="UTF-8"?>
- <!-- - - Licensed under the Apache License,Version 2.0 (the "License");
- - you may not use this file except in compliance with the License. - You
- may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0
- - - Unless required by applicable law or agreed to in writing,software -
- distributed under the License is distributed on an "AS IS" BASIS,- WITHOUT
- WARRANTIES OR CONDITIONS OF ANY KIND,either express or implied. - See the
- License for the specific language governing permissions and - limitations
- under the License. -->
- <!DOCTYPE mycat:server SYSTEM "server.dtd">
- <mycat:server xmlns:mycat="http://io.mycat/">
- <system>
- <property name="defaultsqlParser">druidparser</property>
- <!-- <property name="useCompression">1</property>--> <!--1为开启MysqL压缩协议-->
- <!-- <property name="processorBufferChunk">40960</property> -->
- <!--
- <property name="processors">1</property>
- <property name="processorExecutor">32</property>
- -->
- <!--默认是65535 64K 用于sql解析时最大文本长度 -->
- <!--<property name="maxStringLiteralLength">65535</property>-->
- <!--<property name="sequnceHandlerType">0</property>-->
- <!--<property name="backSocketNoDelay">1</property>-->
- <!--<property name="frontSocketNoDelay">1</property>-->
- <!--<property name="processorExecutor">16</property>-->
- <!--
- <property name="mutiNodeLimitType">1</property> 0:开启小数量级(默认) ;1:开启亿级数据排序
- <property name="mutiNodePatchSize">100</property> 亿级数量排序批量
- <property name="processors">32</property> <property name="processorExecutor">32</property>
- <property name="serverPort">8066</property> <property name="managerPort">9066</property>
- <property name="idleTimeout">300000</property> <property name="bindIp">0.0.0.0</property>
- <property name="frontWriteQueueSize">4096</property> <property name="processors">32</property> -->
- </system>
- <user name="mycat_centos">
- <property name="password">mycat123</property>
- <property name="schemas">yrok</property>
- </user>
- <user name="mycat_windows">
- <property name="password">mycat123</property>
- <property name="schemas">yrok</property>
- <property name="readOnly">true</property>
- </user>
- <!--
- <quarantine>
- <whitehost>
- <host host="127.0.0.1" user="mycat"/>
- <host host="127.0.0.2" user="mycat"/>
- </whitehost>
- <blacklist check="false"></blacklist>
- </quarantine>
- -->
- </mycat:server>
@H_403_5@
@H_403_5@ 2、schema.xml 【定义逻辑库、表、分片节点】
@H_403_5@
@H_403_5@
- <?xml version="1.0"?>
- <!DOCTYPE mycat:schema SYSTEM "schema.dtd">
- <mycat:schema xmlns:mycat="http://io.mycat/">
- <schema name="shenyi" checksqlschema="false" sqlMaxLimit="100">
- <!-- auto sharding by id (long) -->
- <!--<table name="travelrecord" datanode="dn1" rule="auto-sharding-long" />-->
- <table name="users" primaryKey="news_id" type="global" datanode="dn1,dn2" />
- </schema>
- <datanode name="dn1" dataHost="localhost1" database="yrok_database" />
- <datanode name="dn2" dataHost="localhost2" database="yrok_database" />
- <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="192.168.31.5:3306" user="root"
- password="123456">
- </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="192.168.200.25:3306" user="root"
- password="123456">
- </writeHost>
- </dataHost>
- </mycat:schema>
@H_403_5@
@H_403_5@ 3、rule.xml 【定义分片规则等】暂时未使用
@H_403_5@5、启动mycat:
@H_403_5@执行:
@H_403_5@ /usr/local/mycat/bin/mycat start
@H_403_5@查看启动状态:
@H_403_5@ ps -ef | grep mycat 或者 netstat -ntpl | grep 8066 【8066是mycat数据库的访问端口,记住此处不是3306】
@H_403_5@6、启动没有问题,使用MysqL连接工具连接:
@H_403_5@ 连接过程就不贴图了
@H_403_5@7、连接容易产生的问题
@H_403_5@ grant all privileges on *.* to root@'%' identified by 'xxxxx';
flush privileges;@H_403_5@
@H_403_5@ 2、没有开启8066端口访问权限:
@H_403_5@ -A INPUT -m state --state NEW -m tcp -p tcp --dport 8066 -j ACCEPT
8、成功连接mycat