1. 安装JDK
# yum -y install java-1.7.0-openjdk
#/usr/bin/java -version
java version "1.7.0_85"
OpenJDK Runtime Environment (rhel-2.6.1.2.el7_1-x86_64 u85-b01)
OpenJDK 64-Bit Server VM (build 24.85-b03, mixed mode)
2. 解压mycat
在/usr/local/下解压
#tar zxvf Mycat-server-1.4-RC-20150729000032-linux.tar.gz
#rm Mycat-server-1.4-RC-20150729000032-linux.tar.gz
3. 增加mycat用户
#useradd mycat
# chown -R mycat:mycat /usr/local/mycat #授权
# passwd mycat
New password: 123456
BAD PASSWORD: The password is shorter than 8 characters
Retype new password: 123456
passwd: all authentication tokens updated successfully.
4. 调整wrapper.conf参数默认值
为防止后面mycat启动出错,暂时不调整。
[root@mariadb-10000 opt]# vi /usr/local/mycat/conf/wrapper.conf
# Java Application
wrapper.java.command=/usr/bin/java
# Java Additional Parameters
wrapper.java.additional.5=-XX:MaxDirectMemorySize=1G
# Initial Java Heap Size (in MB)
#wrapper.java.initmemory=3
wrapper.java.initmemory=1024
若启动报内存不够,可以试着将上述内存都改小,改为1G或512M
5. 启动mycat
#/usr/local/mycat/bin/mycat start
# /usr/local/mycat/bin/mycat status
#/usr/local/mycat/bin/mycat stop
6. 通过Mycat远程连接数据库
#mysql –uroot –p
>use mysql;
> update user set host='%' where host='127.0.0.1';
为了安全起见,host=‘%’可以指定IP地址登录
> UPDATE user SET password=PASSWORD('123456') WHERE user='root';
为了安全起见,password设置复杂
> select host,user from user;
> FLUSH PRIVILEGES; #更新权限
【>SHOW VARIABLES LIKE 'character%';
退出
# vi /etc/my.cnf
添加如下内容:
[mysqld]
character-set-server=utf8
lower_case_table_names = 1】
如果mysql出现乱码,执行以上步骤
7. Mycat的配置文件
1) Schema.xml
<schema name=”mycat” checkSQLschema=”true/false” sqlMaxLimit=”100” dataHost=“dn1”>
</schema>逻辑库的配置,自定义库名,可以默认数据节点(不分片),默认之后逻辑表中就不用写dataHost
<table name=”company” primaryKey=”ID” type=”global” dataNode=”dn1,d2,dn3” rule=”auto-sharding-long” >
</table>逻辑表名必须与数据库中的表名相同,一些表相关配置,全局表,表的分片规则等,分片节点自定
<dataNode name="dn1" dataHost="localhost1" database="db1" />
<dataNode name="dn2" dataHost="localhost1" database="db2" />
<dataNode name="dn3" dataHost="localhost1" database="db3" />
<dataHost name="localhost1" maxCon="1000" minCon="10"balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType=”2” slaveThreshold=“100”>
</dataHost>分片节点和主机,主机名可自定义,database必须在mysql中有对应的数据库,最大最小连接数,balance="1" writeType="0"决定读写分离,switchType=”2” slaveThreshold=“100”,决定主备切换。多个分片节点可以在一个数据库上
<heartbeat>select user()</heartbeat>心跳检测,用来主备切换
<writeHost host="hostM1" url="192.168.137.12:3306" user="root" password="123456">
<readHost host="hostS1" url="192.168.137.20:3306" user="root" password="123456" />
<writeHost host="hostS1" url="192.168.137.31:3306" user="root" password="123456">
</writeHost>默认第一个writeHost为主服务,第二个writeHost为备,readHost为读库,读写分离的操作要在mysql中设置。
2) Server.xml
访问MyCAT的用户账号和授权信息是在/usr/local/mycat/conf/server.xml文件中配置。
<system>
<property name="defaultSqlParser">druidparser</property>
<!--<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="test">
<property name="password">test</property>
<property name="schemas">TESTDB</property>
</user>
<user name="user">
<property name="password">user</property>
<property name="schemas">TESTDB</property>
<property name="readOnly">true</property>
</user>
3) rule.xml
配置分片规则,目前还没研究
4) log4j.xml
日志配置文件