0
点赞
收藏
分享

微信扫一扫

Specified key was too long; max key length is 767 bytes [Failed SQL: CREATE INDEX


1、liquibase 异常:

  .   ____          _            __ _ _

 /\\ / ___'_ __ _ _(_)_ __  __ _ \ \ \ \

( ( )\___ | '_ | '_| | '_ \/ _` | \ \ \ \

 \\/  ___)| |_)| | | | | || (_| |  ) ) ) )

  '  |____| .__|_| |_|_| |_\__, | / / / /

 =========|_|==============|___/=/_/_/_/

 :: Spring Boot ::        (v2.0.3.RELEASE)

{com.gildata.threebody.tbm.dao.mapper.middleground.HwNewsInfoMapper.selectById} Has been loaded by XML or SqlProvider, ignoring the injection of the SQL.

2021-01-07 20:34:41.532|ERROR|main|64|liquibase                               :classpath:liquibase/*.xml: classpath:liquibase/*.xml::202012131200::malin: Change Set classpath:liquibase/*.xml::202012131200::malin failed.  Error: Specified key was too long; max key length is 767 bytes [Failed SQL: CREATE INDEX index_contantType ON npp.npp_rule_contant(contant_type)]

2021-01-07 20:34:44.334|ERROR|main|842|o.s.boot.SpringApplication              :Application run failed

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in file [E:\workcode\doubleCOde\three-body-audit\tbm-compose\tbm-dao\target\classes\spring\spring-mybatis.xml]: Invocation of init method failed; nested exception is liquibase.exception.MigrationFailedException: Migration failed for change set classpath:liquibase/*.xml::202012131200::malin:

     Reason: liquibase.exception.DatabaseException: Specified key was too long; max key length is 767 bytes [Failed SQL: CREATE INDEX index_contantType ON npp.npp_rule_contant(contant_type)]

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1708)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:581)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:503)

    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)

    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)

    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)

    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:760)

    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:869)

    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)

    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)

    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759)

    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395)

    at org.springframework.boot.SpringApplication.run(SpringApplication.java:327)

    at com.gildata.threebody.tbm.starter.bootstrap.Application.main(Application.java:27)

Caused by: liquibase.exception.MigrationFailedException: Migration failed for change set classpath:liquibase/*.xml::202012131200::malin:

     Reason: liquibase.exception.DatabaseException: Specified key was too long; max key length is 767 bytes [Failed SQL: CREATE INDEX index_contantType ON npp.npp_rule_contant(contant_type)]

    at liquibase.changelog.ChangeSet.execute(ChangeSet.java:619)

    at liquibase.changelog.visitor.UpdateVisitor.visit(UpdateVisitor.java:51)

    at liquibase.changelog.ChangeLogIterator.run(ChangeLogIterator.java:79)

    at liquibase.Liquibase.update(Liquibase.java:214)

    at liquibase.Liquibase.update(Liquibase.java:192)

    at liquibase.integration.spring.SpringLiquibase.performUpdate(SpringLiquibase.java:431)

    at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:388)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1767)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1704)

    ... 14 common frames omitted

Caused by: liquibase.exception.DatabaseException: Specified key was too long; max key length is 767 bytes [Failed SQL: CREATE INDEX index_contantType ON npp.npp_rule_contant(contant_type)]

    at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:309)

    at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:55)

    at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:113)

    at liquibase.database.AbstractJdbcDatabase.execute(AbstractJdbcDatabase.java:1277)

    at liquibase.database.AbstractJdbcDatabase.executeStatements(AbstractJdbcDatabase.java:1259)

    at liquibase.changelog.ChangeSet.execute(ChangeSet.java:582)

    ... 22 common frames omitted

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes

    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

    at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

    at com.mysql.jdbc.Util.getInstance(Util.java:408)

    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944)

    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3976)

    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3912)

    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2530)

    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683)

    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2482)

    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2440)

    at com.mysql.jdbc.StatementImpl.executeInternal(StatementImpl.java:845)

    at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:745)

    at com.alibaba.druid.filter.FilterChainImpl.statement_execute(FilterChainImpl.java:2958)

    at com.alibaba.druid.filter.FilterAdapter.statement_execute(FilterAdapter.java:2473)

    at com.alibaba.druid.filter.FilterEventAdapter.statement_execute(FilterEventAdapter.java:188)

    at com.alibaba.druid.filter.FilterChainImpl.statement_execute(FilterChainImpl.java:2956)

    at com.alibaba.druid.proxy.jdbc.StatementProxyImpl.execute(StatementProxyImpl.java:147)

    at com.alibaba.druid.pool.DruidPooledStatement.execute(DruidPooledStatement.java:619)

    at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:307)

    ... 27 common frames omitted

org.springframework.beans.factory.BeanCreationException: Error creating bean with name 'liquibase' defined in file [E:\workcode\doubleCOde\three-body-audit\tbm-compose\tbm-dao\target\classes\spring\spring-mybatis.xml]: Invocation of init method failed; nested exception is liquibase.exception.MigrationFailedException: Migration failed for change set classpath:liquibase/*.xml::202012131200::malin:

     Reason: liquibase.exception.DatabaseException: Specified key was too long; max key length is 767 bytes [Failed SQL: CREATE INDEX index_contantType ON npp.npp_rule_contant(contant_type)]

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1708)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.doCreateBean(AbstractAutowireCapableBeanFactory.java:581)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.createBean(AbstractAutowireCapableBeanFactory.java:503)

    at org.springframework.beans.factory.support.AbstractBeanFactory.lambda$doGetBean$0(AbstractBeanFactory.java:317)

    at org.springframework.beans.factory.support.DefaultSingletonBeanRegistry.getSingleton(DefaultSingletonBeanRegistry.java:222)

    at org.springframework.beans.factory.support.AbstractBeanFactory.doGetBean(AbstractBeanFactory.java:315)

    at org.springframework.beans.factory.support.AbstractBeanFactory.getBean(AbstractBeanFactory.java:199)

    at org.springframework.beans.factory.support.DefaultListableBeanFactory.preInstantiateSingletons(DefaultListableBeanFactory.java:760)

    at org.springframework.context.support.AbstractApplicationContext.finishBeanFactoryInitialization(AbstractApplicationContext.java:869)

    at org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:550)

    at org.springframework.boot.web.servlet.context.ServletWebServerApplicationContext.refresh(ServletWebServerApplicationContext.java:140)

    at org.springframework.boot.SpringApplication.refresh(SpringApplication.java:759)

    at org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:395)

    at org.springframework.boot.SpringApplication.run(SpringApplication.java:327)

    at com.gildata.threebody.tbm.starter.bootstrap.Application.main(Application.java:27)

Caused by: liquibase.exception.MigrationFailedException: Migration failed for change set classpath:liquibase/*.xml::202012131200::malin:

     Reason: liquibase.exception.DatabaseException: Specified key was too long; max key length is 767 bytes [Failed SQL: CREATE INDEX index_contantType ON npp.npp_rule_contant(contant_type)]

    at liquibase.changelog.ChangeSet.execute(ChangeSet.java:619)

    at liquibase.changelog.visitor.UpdateVisitor.visit(UpdateVisitor.java:51)

    at liquibase.changelog.ChangeLogIterator.run(ChangeLogIterator.java:79)

    at liquibase.Liquibase.update(Liquibase.java:214)

    at liquibase.Liquibase.update(Liquibase.java:192)

    at liquibase.integration.spring.SpringLiquibase.performUpdate(SpringLiquibase.java:431)

    at liquibase.integration.spring.SpringLiquibase.afterPropertiesSet(SpringLiquibase.java:388)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.invokeInitMethods(AbstractAutowireCapableBeanFactory.java:1767)

    at org.springframework.beans.factory.support.AbstractAutowireCapableBeanFactory.initializeBean(AbstractAutowireCapableBeanFactory.java:1704)

    ... 14 more

Caused by: liquibase.exception.DatabaseException: Specified key was too long; max key length is 767 bytes [Failed SQL: CREATE INDEX index_contantType ON npp.npp_rule_contant(contant_type)]

    at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:309)

    at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:55)

    at liquibase.executor.jvm.JdbcExecutor.execute(JdbcExecutor.java:113)

    at liquibase.database.AbstractJdbcDatabase.execute(AbstractJdbcDatabase.java:1277)

    at liquibase.database.AbstractJdbcDatabase.executeStatements(AbstractJdbcDatabase.java:1259)

    at liquibase.changelog.ChangeSet.execute(ChangeSet.java:582)

    ... 22 more

Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Specified key was too long; max key length is 767 bytes

    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)

    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)

    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)

    at java.lang.reflect.Constructor.newInstance(Constructor.java:423)

    at com.mysql.jdbc.Util.handleNewInstance(Util.java:425)

    at com.mysql.jdbc.Util.getInstance(Util.java:408)

    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:944)

    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3976)

    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3912)

    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2530)

    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2683)

    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2482)

    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2440)

    at com.mysql.jdbc.StatementImpl.executeInternal(StatementImpl.java:845)

    at com.mysql.jdbc.StatementImpl.execute(StatementImpl.java:745)

    at com.alibaba.druid.filter.FilterChainImpl.statement_execute(FilterChainImpl.java:2958)

    at com.alibaba.druid.filter.FilterAdapter.statement_execute(FilterAdapter.java:2473)

    at com.alibaba.druid.filter.FilterEventAdapter.statement_execute(FilterEventAdapter.java:188)

    at com.alibaba.druid.filter.FilterChainImpl.statement_execute(FilterChainImpl.java:2956)

    at com.alibaba.druid.proxy.jdbc.StatementProxyImpl.execute(StatementProxyImpl.java:147)

    at com.alibaba.druid.pool.DruidPooledStatement.execute(DruidPooledStatement.java:619)

    at liquibase.executor.jvm.JdbcExecutor$ExecuteStatementCallback.doInStatement(JdbcExecutor.java:307)

    ... 27 more

{com.gildata.threebody.tbm.dao.mapper.middleground.HwNewsInfoMapper.selectById} Has been loaded by XML or SqlProvider, ignoring the injection of the SQL.



原来是汉字不能超过767个汉字不然无法建立索引

<column name="contant_type" type="varchar(500)" remarks="常量类型"/>

下面这句作废了

<createIndex indexName="index_type" tableName="npp_rule_contant">
<column name="contant_type"></column>
</createIndex>



举报

相关推荐

0 条评论