描述

在使用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. Spark Sql调优

    一.任务调参 1.1 spark.executor.memory executor执行分配的内存大小 1.2 spark.executor.cores executor执行分配的核数 1.3 spar ...

  2. FreeSql学习笔记——5.删除

    前言   对于FreeSql来说,删除的支持并不强大,只有在Where条件不为空的时候才执行,否则返回0或默认值,不执行删除操作:     语法   fsql.Delete<Class>( ...

  3. RabbitMQ(四)——工作队列模式

    RabbitMQ系列 RabbitMQ(一)--简介 RabbitMQ(二)--模式类型 RabbitMQ(三)--简单模式 RabbitMQ(四)--工作队列模式 RabbitMQ(五)--发布订阅 ...

  4. github上文件过大无法推送问题

    GitHub 对文件大小有限制,超过 100 MB 的文件无法直接推送到仓库中. 解决思路: 使用 Git Large File Storage (Git LFS) 来管理大文件 不上传对应的大文件 ...

  5. 腾讯ima接入deepseek-r1,借用别人脑子用用成真了~

    大家好,我是汤师爷! 最近,腾讯发布了一款ima产品,主打用AI来帮你搜索信息.管理知识库. 说实话,一开始用混元大模型,感觉不咋地,很鸡肋的. 不过最近腾讯把DeepSeek R1接进来了,一下子解 ...

  6. 5. 想在代码中验证sql的正确性?

    1. 简介 我们在平时的开发中可能会遇到需要验证一下sql是否正确,也就是需要check一下sql. 判断sql是否正确一般包含一下几点: 1. sql中使用的列是否存在 2. sql语法是否正确 3 ...

  7. 【COM3D2Mod 制作教程(5)】实战!制作身体部分(中)

    [COM3D2Mod 制作教程(5)]实战!制作身体部分(中) 帽子是很典型的装扮类型,较为简单适合入门,所以我们先制作帽子 Mod,流程基本和第二章中的概述相符.因为导入插件及其功能位置也都已在第二 ...

  8. Kafka - [02] Kafka单机版部署

    Kafka是一个分布式的流处理平台. kafka主要是作为一个分布式的.可分区的.具有副本数的日志服务系性.高容错性.访问速度快.分布式等特性:具有高水平扩展 主要应用场景是:日志收集系统和分布式发布 ...

  9. k8s v1.19版本之后,自签证书过期x509: certificate has expired or is not yet valid

    前言 在 Kubernetes 1.16 版本之前,kubeadm 工具的 alpha certs 子命令用于生成和管理 Kubernetes 集群的证书.然而,从 Kubernetes 1.19 版 ...

  10. 使用SVM在数字验证码识别中的应用研究课程报告

    第1章 概要设计 1.1 设计目的 支持向量机作为一类强大的监督学习模型,以其出色的泛化能力,在手写数字识别.面部检测.图像分类等多个领域展现出了其优越性.其在处理小样本.非线性及高维模式识别任务中表 ...