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文件