描述

在使用dbeaver进行sql脚本导入的时候报了以下的错误。

C:\Users\xxxx\AppData\Roaming\DBeaverData\drivers\clients\mysql_8\win\mysql.exe -u root --host=xxxxxxx --port=3306 xxx
任务 'MySQL 脚本' 开始于 Mon Jan 08 23:51:58 CST 2024
ERROR 1366 (HY000) at line 288: Incorrect string value: '\xA2\x9E' for column 'name' at row 1 任务 'MySQL 脚本' 结束于 Mon Jan 08 23:51:59 CST 2024
2024-01-08 23:51:59.224 - IO error: Process failed (exit code = 1). See error log.
2024-01-08 23:51:59.224 - java.io.IOException: Process failed (exit code = 1). See error log.
at org.jkiss.dbeaver.tasks.nativetool.AbstractNativeToolHandler.validateErrorCode(AbstractNativeToolHandler.java:263)
at org.jkiss.dbeaver.tasks.nativetool.AbstractNativeToolHandler.executeProcess(AbstractNativeToolHandler.java:241)
at org.jkiss.dbeaver.tasks.nativetool.AbstractNativeToolHandler.doExecute(AbstractNativeToolHandler.java:283)
at org.jkiss.dbeaver.ext.mysql.tasks.MySQLNativeToolHandler.doExecute(MySQLNativeToolHandler.java:47)
at org.jkiss.dbeaver.tasks.nativetool.AbstractNativeToolHandler.lambda$0(AbstractNativeToolHandler.java:87)
at org.jkiss.dbeaver.runtime.RunnableContextDelegate.lambda$0(RunnableContextDelegate.java:39)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:122)

查了下网上以及社区的说法#4686, 大概意思是升级使用的驱动可解决。

排查

我检查了下连接的时候使用的驱动。



我这里一共有三个。

MySQL Binaries

这个是mysql8的驱动,我看到使用的是8.0.19版本的。

C:\Users\用户名\AppData\Roaming\DBeaverData\drivers\clients\mysql_8\win\mysql.exe

MySQL 5 Binaries

这个是mysql5的驱动,我看到使用的是5.5.62版本的。

C:\Users\用户名\AppData\Roaming\DBeaverData\drivers\clients\mysql\win\mysql.exe

E:/mysql

这个是我本地安装mysql带的驱动,版本是8.0.12。这个应该是会找bin下的mysql.exe

E:\mysql\bin\mysql.exe

我尝试改变使用这三种驱动,发现只有我本地安装的8.0.12导入sql脚本的时候是正常的。这就很离谱,因为MySQL Binaries使用的是8.0.19但是报错了。

我又查看了下数据库的编码。

show variables like '%char%';

除了一个character_set_system是utf8mb3外,其他看着没有什么问题。这个utf8mb3是怎么来的我还不太清楚,安装的时候我并未刻意设置。

我的sql脚本是UTF-8编码的,应该也没有问题。

我又试着使用了navicat进行导入sql脚本,也是没问题的,但是navicat在导入的时候可以设置编码。dbeaver上我没有看到有设置编码的地方。

继续寻找答案发现有人说可以在sql脚本的开头设置编码。我试着改了以下sql脚本。

