Key too long-error (MySQL)
Versie door Jeroen Strompf (overleg | bijdragen) op 13 apr 2018 om 12:33 (Nieuwe pagina aangemaakt met 'In de lente van 2018 kreeg ik deze foutmelding tijdens het importeren van een db-dump op een werkstation waarop ik lang niet gewerkt had: #1071 - Specified key wa...')
In de lente van 2018 kreeg ik deze foutmelding tijdens het importeren van een db-dump op een werkstation waarop ik lang niet gewerkt had:
#1071 - Specified key was too long; max key length is 767 bytes
Deze code was de oorzaak:
DROP TABLE IF EXISTS `root_child`; /*!40101 SET @saved_cs_client = @@character_set_client */; /*!40101 SET character_set_client = utf8 */; CREATE TABLE `root_child` ( `sku_child` varchar(511) NOT NULL, `sku` varchar(255) NOT NULL DEFAULT '', `ean_id` varchar(13) DEFAULT NULL, `tool_id` varchar(255) DEFAULT NULL COMMENT 'Dit is een vereenvoudigde tool_id. Goede kans dat-ie niet precies overeenkomst met tabel tool', `tool_brand` varchar(255) DEFAULT NULL COMMENT 'Deze kolom is redundant, maar wel erg handig', `tool_type` varchar(255) DEFAULT NULL COMMENT 'Deze kolom is redundant, maar wel erg handig', `source` varchar(255) DEFAULT NULL, `trust` varchar(255) DEFAULT NULL, `cat` text COMMENT 'The records in this table are quite heterogenuous. Therefore, use this column to filter specific records', PRIMARY KEY (`sku_child`), KEY `tool_type` (`tool_type`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8; /*!40101 SET character_set_client = @saved_cs_client */;
Het probleem was de regel `sku_child` varchar(511) NOT NULL,
.
Oorzaak: Op de broncomputer gebruikte ik MySQL 5.7-nog wat, en op de doelcomputer MySQL 5.5-nog wat.
Upgraden ahv. [1]:
wget https://dev.mysql.com/get/mysql-apt-config_0.8.9-1_all.deb sudo gdebi mysql-apt-config_0.8.9-1_all.deb sudo apt-get update sudo apt-get install mysql-server
De eerste twee regels starten een interactief proces om apt-get te configureren mbt. MySQL - Interessant!