mysql 导入数据报错

来源:互联网 发布:从ubuntu启动windows 编辑:程序博客网 时间:2024/04/30 20:53

1.工具:

  1. Navicat:我一直习惯使用 Navicat 这个mysql 工具,界面很简单,而且功能也很强大,但是有一个问题,那就是它在导入导出数据方面很不给力,经常会报错,而且是各种莫名其妙的错误,尤其是在不同的 Mysql 版本之间,报错更是五花八门,让你无所适从,下载地址:提取密码:rpjy。

  2. SQLyog:这个是同事经常用的一个工具,我对它的操作习惯和界面不是很喜欢,但是它在导入导出数据方面表现出来的效果让我喜出望外,那些 Navicat 搞不定的数据库复制,它都可以完成。不然的话我真是对很多数据束手无策,我不可能一条条的去拷贝,几万条数据我拷到老都考不完,链接:,提取密码: d69e。

SQLyog 的导出选择项:
这里写图片描述

通常情况下,Navicat 都是可以完成不同版本之间数据的复制的,但是有时候就会报各种建表语句呀,插入语句的问题,很明显这些不应该是问题,但是它就是报错,这种时候是你需要考虑使用 SQLyog 的时候了,你只需要使用 SQLyog 把对应的数据库导出来,加上建表语句;然后把导出来的 sql 文件重新导入到你的目标数据库即可。如果还是报错(打开报错的文件看看具体是什么错误):比如说 USE nslm 这一类的错误,你只需要把报错的文件删除掉,然后把你的 SQLyog 关闭掉,然后重新启动,重新的导入基本上就不会再报错了。

2.版本

版本也是对数据库导入导出有很大影响的,别的我没发现,有个版本是我最近遇到最多的。那就是 5.5.x 版本的数据库如果要拷贝 5.6.x 的数据库,很多时候都会失败,之所以这么说是因为本身跟表的类型,表字段的类型有很大关系。比如 如果 5.6.x 版本的数据库表里面字段类型为 timestamp 类型的字段只有一个,那么这种表拷贝基本上没有问题,如果有两个字段是 timestamp 类型的那么基本上这个表你拷贝肯定出错。

因此:解决 mysql 不同版本之间数据库导入导出问题的方式就是:

  1. 更换导入导出工具
  2. 更换数据库版本

一下的一些错误可以帮助你作为使用哪种方式的参考:
1.Error Code: 2013 - Lost connection to MySQL server during query
这种情况基本上是数据库版本的问题,大部分情况下是你的数据库版本是 5.5x 然后要导入 5.6.x 的数据库的数据。
2.[Err] [Dtf] 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 ‘“areas” (
“id” varchar(32) NOT NULL COMMENT ‘编号’,
“name” varchar(30) N’ at line 1
[Err] [Dtf] Finished - Unsuccessfully
截图如下:
这里写图片描述

这种情况下说明你的 Navicat 搞不定这个事情,你需要更换 SQLyog来试试。

3.你使用了 SQLyog,但是依然报错:USE ‘xxxx’ Error,就是在切换数据的时候出现了问题
这种情况下你需要首先找到错误文件位置,然后删除掉它,之后把你的SQLyog关闭掉,然后重新启动它,之后再重新的导入一次试试,基本上问题都是可以解决的。

0 0