验证码: 看不清楚,换一张 查询 注册会员,免验证
  • {{ basic.site_slogan }}
  • 打开微信扫一扫,
    您还可以在这里找到我们哟

    关注我们

Navicat运行sql文件导入数据不全或导入失败如何解决

阅读:1197 来源:乙速云 作者:代码code

Navicat运行sql文件导入数据不全或导入失败如何解决

      前言:

      我们平时想把数据从一个数据库中导入另外一个数据库中的时候 

      一般都是把所需的数据表进行转储sql文件 然后再运行sql文件 导入新的数据库中

      这么做 数据少的时候一般不会出现什么错 

      但是如果数据量比较大 表比较多 就会出现缺少数据表 或者缺少数据

      解决问题办法:

      第一:

      先从数据库的配置文件下手

      找到服务器上的MYSQL安装目录下的my.ini文件 然后去修改 记得重启

      Navicat运行sql文件导入数据不全或导入失败如何解决

      查找max_allowed_packet属性

      max_allowed_packet=50M

      或者再改大一点都行

      第二:

      从navicat修改数据库存储大小 和第一个有点相似  我2个都改了

      命令:

      //查看当前max_allowed_packet的大小

      show global variables like 'max_allowed_packet';

      //修改max_allowed_packet的大小

       set global max_allowed_packet=1024*1024*50;

      改过后查询以下大小有没有改变 改变了就成功了

      第三:

      导入的数据库和导出得数据库编码和结构不同

      Navicat运行sql文件导入数据不全或导入失败如何解决

      修改数据库的表字符集同步

      第四: 

      更改严格模式,执行下列sql后再导入sql文件;

      SET sql_mode = '';
      SET GLOBAL sql_mode = '';

      Navicat运行sql文件导入数据不全或导入失败如何解决

      注意:

      当用"SET sql_mode=''"时,mysql清除的默认的模式信息,

      但是这也有一个问题,那就mysql不会作入侵检测,错误提示,

      这就要求程序员在进行sql操作的时候更加小心。可以将上面sql加入到sql文件中先执行

      第五: 

      在我们导入数据的时候 把 "在每个运行中运行多个查询" 给对掉  这么会慢一些 但是数据不会冲突 不会让数据进行减少

      Navicat运行sql文件导入数据不全或导入失败如何解决

      第六: 

      这个方法有点玄学 可信度有待调查 可以尝试尝试大家

      在数据库中选择运行sql文件 没有在表中选择 运行sql文件 会准确度高一些

      Navicat运行sql文件导入数据不全或导入失败如何解决

      Navicat运行sql文件导入数据不全或导入失败如何解决

      第七: 

      使用命令行导入导出

      一、window环境

      A. 导出.sql

      1. 导出整个数据库

      mysqldump -u 用户名 -p 数据库名 > 导出的文件名
      mysqldump -u dbuser -p dbname > dbname.sql

      2. 导出一个表

      mysqldump -u 用户名 -p 数据库名 表名> 导出的文件名
      mysqldump -u dbuser -p dbname users> dbname_users.sql

      3. 导出一个数据库结构

      mysqldump -u dbuser -p -d --add-drop-table dbname >d:/dbname_db.sql
      -d 没有数据 --add-drop-table 在每个create语句之前增加一个drop table

      B. 导入.sql

      常用source 命令

      进入mysql数据库控制台,如

      mysql -u root -p
      mysql>use 数据库

      然后使用source命令,后面参数为脚本文件(如这里用到的.sql)

      mysql>source d:/dbname.sql

      导入数据到数据库

      mysql -uroot -D数据库名

      导入数据到数据库中得某个表

      mysql -uroot -D数据库名 表名

      二、linux环境

      A. 导出.sql

      导出数据库用mysqldump命令(注意mysql的安装路径,即此命令的路径):

      1、导出数据和表结构:

      mysqldump -u 用户名 -p 参数(可选) 数据库名 >/home/sql/ 数据库名.sql

      mysqldump -u root -p --default-character-set=utf8 db_name>/home/sql/fileName.sql

      敲回车后会提示输入密码

      2、只导出表结构

      mysqldump -u用户名 -p密码 -d 数据库名 > 数据库名.sql

      /usr/local/mysql/bin/ mysqldump -uroot -p -d abc > abc.sql

      注:/usr/local/mysql/bin/ —> mysql的data目录

      B. 导入.sql

      1、首先建空数据库

      mysql>create database abc;

      2、导入数据库

      方法一:

      (1)选择数据库

      mysql>use abc;

      (2)设置数据库编码

      mysql>set names utf8;

      (3)导入数据(注意sql文件的路径)

      mysql>source /home/abc/abc.sql;

      方法二:

      mysql -u用户名 -p 参数(可选) 数据库名 < 数据库名.sql

      mysql -uabc_f -p--default-character-set=utf8 abc < abc.sql

      第八: 

      没有用过 看到最新的navicat12带的功能

      Navicat运行sql文件导入数据不全或导入失败如何解决

      数据传输和数据同步 结构同步 打开界面看了一下 更加简单暴力

      如果上面的都没有解决你的问题

      可以尝试一种简单暴力的方法 如果要导入的数据不多

      可以把sql文件直接打开然后到navicat里面直接 查询->新建查询  然后输入sql

      看看到底哪个地方报错了 然后再对应去修改

      Navicat运行sql文件导入数据不全或导入失败如何解决

    分享到:
    *特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们: hlamps#outlook.com (#换成@)。
    相关文章
    {{ v.title }}
    {{ v.description||(cleanHtml(v.content)).substr(0,100)+'···' }}
    你可能感兴趣
    推荐阅读 更多>