历史版本45 :MySQL数据连接 返回文档
编辑时间: 内容长度:图片数:目录数: 修改原因:

目录:

1. 概述编辑

1.1 版本

FineBI 版本功能变动
5.1
-
5.1.19更改上传数据库驱动包的方式:通过「驱动管理」上传,实现热加载

1.2 应用场景

本文将介绍如何在 FineBI 中连接 MySQL 数据库。

注:如果是 MySQL8.0,连接方法参见文档:MySQL8.0 数据连接插件

2. 准备工作编辑

2.1 版本和驱动

下载驱动,并将其上传至 FineBI,如何上传可参见:驱动管理 2.1 节

支持数据库版本  驱动包下载

V8.0、V5.6.31、V5.5、V5.5.5、V5.6.35、V5.7、V5.6.37、V5.5.46、V6.5、V5.7.16 、V5.6.29、V5.6.22、V5.6.34、V5.6.28、V5.1;

已内置,无需下载
官方建议:

为获得更好的取数性能,建议使用 Mysql5.5、5.6、5.7 版本的客户,更换 Mysql 数据库驱动为 5.1.37 版本为获得更好的取数性能。mysql-connector-java-5.1.37.jar

用户若使用的是其他小版本的数据库,可以从  MySQL官网 下载对应的连接驱动包。
注:MySQL8 连接优先使用本文方案,若连接不上可尝试使用插件连接:MySQL8.0 数据连接插件

2.2 收集连接信息

在连接数据库之前,请收集以下信息:

  • 数据库所在服务器的 IP 地址和端口号;

  • 数据库的名称;

  • 数据库的用户名和密码;

3. 具体连接步骤编辑

1)以管理员身份登录 FineBI ,点击「管理系统>数据连接>数据连接管理」,点击「新建数据连接」如下图所示:

注:如果非管理员用户想要配置数据连接,需要管理员给其分配管理系统下数据连接节点的权限,具体操作请查看 数据连接权限

2)找到 MySQL 的图标,如下图所示:

3)驱动选择「默认」(若用户重新上传了驱动,可以切换为自定义后选择自己的驱动),然后输入 2.2 节的连接信息。如下图所示:

注:若出现中文乱码或日期错乱的情况,可在「数据连接URL」后加后缀,格式为:jdbc:mysql://hostname:port/database?generateSimpleParameterMetadata=true&useUnicode=true&characterEncoding=utf8&useSSL=false&serverTimezone=Asia/Shanghai

其中

serverTimezone=Asia/Shanghai -- 设置以"上海时区"为准

characterEncoding=utf8  -- 编码转化

4)点击「测试连接」,若连接成功则「保存」该连接。如下图所示:

4. 添加数据库的表至 FineBI编辑

有两种方式可以将数据库中的表添加至 FineBI :

5. 注意事项编辑

5.1 数据库编码问题

若 MySQL 数据库编码为 UTF-8 ,需要在数据连接的 URL 后添加参数 ?useUnicode=true&characterEncoding=UTF-8

如果添加参数后仍然出现下图所示的乱码,那么需要将编码改为「默认」。

1589868788448436.jpg

5.2 添加数据表问题

5.2.1 SQL 语句

1)添加 SQL 数据集时,输入的 SQL 语句不支持添加注释。

2)添加 SQL 数据集时,输入的 SQL 语句不支持 top N 语句。

3)问题现象:添加SQL 数据集时,输入的 SQL 语句中带有 concat() 函数 ,例如 select concat( count(*) ,"个")from table GROUP  BY table1,如果连接的字段类型不同,会出现乱码。 

解决方法:利用 MySQL 的字符串转换函数 CONVERT() 将参数格式化为 char 类型即可,例如:select concat( CONVERT(count(*),char),"个")from table GROUP  BY table1

5.2.2 字段类型

1)当使用 MYSQL 数据连接并添加数据表时,若数据库版本为 MYSQL 5.6 ,请确保数据库中 varchar 文本类型字段不为空,否则添加表至 BI 后出现小方块1574922930783691.png乱码。

2)当使用 MYSQL 数据连接并添加数据表时,如果数据库中字段类型为年份 (year) 类型,在 BI 中会被识别成文本字段,且显示为年月日格式。如数据库中有 year 类型字段 2015,在 BI 中添加该数据表则会显示为 2015-01-01。

5.2.3 添加的数据集日期字段值和数据库记录的日期有误差

1)现象:仪表板或数据准备页面显示数据库的时间字段,比实际数据小了一天。

2)原因:mysql数据库默认使用的时区为CST,和当前时区不同。

3)解决方法:数据连接URL中增加参数 ?serverTimezone=Asia/Shanghai