Mysql备份还原的一个bug

备份文件中索引的语法格式不对

从mysql备份出来的sql文件进行还原操作时报错,查看错误日志,内容如下:

 

Error Code: 1064 - You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near ‘USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=50913 DEFAULT CHARSET=gbk‘ at line 21

 

原因如下:

 

导出文件中的源码:

 

  PRIMARY KEY (`row_id`) USING BTREE,
  UNIQUE KEY `columnAindex` (`columnA`),
  KEY `columnBindex` (`columnB`) USING HASH,
  KEY `columnCindex` (`columnC`) USING BTREE,
...

正确的写法:

  PRIMARY KEY USING BTREE  (`row_id`),
  UNIQUE KEY `columnAindex` (`columnA`),
  KEY `columnBindex` USING HASH (`columnB`),
  KEY `columnCindex` USING BTREE (`columnC`),
...

 

将导出文件中的所有索引类型(USING BTREE 等)挪到索引列(columnB等)的前面,就能够正常完成导入操作。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。