navicat 导入sql不成功_还在为navicat执行sql文件报错,数据导入不全而发愁?

小艾之前在工作中遇到的问题是线上导出的sql文件在本地导入Naviact的时候数据和数据表导入不全;当时的问题是建库和表的数据结构编码有误导致,当时没有记录;但是最近又遇到了类似的问题,但错误不是之前的的那个;今天特意记录下来,我想也会有人会遇到这个问题

错误原因1:是Navicat 导出的sql文件的编码或者是数据库选择的有问题;

解决办法:统一两个库表的编码和结构即可;

错误原因2:在mysql 5中,默认的是REAL_AS_FLOAT,PIPES_AS_CONTACT,ANSI_QUOTES,GNORE_SPACE和ANSI,
在这种模式下,允许插入超过字段长度的值,只是插入后,返回的是警告而不是错误,当用STRICT_TRANS_TABLES时,
则是错误了,严格的警告;

解决办法:更改严格模式,执行下列sql后再导入sql文件;

SET sql_mode = '';

SET GLOBAL sql_mode = '';

3a3d543d56ae4388b4a4d0db8de1edca.png

注意:

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

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

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

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
当在Navicat导入SQL文件时出现报错[Err] 1046 - No database selected,可能是由于以下原因导致的: 1. 未选择数据库:在导入SQL文件之前,确保已经选择了要导入到的数据库。可以在Navicat的连接窗口中选择数据库,或者在导入SQL文件时指定数据库。 2. MySQL配置问题:有时候,MySQL的配置可能会导致导入SQL文件时出现报错。可以尝试修改MySQL的配置文件my.ini,增加max_allowed_packet参数的值,以及增加wait_timeout和interactive_timeout参数的值。 以下是解决这个问题的两种方法: 方法一:选择数据库 在导入SQL文件之前,确保已经选择了要导入到的数据库。可以按照以下步骤进行操作: 1. 打开Navicat并连接到MySQL数据库。 2. 在连接窗口中选择要导入到的数据库。 3. 在导航栏中选择“工具”>“SQL文件执行器”。 4. 在SQL文件执行器窗口中,选择要导入SQL文件。 5. 点击“运行”按钮执行SQL文件。 方法二:修改MySQL配置文件 如果选择数据库仍然无法解决问题,可以尝试修改MySQL的配置文件my.ini。按照以下步骤进行操作: 1. 找到MySQL安装目录下的my.ini配置文件。 2. 使用文本编辑器打开my.ini文件。 3. 在文件中查找max_allowed_packet参数,并增加其值。例如,将max_allowed_packet=8M修改为max_allowed_packet=16M。 4. 在文件中增加wait_timeout和interactive_timeout两项参数,并设置其值。例如,可以添加以下两行: wait_timeout=28800 interactive_timeout=28800 这将增加等待超时时间为8小时。 5. 保存并关闭my.ini文件。 6. 重启MySQL服务。 请注意,修改MySQL配置文件可能需要管理员权限。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值