MySql执行脚本遇到Unknown command及Specified key was too long解决方案

1、数据库执行sql脚本报错 Unknown command

原因是mysql 默认以gbk编码连接数据库,之前导出备份文件是utf8编码,编码不一致导致错误。

解决方法:

在执行脚本之前配置一下 加上指定编码

--default-character-set=utf8mb4

 

2、上个问题解决完之后再次执行sql脚本,结果又遇到了Specified key was too long的错误

C:\Program Files\mysql-8.0.26-winx64\mysql-8.0.26-winx64\bin\mysql.exe --default-character-set=utf8mb4 -u root --host=**.**.**.** --port=3306 boke
Task 'MySQL restore' started at Mon Jun 13 14:04:42 CST 2022
ERROR 1071 (42000) at line 1189: Specified key was too long; max key length is 767 bytes

Task 'MySQL restore' finished at Mon Jun 13 14:04:52 CST 2022
2022-06-13 14:04:52.462 - IO error: Process failed (exit code = 1). See error log.
2022-06-13 14:04:52.463 - java.io.IOException: Process failed (exit code = 1). See error log.
	at org.jkiss.dbeaver.tasks.nativetool.AbstractNativeToolHandler.validateErrorCode(AbstractNativeToolHandler.java:240)
	at org.jkiss.dbeaver.tasks.nativetool.AbstractNativeToolHandler.executeProcess(AbstractNativeToolHandler.java:221)
	at org.jkiss.dbeaver.tasks.nativetool.AbstractNativeToolHandler.doExecute(AbstractNativeToolHandler.java:260)
	at org.jkiss.dbeaver.ext.mysql.tasks.MySQLNativeToolHandler.doExecute(MySQLNativeToolHandler.java:47)
	at org.jkiss.dbeaver.tasks.nativetool.AbstractNativeToolHandler.lambda$0(AbstractNativeToolHandler.java:81)
	at org.jkiss.dbeaver.runtime.RunnableContextDelegate.lambda$0(RunnableContextDelegate.java:39)
	at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)

原因: 

mysql版本原因,在mysql5.6中索引列最大长度为767个字节

解决方法1:

检查sql语句,在建表语句后加上ENGINE=InnoDB DEFAULT CHARSET=utf8 ROW_FORMAT=DYNAMIC; 然后执行sql文件

方法2:

修改mysql配置参数:

set global innodb_large_prefix=on;

set global innodb_file_format = BARRACUDA;

修改完之后执行sql文件 

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值