输入以下命令打开编辑界面
-
sudo vi /etc/mysql/my.cnf
在[mysqld]下加入以下配置:
由于 MySQL Innodb 引擎表索引字段长度的限制为 767 字节,因此对于多字节字符集的大字段(或者多字段组合索引),创建索引会出现上面的错误。
以 utf8mb4 字符集 字符串类型字段为例:utf8mb4 是 4 字节字符集,则默认支持的索引字段最大长度是: 767 字节 / 4 字节每字符 = 191 字符,因此在 varchar(255) 或 char(255) 类型字段上创建索引会失败。
注:MySQL官网关于 utf8mb4 字符集的参考文档

以上具体参考来源:RDS MySQL 建索引时 Specified key was too long; max key length is 767 bytes 错误的处理
-
innodb_file_format=barracuda
-
innodb_file_per_table=true
-
innodb_large_prefix=true
-
character-set-server=utf8mb4
-
collation-server=utf8mb4_unicode_ci
-
max_allowed_packet=500M
在mysql中,输入以下命令创建数据库nutch
-
CREATE DATABASE nutch DEFAULT CHARACTER SET utf8mb4 DEFAULT COLLATE utf8mb4_unicode_ci;
输入以下指令使用数据库nutch
输入以下指令创建数据库:
-
CREATE TABLE `webpage` (
-
`id` varchar(767) NOT NULL,
-
`headers` blob,
-
`text` longtext DEFAULT NULL,
-
`status` int(11) DEFAULT NULL,
-
`markers` blob,
-
`parseStatus` blob,
-
`modifiedTime` bigint(20) DEFAULT NULL,
-
`prevModifiedTime` bigint(20) DEFAULT NULL,
-
`score` float DEFAULT NULL,
-
`typ` varchar(32) DEFAULT NULL,
-
`batchId` varchar(32) DEFAULT NULL,
-
`baseUrl` varchar(767) DEFAULT NULL,
-
`content` longblob,
-
`title` varchar(2048) DEFAULT NULL,
-
`reprUrl` varchar(767) DEFAULT NULL,
-
`fetchInterval` int(11) DEFAULT NULL,
-
`prevFetchTime` bigint(20) DEFAULT NULL,
-
`inlinks` mediumblob,
-
`prevSignature` blob,
-
`outlinks` mediumblob,
-
`fetchTime` bigint(20) DEFAULT NULL,
-
`retriesSinceFetch` int(11) DEFAULT NULL,
-
`protocolStatus` blob,
-
`signature` blob,
-
`metadata` blob,
-
PRIMARY KEY (`id`)
-
) ENGINE=InnoDB
-
ROW_FORMAT=COMPRESSED
-
DEFAULT CHARSET=utf8mb4;
参考官方文档:http://wiki.apache.org/nutch/#Tutorials