• Navicat运行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文件 会准确度高一些

     

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

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

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

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


     

             当你的才华还撑不起你的野心时,就应该静下心来学习;当你的能力还驾驭不了你的目标时,就应该沉下心来历练。梦想不是浮躁,而是沉淀和积累。

  • 相关阅读:
    从零开始,开发一个 Web Office 套件(12):删除文字 & 回车换行
    生命在于学习——Python人工智能原理(3.1)
    接口测试 —— Jmeter 之测试片段的应用
    Java数据结构第二课 —— 泛型(1)
    C# 支付宝小程序 ---小程序支付
    【Day31】力扣算法(超详细思路+注释)[1441. 用栈操作构建数组 ] [621. 任务调度器]
    linux0.12-10-5-rs_io.s
    2023网络钓鱼状况报告:ChatGPT等工具致网络钓鱼电子邮件数量激增1265%
    spring cloud 2021 gateway 报错503 Service Unavailable
    Uniapp入门
  • 原文地址:https://blog.csdn.net/qq5201314wx/article/details/125623355