【mysql异常】Specified key was too long; max key length is 1000 bytes

最近在创建数据库的时候,报错内容如下所示:

Caused by: java.sql.SQLSyntaxErrorException: Specified key was too long; max key length is 1000 bytes
	at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120) ~[mysql-connector-java-8.0.29.jar:8.0.29]
	at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122) ~[mysql-connector-java-8.0.29.jar:8.0.29]
	at com.mysql.cj.jdbc.StatementImpl.executeInternal(StatementImpl.java:763) ~[mysql-connector-java-8.0.29.jar:8.0.29]
	at com.mysql.cj.jdbc.StatementImpl.execute(StatementImpl.java:648) ~[mysql-connector-java-8.0.29.jar:8.0.29]
	at com.zaxxer.hikari.pool.ProxyStatement.execute(ProxyStatement.java:95) ~[HikariCP-3.1.0.jar:?]
	at com.zaxxer.hikari.pool.HikariProxyStatement.execute(HikariProxyStatement.java) ~[HikariCP-3.1.0.jar:?]
	at org.apache.skywalking.oap.server.library.client.jdbc.hikaricp.JDBCHikariCPClient.execute(JDBCHikariCPClient.java:82) ~[library-client-9.3.0.jar:9.3.0]
	at org.apache.skywalking.oap.server.storage.plugin.jdbc.mysql.MySQLTableInstaller.createTable(MySQLTableInstaller.java:118) ~[storage-jdbc-hikaricp-plugin-9.3.0.jar:9.3.0]
	at org.apache.skywalking.oap.server.storage.plugin.jdbc.h2.H2TableInstaller.createTable(H2TableInstaller.java:79) ~[storage-jdbc-hikaricp-plugin-9.3.0.jar:9.3.0]
	at org.apache.skywalking.oap.server.core.storage.model.ModelInstaller.whenCreating(ModelInstaller.java:55) ~[server-core-9.3.0.jar:9.3.0]
	at org.apache.skywalking.oap.server.core.storage.model.StorageModels.addModelListener(StorageModels.java:132) ~[server-core-9.3.0.jar:9.3.0]
	at org.apache.skywalking.oap.server.storage.plugin.jdbc.common.JDBCStorageProvider.start(JDBCStorageProvider.java:233) ~[storage-jdbc-hikaricp-plugin-9.3.0.jar:9.3.0]

问题排查:
1、看一下mysql的引擎是MyISAM,还是Innodb,如果是MyISAM,可以做一下修改
在MySQL启动配置文件my.ini中添加或修改:
default-storage-engine=INNODB
2、看一下数据库是不是被限制了索引大小,关闭此限制后,索引前缀的大小将可以达到3072字节。

SHOW variables like 'innodb_large_prefix';

在这里插入图片描述
如果value是OFF的话,可以执行以下命令

SET GLOBAL INNODB_LARGE_PREFIX = ON;
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值