当我运行一个用MySQL做某些事情的程序时,我得到了这个错误消息:
2015-06-10 15:41:12,250 ERROR app.wsutils 419 INCRON: Error:('HY000','HY000ODBC 5.2(w) DriverIndex列大小太大。最大列大小为767字节。(1709) (SQLExecDirectW)')
我用谷歌搜索了一下,发现这个错误可能与innodb_large_prefix
选项有关。然而,我使用的是MySQL 5.7.7RC,它已经将innodb_large_prefix
设置为"ON“(在MySQL工作台中选中),允许最多3072字节。我不确定这是否是innodb_large_prefix
的问题所在。
不管怎样,有没有人知道如何解决这个问题?
发布于 2016-02-04 22:19:34
在BK435给出的答案的帮助下,我做了以下工作并解决了问题。
set global innodb_file_format = BARRACUDA;
set global innodb_large_prefix = ON;
create table test (........) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
发布于 2015-06-11 05:27:07
您尝试为其编制索引的列太大,并且您的设置对于innodb_large_prefix
而言一定不正确。为了让innodb_large_prefix
正常工作,还必须设置一些prerequisites参数。
您可以通过运行以下命令进行检查,以确保设置了innodb_large_prefix:
show global variables like 'innodb_lar%';
以下是使用innodb_large_prefix的几个先决条件:
您需要设置全局变量innodb_file_format=BARRACUDA
要检查设置,请运行:show global variables like 'innodb_fil%';
在表级,您必须使用ROW_FORMAT=DYNAMIC或ROW_FORMAT=COMPRESSED
对于Innodb,默认情况下以紧凑格式(ROW_FORMAT=COMPACT)存储行。
发布于 2021-12-12 06:41:40
从Wamp版本3.2.6开始
只需编辑此文件:C:\wamp64\bin\mysql\mysql8.0.27\my.ini更改innodb-default-row-format
值的配置
来自innodb-default-row-format=compact
转到innodb-default-row-format=dynamic
重启mysql
https://stackoverflow.com/questions/30761867
复制相似问题