下载mycat.linux 版本
安装vmware,centos mini版本
vmware centos设置固定IP:
安装JDK,自己百度搜索吧
安装MySql5.6:
注:可以下载XSHELL、XFTP作为远程连接工具,下载作为Mysql客户端工具
修改%MycatHOME%/conf/server.xml、%MycatHOME%/conf/schema.xml
重启MyCAT,使用MySQL客户端连接MyCAT,需要注意的是,默认数据端口为8066,管理端口为9066,在MySQL客户端连接MyCAT时,注意填写端口为8066,用户名/密码根据server.xml中的配置进行填写。
使用客户端工具连接Mycat,配置schema.xmlMycat连接具体的数据库。我们的数据库操作就使用mycat的连接操作。
Mycat官网地址:
Mycat文档地址:
Mycat安装数据库文件:
数据库序列创建
DROP TABLE IF EXISTS MYCAT_SEQUENCE; CREATE TABLE MYCAT_SEQUENCE ( name VARCHAR(50) NOT NULL, current_value INT NOT NULL, increment INT NOT NULL DEFAULT 100, PRIMARY KEY (name) ) ENGINE=InnoDB;-- ------------------------------ Function structure for `mycat_seq_currval`-- ----------------------------DROP FUNCTION IF EXISTS `mycat_seq_currval`;DELIMITER ;;CREATE DEFINER=`root`@`%` FUNCTION `mycat_seq_currval`(seq_name VARCHAR(50)) RETURNS varchar(64) CHARSET latin1 DETERMINISTICBEGIN DECLARE retval VARCHAR(64); SET retval="-1,0"; SELECT concat(CAST(current_value AS CHAR),",",CAST(increment AS CHAR) ) INTO retval FROM MYCAT_SEQUENCE WHERE name = seq_name; RETURN retval ;END;;DELIMITER ;-- ------------------------------ Function structure for `mycat_seq_nextval`-- ----------------------------DROP FUNCTION IF EXISTS `mycat_seq_nextval`;DELIMITER ;;CREATE DEFINER=`root`@`%` FUNCTION `mycat_seq_nextval`(seq_name VARCHAR(50)) RETURNS varchar(64) CHARSET latin1 DETERMINISTICBEGIN DECLARE retval VARCHAR(64); DECLARE val BIGINT; DECLARE inc INT; DECLARE seq_lock INT; set val = -1; set inc = 0; SET seq_lock = -1; SELECT GET_LOCK(seq_name, 15) into seq_lock; if seq_lock = 1 then SELECT current_value + increment, increment INTO val, inc FROM MYCAT_SEQUENCE WHERE name = seq_name for update; if val != -1 then UPDATE MYCAT_SEQUENCE SET current_value = val WHERE name = seq_name; end if; SELECT RELEASE_LOCK(seq_name) into seq_lock; end if; SELECT concat(CAST((val - inc + 1) as CHAR),",",CAST(inc as CHAR)) INTO retval; RETURN retval;END;;DELIMITER ;-- ------------------------------ Function structure for `mycat_seq_setval`-- ----------------------------DROP FUNCTION IF EXISTS `mycat_seq_setval`;DELIMITER ;;CREATE DEFINER=`root`@`%` FUNCTION `mycat_seq_setval`(seq_name VARCHAR(50), value INTEGER) RETURNS varchar(64) CHARSET latin1 DETERMINISTICBEGIN DECLARE retval VARCHAR(64); DECLARE inc INT; SET inc = 0; SELECT increment INTO inc FROM MYCAT_SEQUENCE WHERE name = seq_name; UPDATE MYCAT_SEQUENCE SET current_value = value WHERE name = seq_name; SELECT concat(CAST(value as CHAR),",",CAST(inc as CHAR)) INTO retval; RETURN retval;END;;DELIMITER ;INSERT INTO MYCAT_SEQUENCE VALUES ('GLOBAL', 0, 100);SELECT MYCAT_SEQ_SETVAL('GLOBAL', 1);SELECT MYCAT_SEQ_CURRVAL('GLOBAL');SELECT MYCAT_SEQ_NEXTVAL('GLOBAL');