Description:
When I have done the tablespace migration, execute "delete from red limit 1000;",then mysqld_safe mysqld restarted.
attention:
the red.ibd file come from the version of mysql 5.6.35. i want to import it into the the version of mysql 5.7.21.
the errorlog is:
InnoDB: record PHYSICAL RECORD: n_fields 3; compact format; info bits 0
0: len 19; hex 32303138303331313039393030303030313930; asc 2018031109900000190;;
1: len 9; hex e5b7b2e8bf87e69c9f; asc ;;
2: len 19; hex 32303137303731383133353333303137393939; asc 2017071813533017999;;
2018-06-05T01:40:46.730742Z 0 [ERROR] InnoDB: page [page id: space=107, page number=28] (221 records, index id 147).
2018-06-05T01:40:46.730749Z 0 [ERROR] InnoDB: Submit a detailed bug report to http://bugs.mysql.com
2018-06-05T01:40:46.730765Z 0 [ERROR] InnoDB: Unable to find a record to delete-mark
InnoDB: tuple DATA TUPLE: 3 fields;
0: len 19; hex 32303138303331313039393030303030313932; asc 2018031109900000192;;
1: len 9; hex 8eb0e98791e588b8e5; asc ;;
2: len 19; hex 32303137303731383133353333303137393939; asc 2017071813533017999;;
How to repeat:
first,create table like this:
CREATE TABLE `red` (
`id` varchar(255) NOT NULL,
`name` varchar(128) DEFAULT NULL COMMENT '礼券名称',
`user_id` varchar(32) NOT NULL COMMENT '用户id',
`money` double NOT NULL DEFAULT '0' COMMENT '现金券金额',
`surplus` double NOT NULL DEFAULT '0' COMMENT '现金券剩余金额',
`rate` double DEFAULT NULL COMMENT '加息率',
`type` varchar(32) DEFAULT NULL COMMENT '礼券类型(加息券,现金券,翻倍卡)',
`status` varchar(32) NOT NULL COMMENT '状态',
`time` datetime NOT NULL COMMENT '发放时间',
`use_time` datetime DEFAULT NULL COMMENT '使用时间',
`start_time` datetime DEFAULT NULL COMMENT '使用开始期限限制',
`end_time` datetime NOT NULL COMMENT '使用结束期限限制(礼券过期时间)',
`min_period` int(11) DEFAULT NULL COMMENT '最小可投期限限制(标的时间)',
`max_period` int(11) DEFAULT '0' COMMENT '最大可投期限限制(标的时间)',
`min_invest_money` double DEFAULT NULL COMMENT '最小投资金额限制(投资金额)',
`max_invest_money` double(11,0) DEFAULT '0' COMMENT '最大投资金额限制(投资金额)',
`invest_id` varchar(32) DEFAULT NULL COMMENT '出借id',
`remark` varchar(255) DEFAULT NULL COMMENT '礼券说明',
`isread` varchar(32) DEFAULT '未读' COMMENT '用户是否已读',
`multiple` double DEFAULT '1' COMMENT '翻倍卡倍数',
`coupon_multiple` double DEFAULT NULL,
`ticket_id` varchar(255) DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `id` (`id`,`status`,`user_id`) USING BTREE,
KEY `fk_user_id` (`user_id`) USING BTREE,
KEY `IDX_INVEST_ID` (`invest_id`) USING BTREE,
KEY `index_time_status` (`status`,`time`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='礼券表' ROW_FORMAT=COMPACT;
the second step:
attention:[the red.ibd file come from the version of mysql 5.6.35. i want to import it into the the version of mysql 5.7.21.]
alter table red discard tablespace;
copy red.ibd to xxx.xxx.xx.xx:/data/mysql/mysql3360/lixingzhou/
alter table red import tablespace;
i excute 'select count(*) from red;' is ok;when i excute "delete * from red limit 1000;" the mysqld&mysqld_safe restart.