在Navicat上导入sql文件报错

写这篇博客的原因是:公司买了个做项目管理的系统,私有化部署对方的数据库表时,遇到了几个问题,随手记录一下。

1. Row size too large. The maximum row size for the used table type, not counting BLOBs, is 65535. You have to change some columns to TEXT or BLOBs

报错原因:

     我的数据库编码为utf8mb4,数据库设定的varchar长度:(1000+10000+5000+390)*4>65535了,如果是utf8,则是设定的varchar或者其他类型长度乘以3

解决办法:

    将比较长的字段类型设置成text而不是varchar

 

2. Specified key was too long; max key length is 767 bytes

报错原因:

    Id设置成了VARCHAR(255), 则占用字节为 255 * 4 = 1020 byte,而mysql 的主键最大长度不能超过 767 byte,换算一下:主键最大可为VARCHAR(191)

 

3.1005 - Can't create table 'hong.qrtz_triggers' (errno: 150)

     在mysql 中建立引用约束的时候会出现MySQL ERROR 1005: Can’t create table (errno: 150)的错误信息,结果是不能建立引用约束。
出现问题的大致情况
    1、外键的引用类型不一样,如主键是int外键是char
    2、找不到主表中引用的列
    3、引用的字段和外键的字符编码不一致,也可能存储引擎不一样
    4、引用的字段和外键的约束不同

 

当在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、付费专栏及课程。

余额充值