use*_*615 12 mysql database size innodb mysql-workbench
当我运行一个与MySQL有关的程序时,我收到了以下错误消息:
2015-06-10 15:41:12,250 ERROR app.wsutils 419 INCRON:错误:('HY000','[HY000] [MySQL] [ODBC 5.2(w)驱动程序] [mysqld-5.7.7-rc-log]索引列大小太大.最大列大小为767字节.(1709)(SQLExecDirectW)')
我用Google搜索了一下,发现此错误可能与该innodb_large_prefix选项有关.但是,我使用的是MySQL 5.7.7 rc,它已经设置innodb_large_prefix为"ON"(在MySQL Workbench中检查),允许最多3072个字节.我不确定这是不是问题innodb_large_prefix.
无论如何,有没有人知道如何解决这个问题?
小智 60
从 Wamp 版本 3.2.6 开始,
只需编辑此文件:
C:\wamp64\bin\mysql\mysql8.0.27\my.iniinnodb-default-row-format将值
的配置
从更改innodb-default-row-format=compact
为 innodb-default-row-format=dynamic
重新启动 mysql
Sas*_*ala 17
在BK435给出的答案的帮助下,我做了以下并解决了问题.
set global innodb_file_format = BARRACUDA;
set global innodb_large_prefix = ON;
create table test (........) ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC;
Run Code Online (Sandbox Code Playgroud)
BK4*_*435 15
您要编制索引的列太大,您的设置必须不正确innodb_large_prefix.还必须设置一些先决条件参数才能innodb_large_prefix正常工作.
您可以检查以确保通过运行来设置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,默认情况下行以COMPACT格式存储(ROW_FORMAT = COMPACT).
对于我使用 Mariadb 10.1.31,只需在登录 Mysql CLI 时添加以下内容:
SET GLOBAL innodb_file_format = Barracuda;
SET GLOBAL innodb_file_per_table = ON;
SET GLOBAL innodb_large_prefix = ON;
SET GLOBAL innodb_default_row_format = 'DYNAMIC';
Run Code Online (Sandbox Code Playgroud)
小智 6
我使用的是 MariaDB 版本 10.1.38 并使用了以下所有给定的命令,但它不起作用 -
set global innodb_large_prefix = ON;
Query OK, 0 rows affected (0.00 sec)
set global innodb_file_per_table = ON;
Query OK, 0 rows affected (0.00 sec)
set global innodb_file_format = Barracuda;
Query OK, 0 rows affected (0.00 sec)
SET GLOBAL innodb_default_row_format = 'DYNAMIC';
Run Code Online (Sandbox Code Playgroud)
因为在您重新启动 MySQL(或 MariaDB)后,这些设置将不会在 mysql 提示符下使用命令反映回来: show variables like 'innodb%';
然后我编辑了 My.ini 并将这些设置添加到以下位置的文件中 - C:\xampp\mysql\bin\my.ini
## Innodb settings to bypass error of max size 737
innodb-file-format=barracuda
innodb-file-per-table=ON
innodb-large-prefix=ON
## Above 3 didnot work so i added below
innodb_default_row_format = 'DYNAMIC'
Run Code Online (Sandbox Code Playgroud)
来源:https : //www.experts-exchange.com/questions/28675824/Why-am-I-unable-to-turn-innodb-large-prefix-ON-successfully-Every-time-I-reboot-mySql- on-my-Ubuntu-VPS-it-reset-to-OFF.html
小智 5
只需将以下选项添加到 my.cnf 中即可
[mysqld]
innodb_file_format=Barracuda
innodb_file_per_table=1
innodb_large_prefix=1
Run Code Online (Sandbox Code Playgroud)
然后,重新启动mysql服务器,问题就解决了。
| 归档时间: |
|
| 查看次数: |
47313 次 |
| 最近记录: |