初遇Hibernate逆向的坑,The maximum column size is 767 bytes 暨 max key length is 1000 bytes

遇到的问题----Column length too big for column DBD::mysql::st execute failed: Column length too big for column 'rooms_keyid      ' (max = 21845); use BLOB or TEXT instead at createalltable.pl line 137. ERROR::create table IF NOT EXISTS `rooms_get 阅读详情

刚用hibernate生成时出现了max key length is 1000 bytes

查了下发现是Myisam引擎会有key长度的限制, 超过1000bytes就会报错,所以要将Mysql引擎修改为Innodb

结果看了下,生成表都是MyIsam要改死了,只能全删除,但删除数量也不少,找了个生成批量删除表的sql,还好表有共同前缀,方便不少。将生成的sql执行就好。

Select CONCAT( 'drop table ', table_name, ';' ) 
FROM information_schema.tables 
Where table_schema='mydatabase'  table_name LIKE ' sql_%';

现在回到正题解决这引擎问题从配置下手, 这问题出现在我要布署github上拉下来的开源项目,一般的话配置改成

org.hibernate.dialect.MySQL5Dialect

就没问题了,但这里不行需要改成 

org.hibernate.dialect.MySQL57Dialect

改完后就出现 The maximum column size is 767 bytes,看了下说是索引过长,这改起来比较麻烦,我的做法就是缩短下索引列的长度。一般utf8字符的话,改成255再创建索引就ok了,然后重启服务hibernate会跳过已经生成好的表。

以下是正规做法。

要先检查一下是不是数据库被限制了索引的大小
SHOW variables like 'innodb_large_prefix'

如果查询的值是OFF的话 执行下面命令,如果命令不起作用可以到 C:/programData/mysql/mysql5.6/my.ini 下加一句 innodb_large_prefix=1, 然后重启mysql服务

SET GLOBAL INNODB_LARGE_PREFIX = ON;

执行完了 之后 还得查看当前的innodb_file_format引擎格式类型是不是BARRACUDA

执行 SHOW variables like 'innodb_file_format'

如果不是的话则需要修改 SET GLOBAL innodb_file_format = BARRACUDA;

最后还需要更改表的结构:

alter table house_8090 row_format=dynamic;
alter table house_8090 row_format=compressed;

最后拾人牙慧也就不标原创了。

从零构建生产级K8s-v1.35.0集群:基于Containerd与Cilium的kubeadm实战指南 本文详细介绍了从零构建生产级K8s-v1.35.0集群的全过程,涵盖环境准备、Containerd配置、Kubernetes组件安装、集群初始化及Cilium网络部署等关键步骤。通过实战经验分享系统调优技巧和常见问题解决方案,帮助读者快速搭建稳定高效的Kubernetes集群。 阅读详情

相关推荐

ADS 使用教程(十八)Encrypting Designs using RFIP Encoder in ADS

在这一节,我们使用RFIP Encoder进行设计加密,这是一种保护知识产权和敏感设计数据的重要方法。RFIP Encoder提供了一种安全的方式来加密设计文件,确保只有授权人员能够访问和使用这些文件。

Dirge19的博客 1170

Hibernate自动创建表报错:Specified key was too long; max key length is 1000 bytes

报错如题 解决方法:xxx.hbm.xml文件中,将id标签的属性length设置为小于1000bytes就行(报错是1000bytes,所以要根据主键的类型来决定大小)

u012308827的博客 340

极化码自适应CA-SCL译码(极化码译码)

我们知道最初极化码提出来是运用SC译码,但短码和中等长度其译码性(误码率)能不如LDPC码码,,为了提升有限长度极化码的译码性能,我们主要从译码器的性能和极化码的纠错性能来考虑。 SCL:在增加复杂度的情况下,大幅度增加极化码纠错性能,在高信噪比下,与最优ML性能相同(L=32) CA-SCL:改善最小汉明距离(最小汉明距离增大),增加其纠错性能。把CRC和极化码极联。 自适应CA-SCL:CA-SCL译码虽然提升几乎没的纠错性能,但是导致复杂度大幅度增加,为了降低其复杂度,让L自适应,从而降低其复杂度

m0_52610504的博客 3294

hibernate注解中@Column(s) not allowed on a @ManyToOne property错误

这是一个困扰了我好几天的错误,xml文件的配置不必说,没有配出什么问题,但是在使用注解的时候遇到了如下的错误信息Caused by: org.hibernate.AnnotationException: @Column(s) not allowed on a @ManyToOne property: cn.itcast.domain.Customer.cust_industry at org.h...

laomadawei的博客 2479

攻防实战之Confluence后利用

这边管理员密码是密文加密在数据库中,解不开,因此解决的思路是将管理员用户密码修改为已知明文密码的密文(这边不能直接在数据库中添加字段,关系型数据库在单表中添加一条字段可能会出现问题),登录上后台以后,添加用户并加入管理员组,最后将管理员密码还原。Confluence的后利用主要问题在于在Linux中搭建时,默认是Confluence用户权限,如下图所示,而confluence在linux中是没有写权限的,这也就是为什么有些人发现可以执行命令但是shell写不进去。至此admin的密码被改为了123123。

weixin_39251927的博客 2716

银河麒麟V10系统下,手把手解决Ollama安装报错‘GLIBCXX_3.4.25 not found’

本文详细介绍了在银河麒麟V10系统下解决Ollama安装报错‘GLIBCXX_3.4.25 not found’的实战指南。通过隔离编译新版libstdc++、环境变量引导和服务化封装等安全方案,确保在不破坏系统稳定性的前提下顺利运行Ollama,适用于国产操作系统与AI工具的兼容性需求。

weixin_42556197的博客 484

Index column size too large. The maximum column size is 767 bytes.

MySQL5.7的版本对索引长度默认是767字节,超出会报错,限制索引长度是为了提高索引的查询效率和减少索引存储的空间,毕竟大的索引key查询和维护起来开销都比较大。导入SQL脚本文件到MySQL5.7版本中,提示导入失败,失败信息: Index column size too large. The maximum column size is 767 bytes.意思式索引长度太长,默认最大的长度为767字节。然后重新执行SQL脚本即可,值得一提的是,当数据库重启后这两个配置会恢复成修改之前的值。

guliudeng的博客 5227

【毕设】基于LoRa的物联网控制器:从原理图到PCB的完整硬件设计指南

本文提供了一份完整的基于LoRa的物联网控制器硬件设计指南,涵盖从系统框图、原理图设计到PCB布局布线的全流程。详细讲解了电源电路、单片机最小系统、信号接口以及LoRa无线模块等核心模块的设计要点与抗干扰技巧,并分享了实用的调试心得,旨在帮助电子、物联网专业学生顺利完成毕业设计,掌握低功耗远距离物联网节点的硬件开发实践。

weixin_42126677的博客 307

Mysql Index column size too large. The maximum column size is 767 bytes.错误解决办法

Mysql Index column size too large. The maximum column size is 767 bytes.错误解决办法 问题 今天将mysql从研发库迁移正式库的时候,遇到一个问题:Index column size too large. The maximum column size is 767 bytes.在此记录一下解决办法。 原因 产生此问题的原因是因为MySQL Innodb索引字段长度最大为767字节,如果索引大小超过767字节则会引发该错误。

zz0828zz的博客 6857

使用光流进行 Warp 的流程

光流描述了图像帧中每个像素的运动。前向光流:描述了帧中每个像素在帧中的移动位置。后向光流:描述了帧中每个像素在帧​ 中的移动位置。水平方向的位移(x 方向),即每个像素水平移动了多少像素。垂直方向的位移(y 方向),即每个像素垂直移动了多少像素。使用光流进行 Warp 的流程Warp 是通过光流对图像进行变换的操作,旨在将前一帧的像素根据光流场映射到下一帧的对应位置。Step 1: 计算光流我们首先需要通过光流网络(如 RAFT)来估算两帧之间的光流。我们可以获得前向光流(从帧​ 到帧。

qq_44199605的博客 2108

android osmdroid 加载常用离线地图格式(开源的在线地图)

osmdroid是(几乎)完整/免费更换为Android MapView(v1 API)类。它还包括一个模块化的瓷砖供应商系统支持众多的在线和离线瓷砖来源和覆盖支持内置覆盖绘制图标,跟踪位置和形状。如果想在你项目中使用osmdroid,绝对是灵活度最高,不用申请百度,高德等的key。还有一堆规则要遵循。osmdroid可以支持多图层叠加,绘制自已的图层。离线加载常用地图格式zip,sqlite,.

mmsx990的博客 1万+

解决MySQL报 index column size too large. the maximum column size is 767 bytes 问题

解决MySQL报 index column size too large. the maximum column size is 767 bytes 问题 当修改某一张表的某一个字段时报此错误:index column size too large. the maximum column size is 767 bytes原因分析如下: mysql的的搜索引擎是innodb; innodb_large_prefix ON :Innodb表的行记录格式(row format)是Dynamic或Compress

weixin_52005792的博客 1万+

Opus Clip AI技术浅析(一)

Opus Clip AI 是一款由Opus公司推出的AI视频剪辑工具,旨在通过人工智能技术简化视频编辑过程,帮助用户快速从长视频中提取精彩片段,并生成适合社交媒体分享的短视频。

m0_75253143的博客 2153

The maximum column size is 767 bytes错误处理

错误原因: 由于MySQL的Innodb引擎表索引字段长度的限制为767字节,因此对于多字节字符集的大字段或者多字段组合,创建索引时会出现此错误。 以utf8mb4字符集字符串类型字段为例,utf8mb4是4字节字符集,则默认支持的索引字段最大长度是191字符(767字节/4字节每字符≈191字符), 因此在varchar(255)或char(255)类型字段上创建索引会失败。详情请参见MySQ...

lvxiucai的博客 1237

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

efm32 入门.pdf

本PDF共计22页,介绍的是操作驱动API,下载与否自己斟酌。

Index column size too large. The maximum column size is 767 bytes

初始化sql报错:Index column size too large. The maximum column size is 767 bytes 错误原因:数据库索引过长超过限制,数据库引擎为INNODB 引擎,编码UTF-8,主键字符串默认最大767。 解决办法: 1、修改数据库配置: vi /etc/my.cnf 2、添加如下2个配置: innodb_large_prefix=on innodb_file_format=BARRACUDA 3、重启数据库: systemctl restart my

李振伟的博客 2640

WINCC7.3破解文件

WINCC7.3硬件够破解文件,有需要的下载!WINCC7.3硬件够破解文件,有需要的下载!

mysql 16383_MySQL varchar 字段报错 Column length too big for column 'name' (max = 16383)

问题现象:当创建 字符集类型为 utf8mb4、字段可以为 NULL 值、只有 1 个 varchar 字段的表 t1 时,报错 Column length too big for column 'name' (max = 16383) 。CREATE TABLE t1 (name varchar(65535) NULL) CHARSET=utf8mb4;原因分析:VARCHAR 字段类型最多能...

weixin_42683394的博客 2969

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

mysql报错:The maximum column size is 767 bytes; max key length is 767 bytes

Specified key was too long; max key length is 767 bytes Index column size too large. The maximum column size is 767 bytes 列、索引长度超出了限制大小: innode引擎-索引的每列最长不能超过767bytes,组成索引的列长度和不能大于3072bytes myisam引擎...

飞乐鸟的博客 1191

MySQL index column size too large. the maximum column size is 767 bytes问题解决

以前部署环境在初始化这一步,毫无问题,一马平川,今天栽倒在平川的坑洼中,需要挣扎一波。报错信息一看是是与mysql的版本有关系,果断查询业务方提供的mysql版本,结果给出MySQL5.7,到此这就问题原因出来了。无法相信自己的眼睛,果断重新执行,哇塞,毫无意外,果断报错。对sql脚本进行修改,在出问题的建表语句后面,添加ROW_FORMAT=DYNAMIC,更改建表的行格式,来规避MySQL5.7索引长度的问题;当场觉得庆幸,辛苦检查了一波,要不然等交付后,出问题了,要背一个大龟壳,享受万夫所指…

爱折腾的小土豆的博客 1410

mysql #1709 - Index column size too large. The maximum column size is 767 bytes.

https://blog.youkuaiyun.com/qq_35209838/article/details/90238991 #1709 - Index column size too large. The maximum column size is 767 bytes.是什么原因导致的,如何处理? 一、原因 1、对于行格式为REDUNDANT和COMPACT的InnoDB表来说,索引的最大长度...

sun1504的专栏 4053

MySQL异常:Index column size too large. The maximum column size is 767 bytes

MySQL异常:Index column size too large. The maximum column size is 767 bytes 问题描述 Mysql创建索引时报错:Index column size too large. The maximum column size is 767 bytes. 问题定位 建表时使用 utf8mb4 字符集,这是一个4 字节字符集。 当索引最大限制是 767 bytes时,那么一个 varchar 字段:767/4=191.75。 当 varchar 字

wangzhihao的博客 9181

mysql Index column size too large 超过767,768错误解决方案

mysql Index column size too large 超过767,768错误解决方案

qq_19891197的博客 1695

mysql 的varchar字段不能超过16383 是怎样计算的

当创建 字符集类型为 utf8mb4、字段可以为 NULL 值、只有 1 个 varchar 字段的表 t1 时,报错 Column length too big for column ‘name’ (max = 16383)。

kingsoulfat的博客 1072

LeetCode刷题EASY篇Excel Sheet Column Number

题目 Given a column title as appear in an Excel sheet, return its corresponding column number. For example: A -> 1 B -> 2 C -> 3 ... Z -> 26 AA -> 27 AB -&...

Just Do It! 452

[Err] 1071 - Specified key was too long; max key length is 767 bytes,【各版本mysql均已解决】

MySQL 5.6中因索引列总长度超过767字节导致“Index column size too large”错误。解决方法:启用innodb_large_prefix=ON,设置innodb_file_format=Barracuda,并将表行格式改为DYNAMIC。MySQL 5.7及以上版本默认支持,无需额外配置。建议将MySQL 5.6升级至5.7或更高版本以避免兼容性问题。

君临天下tjm的博客 8710

mysql报 index column size too large. the maximum column size is 767 bytes错误解决

错误发生背景 今天django执行python manage.py migrate 结果报 Specified key was too long; max key length is 767 bytes 经过简单的分析是字符串长度大于767bytes,后来网上查询处理后面报 :index column size too large. the maximum column size is 767 bytes 解决处理 经网上的说法修改innodb_file_format 和 innodb_large_.

小贱的博客 3875

解决mysql创建索引时报错Index column size too large. The maximum column size is 767 bytes.

表的字段索引长度限制,由于MySQL的Innodb引擎表索引字段长度的限制为767字节,如果在varchar(255)或char(255)类型字段上创建索引会失败,当然还有其他情形也会产生此错误。然后重启mysql服务systemctl restart mysql。如此以后,添加索引就不会报此类错误。

shenxiaomo1688的博客 1457
上一篇: Headlike设计模式幕布笔记
下一篇: 关于C++,Java与Python取余的不同
吐司吐丝
博客等级 码龄10年 25粉丝 57原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值