IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 大数据 -> Kettle连接不上数据库及中文乱码问题解决 -> 正文阅读

[大数据]Kettle连接不上数据库及中文乱码问题解决

Kettle 连接数据库问题分析及解决

一、问题一:测试连接数据库出问题

1 将如下驱动包导入data-integration目录下的Lib目录

mysql-connector-java-5.1.40.jar
mysql-connector-java-8.0.17.jar

mysql-connector-java-5.1.40.jar提取码dny8
mysql-connector-java-8.0.17.jar提取码qqxh

2 重新测试连接数据库

如果连接成功,则结束,如果连接成功但是再进行数据转换时出错,或者其他问题往下看。(基本上驱动有了都会成功)

二、 问题二:测试连接成功,但是在进行转换运行时出错

1 这种情况基本上都是字符集问题

可能在你测试成功后,在进行在Kettle上执行SQL语句建立表时出错,是字符集错误没跑了。

2 修改字符集

将mysql下的字符集编码格式改为utf8mb4

utf-8编码可能2个字节、3个字节、4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符。如果直接往采用utf-8编码的数据库中插入表情数据,程序中将报SQL异常。

3 修改过程如下

修改mysql字符集编码为utf8mb4(Linux系统)

1 查看自己的数据库版本

SHOW VARIABLES WHERE Variable_name LIKE ‘character_set_%’ OR Variable_name LIKE ‘collation%’;

如下:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-DMtDgUp9-1631938806029)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20210918121325215.png)]

2 进入自己的mysql安装路径修改my.cnf配置文件

我的安装路径是:/etc/mysql:在配置文件中添加如下内容:

[client]
default-character-set = utf8mb4
[mysql]
default-character-set = utf8mb4
[mysqld]
character-set-client-handshake = FALSE
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
init_connect=‘SET NAMES utf8mb4’

3 重新启动数据库

再次查看数据库编码格式:

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-xtkO5J4d-1631938806031)(C:\Users\DELL\AppData\Roaming\Typora\typora-user-images\image-20210918121251784.png)]

可以看到,已经成功修改为utf8mb4格式

4 将数据库和已经建好的表也转换成utf8mb4

ALTER DATABASE (输入你自己的数据库名) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
ALTER TABLE (输入你自己的表名) CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

5 将kettle中数据库连接中的高级添加下面一句话

set names utf8;

6 将kettle中数据库连接中的选项下的命令参数添加下面一句话

characterEncoding utf8;

通过上面几步,基本上可以解决Kettle连接数据库和中文乱码问题。

  大数据 最新文章
实现Kafka至少消费一次
亚马逊云科技:还在苦于ETL?Zero ETL的时代
初探MapReduce
【SpringBoot框架篇】32.基于注解+redis实现
Elasticsearch:如何减少 Elasticsearch 集
Go redis操作
Redis面试题
专题五 Redis高并发场景
基于GBase8s和Calcite的多数据源查询
Redis——底层数据结构原理
上一篇文章      下一篇文章      查看所有文章
加:2021-09-19 08:02:49  更:2021-09-19 08:03:02 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 19:59:42-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码