我刚刚在一个VM上安装了Debian 8.3,并在此Tutorial之后安装了xampp。一切都很正常,直到我尝试创建一个新表:
create table testtable
(
id int(10) not null auto_increment,
firstname varchar(255) collate utf8mb4_german2_ci not null,
lastname varchar(255) collate utf8mb4_german2_ci not null,
primary key (id),
unique key (lastname)
)engine = innodb default charset=utf8mb4, collate=utf8mb4_german2_ci
我收到错误:#1709 - Index column size too large. The maximum column size is 767 bytes.
,然后我发现它来自prefix limitation
,它在Innodb
中被限制为767Byte,我可以通过在my.cnf文件中设置Innodb_Large_Prefix来修复这个问题。但是我找不到这个文件,它不在/etc/
下,也没有/etc/mysql/
-文件夹,我唯一找到的my.cnf
在/opt/lampp/etc/
中,然而,在我将innodb_large_prefix=1
添加到文件中并重新启动Lampp后。我仍然收到相同的错误。我做错什么了?
编辑:SELECT version()
返回5.6.14
,所以应该支持innodb_large_prefix
。
edit2:我知道我可以解决这个问题,只需将键的一部分设置为索引,使其低于767Byte。但我想在这里知道如何正确配置MySQL。
6条答案
按热度按时间bvn4nwqk1#
在5.6.3和5.7.7之间(即如果您运行的是MySQL 5.6或MariaDB 10.0),有4个步骤:
注意事项
将提供FILE_FORMAT和ROW_FORMAT。其他一些I_S表提供了关于FILE_PER_TABLE的线索。
olqngx592#
我正在使用带有WAMP服务器的MySQL 5.6.17我通过编辑my.ini文件解决了这个问题。在那里找到类别[mySQL]添加以下说明
不要忘记保存更改并重新启动所有服务。
vngu2lb83#
要获得永久解决方案,请在您的MariaDB My.INI文件中添加以下内容-
我用的是10.1.38
ct2axkht4#
转到您的xampp并添加以下查询:
h7appiyu5#
aamkag616#
我正在使用MySQL 8.0^,试图在laravel 9上执行PHP工匠迁移以解决此问题时遇到此错误。请转到MySQL上的WAMP服务器悬停,打开并编辑my.inistep 1将
default-storage-engine=MYISAM
更改为default-storage-engine=InnoDB
that's the final setting节省IT并重新启动所有服务