Navicat运行sql文件导入数据不全或导入失败的解决方案

目录
  • 前言:
  • 解决问题办法:
    • 第一:
    • 第二:
    • 第三:
    • 第四:
    • 第五:
    • 第六:
    • 第七:
  • 一、window环境
    • A. 导出.sql
    • B. 导入.sql
  • 二、linux环境
    • A. 导出.sql
    • B. 导入.sql
    • 第八:
  • 总结

前言:

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

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

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

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

解决问题办法:

查询网上资料得知 有以下几种办法可以去尝试解决

第一:

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

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

查找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;

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

第三:

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

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

第四:

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

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

注意:

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

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

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

第五:

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

第六:

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

在数据库中选择运行sql文件 没有在表中选择 运行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带的功能

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

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

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

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

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

总结

到此这篇关于Navicat运行sql文件导入数据不全或导入失败的解决方案的文章就介绍到这了,更多相关Navicat运行sql文件导入数据不全内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • Navicat快速导入和导出sql文件的方法

    Navicat是一套快速.可靠并价格相当便宜的数据库管理工具,专为简化数据库的管理及降低系统管理成本而设.它的设计符合数据库管理员.开发人员及中小企业的需要.Navicat 是以直觉化的图形用户界面而建的,让你可以以安全并且简单的方式创建.组织.访问并共用信息. 1.导入SQL文件 选择我们需要导入的数据库,右击选择Execute SQL File,就是执行SQL文件. 然后选择需要导入的SQL文件,点击start进行导入即可,导入完成后点击Close,会发现表和数据都已经导入好了. 2.导出S

  • Navicat Premium如何导入SQL文件的方法步骤

    今天开始写期末项目,不过今年用的MySQL数据库,所以就用了Navicat premium进行管理,数据库是另一个小伙伴写的,需要导入,但是Navicat没有直接导入SQL文件的按钮,尝试了几次,都不行,查了度娘,好多都文不对题,最后终于解决,写一下解决方案,原来很简单.... 1.首先,链接上Navicat,在链接下新建数据库,数据库名和要导入的一样,字符集选utf-8,确定 2.先右键点击打开数据库,然后,直接将数据库文件拖拽到新建的数据库上 3.弹出这个对话框,直接点击开始,完成后.然后直

  • 使用navicat导入sql文件的方法步骤

    一.打开navicat,打开连接,右击连接名(如果新建连接,需要使用对应数据库的ip地址和密码,本机的是地址localhost,密码是自己mysql数据库的密码),选择新建数据库,数据库名要和想要导入的文件名一样(这种情况针对的是sql文件是直接由整个数据库导出的一个sql文件,如果表导出的sql文件,应该是随便命名数据库的名字,表名应该是和需要导入的文件名字相同(第二种情况没有亲自试过)). 二.右击建好的数据库,选择运行SQL文件,在出现的页面中选择要导入的SQL文件.然后点击开始,等待导入

  • Navicat运行sql文件导入数据不全或导入失败的解决方案

    目录 前言: 解决问题办法: 第一: 第二: 第三: 第四: 第五: 第六: 第七: 一.window环境 A. 导出.sql B. 导入.sql 二.linux环境 A. 导出.sql B. 导入.sql 第八: 总结 前言: 我们平时想把数据从一个数据库中导入另外一个数据库中的时候 一般都是把所需的数据表进行转储sql文件 然后再运行sql文件 导入新的数据库中 这么做 数据少的时候一般不会出现什么错 但是如果数据量比较大 表比较多 就会出现缺少数据表 或者缺少数据 解决问题办法: 查询网上

  • Finished with error:Navicat运行SQL文件报错的解决

    目录 问题描述 错误原因 解决方法 其他问题 字符集问题 运行选项问题 SQL代码问题 总结 问题描述 使用 Navicat 导入之前转储好的 sql 文件,报错 错误原因 在信息日志当中往上翻,发现没有选择数据库,所以报错的原因就是没有提前创建好一个同名的空数据库 解决方法 创建SQL文件对应的数据库名,然后找到对应数据库, 右键  运行SQL文件!  错误解决 其他问题 字符集问题 注意保证原数据库的字符集,排序方式  和  新建数据库的一致 运行选项问题 有时候把这个选项取消选中,再运行就

  • Navicat导出.sql文件方法

    1.打开Navicat,打开相应的数据库: 2.选中"Backups",然后 "New Backup": 3.选中刚才的备份文件,右键"Extract SQL", 4.然后保存到一个位置下,就好了! 总结 以上所述是小编给大家介绍的Navicat导出.sql文件方法,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的.在此也非常感谢大家对我们网站的支持!

  • 在postgresql中运行sql文件并导出结果的操作

    方法一 在psql中运行 在终端进入用户test下的数据库testdb: $ psql -p 5432 -U test -d testdb 假设要执行的.sql文件叫做d1.sql,存放路径为:/mnt/hgfs/share/database/2.18.0_rc2/dbgen/queries/d1.sql,导出的文件叫做d1.out,存放的路径为:/mnt/hgfs/share/database/2.18.0_rc2/dbgen/queries/out/d1.out testdb=# \o /m

  • Python实现mysql数据库中的SQL文件生成和导入

    目录 1.将mysql数据导出到SQL文件中(数据库存在的情况) 2.将现有的sql文件数据导入到数据库中(前提数据库存在) 3.利用Navicat导出SQL文件和导入SQL文件 1)从数据库导出SQL文件 2)导入SQL文件到数据库 1.将mysql数据导出到SQL文件中(数据库存在的情况) 主要需要修改数据库的相关信息,端口号.用户名.密码等 其中数据库得存在,不然会报错 : #!/usr/bin/env python # -*- coding: utf-8 -*- # @descripti

  • MySQL导入sql文件的三种方法小结

    目录 一.使用工具Navicat for MySQL导入 1.打开localhost_3306,选中右击“新建数据库” 2.指定数据库名和字符集(可根据sql文件的字符集类型自行选择) 3.选中数据库下的表运行SQL文件 4.选中路径导入 二.使用官方工具MySQL Workbench导入 1.第一种方法 2.第二种方法 三.使用命令行导入 总结 一.使用工具Navicat for MySQL导入 工具的具体下载及使用方法推荐的一篇文章:https://www.jb51.net/article/

  • 基于ThinkPHP+uploadify+upload+PHPExcel 无刷新导入数据

    废话不多说,直接给大家贴代码了,代码附有注释,相信大家都能看懂的,有不明白的地方欢迎给我留言. 前端HTML+JQuery  备注Jquery需要1.x版本,不能用2.x版本 1.引入必要文件及上传input <load file="__PUBLIC__/js/jquery-1.11.3.min.js" /> <load file="__PUBLIC__/uploadify/jquery.uploadify.min.js" /> <lo

  • Postgresql psql文件执行与批处理多个sql文件操作

    新建一个批处理文件batch.sql \encoding UTF8; \cd C:/Gmind/ddl \set ON_ERROR_STOP 1 \set ECHO all \timing on \i s_product.sql; \i s_branch.sql; \i s_comment.sql; \i s_class.sql; \i s_drawing.sql; \i s_dmemo.sql; \i s_form.sql; \encoding 设置客户端字符集编码(可选) \cd 切换目录.

随机推荐