set character set utf8;
CREATE TABLE sys_user
(
id bigint NOT NULL AUTO_INCREMENT COMMENT 'id',
………………
………………
………………

然后尝试使用dbeaver下载的MySQL Binaries驱动进行脚本的执行,这次他成功了!

所以很大概率是dbeaver在执行脚本的时候所使用的编码导致的。

解决方案有三个:

  • 更换dbeaver的驱动。看缘分。

  • 在sql脚本的开头加上编码SET CHARACTER SET utf8;SET NAMES utf8mb4;。 一般可行。

  • 在dbeaver编辑器里把需要执行的sql脚本拷贝过去执行。 有点蠢。

dbeaver导入sql脚本报错的排查—— ERROR 1366 (HY000) at line的更多相关文章

  1. DBeaver导入SQL脚本数据

    DBeaver导入SQL脚本数据 起因 Navicat Premium还原备份的导致数据库中文乱码 看Navicat Premium中看中文数据,是正常显示了,但是在IEDA查询和Web页面上显示,均 ...

  2. 【MySQL篇】Navicat导入SQL文件报错终极解决方案

    面对大数据库文件(一般50M以上),使用Navicat导入的时候容易出现[ERR]2006等报错问题,此文提供了几种办法,包括修改MySQL的配置参数在网上也有很多详细教程介绍过,但此文精彩处在于前面 ...

  3. mysql 导入SQL文件报错

    ----MySQL导入数据的时候,总是报错,本地测试都没办法测试---- 导出SQL文件正常, 在导入SQL文件的时候, 报错-----大部分数据表导入成功, 个别的失败 在网上看到很多建议: 建议别 ...

  4. 导入sql文件报错:1071 Specified key was too long; max key length is 767 bytes

    ref: https://stackoverflow.com/questions/1814532/1071-specified-key-was-too-long-max-key-length-is-7 ...

  5. mysql小知识点汇总---(时间与时间戳的转换, 修改mysql用户名密码, navicate 导入sql文件报错 1153)

    1. 时间与时间戳的转换 1.1 时间戳转时间 FROM_UNIXTIME(add_time, '%Y-%m-%d') 1.2 时间转时间戳 UNIX_TIMESTAMP('2015-04-29') ...

  6. MySQL导入SQL语句报错 : MySQL server has gone away (已解决)

    MySQL server has gone away 解决的方法其实很简单,我相信也有很多人遇到了这个问题.比如DZ论坛,安装好服务器,但是清空缓存等操作数据库的动作,运行时间稍长就会出现 MySQL ...

  7. dbeaver,执行SQL时,空行导致SQL执行报错" ERROR: syntax error at or near "case"Position: 1"

    dbeaver,执行SQL时,空行导致SQL执行报错" ERROR: syntax error at or near "case"Position: 1" 解决 ...

  8. 在Windows平台下Qt的exe报错问题排查步骤

    在Windows平台下Qt的exe报错问题排查步骤 工具介绍: 1. Dependency Worker Dependency Worker是一个免费的用具用来扫描任何的32bit 或者64bit 的 ...

  9. MySQL 执行SQL脚本 报ERROR 1231 (42000)的解决办法【转】

    今天在source mysqldump 备份文件时,发现导入的过程中报如下的错误: ERROR 1231 (42000): Variable 'time_zone' can't be set to t ...

  10. Sqoop- sqoop将mysql数据表导入到hive报错

    sqoop将mysql数据表导入到hive报错 [root@ip---- lib]# sqoop import --connect jdbc:mysql://54.223.175.12:3308/gx ...

随机推荐

  1. Android应用借助LinearLayout实现垂直水平居中布局

    首先说的是LinearLayout布局下的居中一般是这样的: (注意:android:layout_width="fill_parent" android:layout_heigh ...

  2. /proc的相关知识

    /proc的相关知识 /proc 介绍 /proc 是一种伪文件系统(也即虚拟文件系统),存储的是当前内核运行状态的一系列特殊文件,用户可以通过这些文件查看有关系统硬件及当前正在运行进程的信息,甚至可 ...

  3. Flink学习(四) Flink Table & SQL 实现wordcount Java版本

    Flink Table & SQL WordCountFlink SQL 是 Flink 实时计算为简化计算模型,降低用户使用实时计算门槛而设计的一套符合标准 SQL 语义的开发语言. 一个完 ...

  4. 单元测试三部曲-AAA模式

    AAA 指的是 "Arrange, Act, Assert",这是一种通用的单元测试模式. 在测试方法中, 1.首先对测试对象进行准备(Arrange), 2.然后调用要测试的方法 ...

  5. manim边学边做--线性变换的场景类

    在数学可视化领域,Manim的LinearTransformationScene类为线性代数教学提供了强大的工具. 这个专门设计的场景类继承自VectorScene,通过内置的变换动画和坐标系管理,能 ...

  6. Android 实现人脸识别 活体检测以及人脸搜索

    关于「保护伞FaceAI SDK」 Umbrella FaceAI SDK is on_device Offline Android Face Detection .Recognition .Live ...

  7. Vue2/Vue3 项目生产环境开启 vue devtools 插件线上调试 vue 组件

    说到 vue 项目的调试工具,必然少不了 "vue devtools 插件",此插件就像"手术刀"一样,是开发环境下的一个利器,生产环境一般情况没办法使用. 要 ...

  8. BUUCTF---这是Base??

    题目 dict:{0: 'J', 1: 'K', 2: 'L', 3: 'M', 4: 'N', 5: 'O', 6: 'x', 7: 'y', 8: 'U', 9: 'V', 10: 'z', 11 ...

  9. Zotero设置

    1. 说明 Zotero 中文社区 | 百度网盘 使用 zotero 仅同步题录信息,使用其他云同步程序同步文献的附件,此处以坚果云为例进行演示,前期的坚果云同步设置参考文章:Zotero坚果云同步. ...

  10. 【Java】修饰符

    修饰符(Modifier):是用于限定类型以及类型成员的声明的一种符号. 其用来定义类.方法或者变量,通常放在语句的最前端. 例子: public class Person { default Str ...