使用mysqldump导出数据后导入错误的问题

    • 一 问题描述
    • 二 问题解决
    • 三 解决方案
    • 四 问题原因

一 问题描述

当把mysql中的数据使用musqldump命令从一台Ubuntu系统的机器导出,使用source命令导入到一台centos系统的机器中时,提示脚本中存在语法错误如下:

ERROR 1064 (42000): 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 '(6) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=23 DEFAULT CHA' at line 5

查看了脚本中报错的地方是这样写的:

CREATE TABLE `TextMarker_mainresult` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `version` varchar(10) NOT NULL,
  `update_time` datetime(6) NOT NULL,
  `doc_type` varchar(20) NOT NULL,
  `doc_str` longtext NOT NULL,
  `doc_title` varchar(20) NOT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=18 DEFAULT CHARSET=utf8;

二 问题解决

讲如上命令粘切到mysql workbench中准备手动执行一下,数据库管理工具自动提示`update_time` datetime(6) NOT NULL,该行存在错误,给出的提示如下:

This syntax is only allowed for server versions starting with 5.6.0. The current version is 5.1.73.

三 解决方案

搜索所有脚本中的datetime类型,将长度全去掉,再次运行即可全部导入成功。

四 问题原因

如上提示所说,导出数据库的版本高于5.6.0,而要导入的数据库的版本比较低导致语法不兼容,所以提示此错误。
ubuntu下的mysql version:5.7.20
centos下的mysql version:5.1.73

你可能感兴趣的:(mysql)