我目前正在将我的Concrete5.7设置从localhost移至实时服务器。我做的第一件事是导出SQL数据库并将其导入服务器上,但这给了我一个错误:
Error
SQL query:
-- --------------------------------------------------------
--
-- Tabelstructuur voor tabel `config`
--
CREATE TABLE IF NOT EXISTS `config` (
`configNamespace` VARCHAR( 255 ) COLLATE utf8_unicode_ci NOT NULL DEFAULT '',
`configGroup` VARCHAR( 255 ) COLLATE utf8_unicode_ci NOT NULL ,
`configItem` VARCHAR( 255 ) COLLATE utf8_unicode_ci NOT NULL ,
`configValue` LONGTEXT COLLATE utf8_unicode_ci,
PRIMARY KEY ( `configNamespace` , `configGroup` , `configItem` ) ,
KEY `configGroup` ( `configGroup` )
) ENGINE = INNODB DEFAULT CHARSET = utf8 COLLATE = utf8_unicode_ci;
MySQL said:
#1071 - Specified key was too long; max key length is 1000 bytes
我知道密钥太长,但是可以自由更改吗?我尝试将数据库排序规则更改为latin1,但是它没有用。
我可以更改哪些设置?
感谢您的任何反馈
最佳答案
那是主键的不佳选择-您不需要1000字节的熵就可以使行唯一
如果没有自然选择的主键,则可以为该行生成代理键。
例如更换
PRIMARY KEY ( `configNamespace` , `configGroup` , `configItem` ) ,
与
configId INT NOT NULL AUTO_INCREMENT PRIMARY KEY,
对于使用上述内容的应用程序,这不是一个重大更改。
关于mysql - 指定的 key 太长;最大 key 长度为1000个字节,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/27308814/