输入以下命令打开编辑界面
- 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