tar -zxvf Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz
(1)替换server.xml,schema.xml,rule.xml
server.xml:为mycat服务配置,主要为配置mycat的连接数据库用户名、密码、端口等相关信息;
schema.xml:主要配置分库分表相关节点信息;
rule.xml:主要配置是分库字段规则。
(2)启动
进入/mycat/mycat/bin文件夹中
./mycat start #启动
./mycat stop #停止
./mycat restart #重新启动
开放3310(连接)与3311(管理端)端口
/sbin/iptables -I INPUT -p tcp --dport 3310 -j ACCEPT
/sbin/iptables -I INPUT -p tcp --dport 3311 -j ACCEPT
(3)设置环境变量,供后续维护方便。
在/etc/profile增加相应内容
vim /etc/profile
export MYCAT_HOME=/mycat/mycat/
export PATH=$PATH:$MYCAT_HOME/bin
编辑后source /etc/profile生效。
mysql -uXXX-h192.168.XXX.XXX -pXXXXXX-P3310
(4)验证:本地使用客户端能正常连接到Mycat。
Mycat提供多种方式:本地文件方式、数据库方式、本地时间戳方式等;根据目前现有的业务逻辑与改动量,决定使用数据库方式。主要操作流程:
DROP FUNCTION IF EXISTS mycat_seq_currval;
CREATE FUNCTION mycat_seq_currval(seq_name VARCHAR(50)) RETURNS varchar(64)
BEGIN
DECLARE retval VARCHAR(64);
SET retval ='-999999999,null';
SELECT concat(CAST(current_value AS CHAR),',',CAST(increment AS CHAR)) INTO retval
FROM sequence
WHERE name = seq_name;
RETURN retval ;
END;
DROP FUNCTION IF EXISTS mycat_seq_setval;
CREATE FUNCTION mycat_seq_setval(seq_name VARCHAR(50),value INTEGER) RETURNS varchar(64)
BEGIN
UPDATE sequence
SET current_value = value
WHERE name = seq_name;
RETURN mycat_seq_currval(seq_name);
END;
DROP FUNCTION IF EXISTS mycat_seq_nextval;
CREATE FUNCTION mycat_seq_nextval(seq_name VARCHAR(50)) RETURNS varchar(64)
BEGIN
UPDATE sequence
SET current_value = current_value + increment
WHERE name = seq_name;
RETURN mycat_seq_currval(seq_name);
END
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
LOCALSERIAL=seqDn
...
注:配置文件中的序列名建议为大写。
使用序列方式: 1304762593797345280(XXX为sequence表中的序列名)。