Navicat运行sql文件导入数据不全或导入失败如何解决(navicat,SQL,开发技术)

时间:2024-04-30 01:02:17 作者 : 石家庄SEO 分类 : 开发技术
  • TAG :

    前言:

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

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

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

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

    解决问题办法:

    第一:

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

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

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

    查找max_allowed_packet属性

    max_allowed_packet=50M

    或者再改大一点都行

    第二:

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

    命令:

    //查看当前max_allowed_packet的大小

    showglobalvariableslike'max_allowed_packet';

    //修改max_allowed_packet的大小

    setglobalmax_allowed_packet=1024*1024*50;

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

    第三:

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

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

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

    第四:

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

    SETsql_mode='';SETGLOBALsql_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-udbuser-pdbname>dbname.sql

    2. 导出一个表

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

    3. 导出一个数据库结构

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

    B. 导入.sql

    常用source 命令

    进入mysql数据库控制台,如

    mysql-uroot-pmysql>use数据库

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

    mysql>sourced:/dbname.sql

    导入数据到数据库

    mysql-uroot-D数据库名

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

    mysql-uroot-D数据库名表名

    二、linux环境

    A. 导出.sql

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

    1、导出数据和表结构:

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

    mysqldump-uroot-p--default-character-set=utf8db_name>/home/sql/fileName.sql

    敲回车后会提示输入密码

    2、只导出表结构

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

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

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

    B. 导入.sql

    1、首先建空数据库

    mysql>createdatabaseabc;

    2、导入数据库

    方法一:

    (1)选择数据库

    mysql>useabc;

    (2)设置数据库编码

    mysql>setnamesutf8;

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

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

    方法二:

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

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

    第八:

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

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

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

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

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

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

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

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

     </div> <div class="zixun-tj-product adv-bottom"></div> </div> </div> <div class="prve-next-news">
    本文:Navicat运行sql文件导入数据不全或导入失败如何解决的详细内容,希望对您有所帮助,信息来源于网络。
    上一篇:vue3+vite中报错Error: Module “path“ has been externalized for如何处理下一篇:

    3 人围观 / 0 条评论 ↓快速评论↓

    (必须)

    (必须,保密)

    阿狸1 阿狸2 阿狸3 阿狸4 阿狸5 阿狸6 阿狸7 阿狸8 阿狸9 阿狸10 阿狸11 阿狸12 阿狸13 阿狸14 阿狸15 阿狸16 阿狸17 阿狸18