我目前正在将我的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/

10-14 03:50