欢迎您来到腾讯云!积分商城

腾讯云腾讯云论坛

 找回密码
 立即注册
忘了密码?

扫一扫,访问微社区

快捷导航
搜索
查看: 556|回复: 0

[经验分享] 数据导入失败--Table storage engine for 'xxx' dosen't have this option

[复制链接]

6

主题

0

好友

580

积分

程序猿[LV2]

Rank: 2Rank: 2

云币
1940
威望
580
发表于 2018-1-15 04:46:23 |显示全部楼层 |未分类
问题:
使用.sql文件向腾讯云 cdb for mysql  5.6 5.7版本实例导入数据时报错 (自建迁移任务也会出现该报错,原因相同)
ERROR 1031 (HY000) at line 25: Table storage engine for 'abc' doesn't have this option

原因 :
腾讯云5.6 5.7 版本的mysql实例仅支持innodb存储引擎,不支持myisam存储引擎
导入的数据文件中存在myisam引擎的表,在导入过程中会被强制转换为innodb存储引擎
但row_format不会转换,myiisam引擎的row_format=fixed特性在innodb不支持

解决方案:
将报错表的row_format 从 FIXED 改成这个 DYNAMIC

SELECT table_schema, table_name,engine FROM information_schema.tables WHERE engine <> 'InnoDB' AND table_schema NOT IN ('mysql' ,'performance_schema','information_schema');
查看不是innodb的表
SELECT table_schema,table_name,row_format from information_schema.tables where Row_format like '%fix%' AND table_schema NOT IN ('mysql','performance_schema','information_schema');
查看row_format是fix的表

简单示例:
1.测试环境
QQ截图20180115041623.png

2.导出备份,还原备份,出现报错
QQ截图20180115042040.png

3.查看下备份文件
QQ截图20180115042245.png

4.解决
修改下备份文件,将engine给为innodb row_format改为dynamic
QQ截图20180115042706.png

5.导入成功并查看恢复的数据
QQ截图20180115043103.png


登录源库 , 使用命令先将需要修改的表找出来 , 修改后再备份也是可以的 , 使用本文开头写的两个sql
如果是自建迁移报错 , 可以使用这种方法 , 现在源库中整改相关表 , 再重新发起迁移.
QQ截图20180210230304.png



批量修改row_format和存储引擎的方法请移步:
http://bbs.qcloud.com/thread-49187-1-1.html

您需要登录后才可以回帖 登录 | 立即注册
您需要登录后才可以发帖 QQ登录

联系我们|腾讯云平台|积分商城|腾讯云官方论坛    

GMT+8, 2018-6-23 10:24 , Processed in 1.192127 second(s), 32 queries .

Powered by Discuz! X2.5

© 2001-2012 Comsenz Inc.

回顶部