Mycat之数据库主键自增长(本地文件的方式)-yellowcong

通过本地文件的方式,mycat将配置classpath目录下面的sequence_conf.properties文件中,自动进行增长,但是这个自增长的问题是,每当mycat重启之后,计数的方式就改变了,需要重新开始了。这种方式不适合。实现的步骤,1、创建数据库。2、配置schema.xml文件,设定主键和自增长,3、配置server.xml,配置为本地文件方式,4、配置equence_conf.properties文件,添加需要自增表的增长id方式。

配置数据库

#创建数据库
create database mycat;

#添加表
use mycat 
#创建表test
create table test4(id int auto_increment primary key,name varchar(32)) ;

#创建数据库
create database mycat3;

#添加表
use mycat2
#创建表test
create table test4(id int auto_increment primary key,name varchar(32)) ;

Mycat之数据库主键自增长(本地文件的方式)-yellowcong_第1张图片

配置mycat

1、schema.xml

#编辑schema文件
vim ./conf/schema.xml

#添加配置
"test4" dataNode="jdbc_node1,jdbc_node2" primaryKey="id" autoIncrement="true"  type="global"/>

下面是全部配置



<mycat:schema xmlns:mycat="http://io.mycat/">

        <schema name="yellowcong" checkSQLschema="true" sqlMaxLimit="1000">
                <table name="test4" dataNode="jdbc_node1,jdbc_node2" primaryKey="id" autoIncrement="true"  type="global"/>
        schema>


        <dataNode name="jdbc_node1" dataHost="localhost" database="mycat" />
        <dataNode name="jdbc_node2" dataHost="localhost" database="mycat2" />


        <dataHost name="localhost" maxCon="1000" minCon="10" balance="0"
                          writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
                <heartbeat>select user()heartbeat>

                <writeHost host="hostM1" url="127.0.0.1:3306" user="root" password="root" />

        dataHost>
mycat:schema>

2、server.xml

#编辑 server.xml
vim ./conf/server.xml

#修改主键生成策略
<property name="sequnceHandlerType">0property>

下面是完整配置




<mycat:server xmlns:mycat="http://io.mycat/">
        <system>
        <property name="serverPort">8066property>
        <property name="useSqlStat">0property>  
        <property name="useGlobleTableCheck">0property>  

                <property name="sequnceHandlerType">0property>

                
                <property name="processorBufferPoolType">0property>


                
                <property name="handleDistributedTransactions">0property>

                        
                <property name="useOffHeapForMerge">1property>

                
                <property name="memoryPageSize">1mproperty>

                
                <property name="spillsFileBufferSize">1kproperty>

                <property name="useStreamOutput">0property>

                
                <property name="systemReserveMemorySize">384mproperty>


                
                <property name="useZKSwitch">trueproperty>
        system>


        <user name="root">
                <property name="password">rootproperty>
                <property name="schemas">yellowcongproperty>

        user>

        <user name="user">
                <property name="password">userproperty>
                <property name="schemas">yellowcongproperty>
                <property name="readOnly">trueproperty>
        user>

mycat:server>

3、sequence_conf.properties

#编辑
vim conf/sequence_conf.properties

#添加下面配置
#TEST4 是表名称
#HISIDS 表示历史分段(一般无特殊需要则可以不配置)
#MINID 最小id
#MAXID 最大id
#CURID 当前id
TEST4.HISIDS=
TEST4.MINID=1001
TEST4.MAXID=2000
TEST4.CURID=1000

TEST4是表明,必须大写
Mycat之数据库主键自增长(本地文件的方式)-yellowcong_第2张图片

测试

重启mycat服务器后,插入数据进行测试

#连接mycat
mysql -h 127.0.0.1 -P 8066 -u root -proot

#使用yellowcong这个数据库
use yellowcong;

#插入数据
insert into test4(name) values('doubi'),('doubi2'),('yellowcong');

#查询数据
select * from test4;

大家可以看到主键的id是从1001开始往下计算的。

Mycat之数据库主键自增长(本地文件的方式)-yellowcong_第3张图片

可以看到,每次插入一条数据,就会更新一下这个当前id.
Mycat之数据库主键自增长(本地文件的方式)-yellowcong_第4张图片

问题集合

Lost connection to MySQL server during query

导致这个问题是的是,俺的sql文写错了,妈蛋的,我自己也是给惊呆了。

这里写图片描述

你可能感兴趣的:(数据库中间件)