1. 概述编辑
本文将介绍如何在 FineBI 中连接 MySQL 数据库。
如果是 MySQL8.0,连接方法参见文档:MySQL8.0 数据连接
2. 数据连接编辑
2.1 配置信息
| 驱动 | URL | 支持数据库版本 |
|---|---|---|
| com.mysql.jdbc.Driver 或 org.gjt.mm.mysql.Driver | jdbc:mysql://ip:port/dbname | MySQL 5.1.73、MySQL 5.5、MySQL 5.6、MySQL 5.7 |
注:此处若 MySQL 数据库编码为 UTF-8 ,需要在数据连接的URL后添加参数 ?useUnicode=true&characterEncoding=UTF-8。若Mysql数据库取数出现查询乱码、缺少数据等,均可以通过添加改参数解决。
有两种连接方式:
方法一:安装驱动隔离插件后,再连接数据库。
驱动隔离插件下载安装详情请参见:驱动隔离插件
方法二:不使用驱动隔离插件,直接连接数据库。
连接方式参见本文 2.2 节。但这种方式可能有 JAR 包之间的冲突从而导致连接失败。推荐用户用第一种方式。
2.2 连接步骤
1)准备驱动包
配置信息中的 MySQL 版本,使用 FineBI 自带的驱动包 mysql-connector-java-5.1.44-bin.jar,不需要单独下载驱动包。
非配置信息中的 MySQL 版本,需要从 MySQL官网 下载对应当前 MySQL 小版本的连接驱动包,替换掉%FineBI%\webapps\webroot\WEB-INF\lib目录下的 mysql-connector-java-5.1.44-bin.jar
2)登录 FineBI 数据决策系统,选择管理系统>数据连接,点击新建数据连接并选择MySQL,如下图所示:

3)按照 2.1 章节提供的配置信息,输入数据库的对应信息,可选择填入连接池属性信息(连接池属性介绍可参考 配置数据连接 ),如下图所示:

2.3 测试连接
点击测试连接,若出现如下图的测试连接成功弹出框,则表示成功连接上数据库。如下图所示:

测试连接成功后,点击右上角的保存按钮,该数据连接即添加成功。如下图所示:

3. 注意事项编辑
3.1 数据库编码问题
若 MySQL 数据库编码为 UTF-8 ,需要在数据连接的 URL 后添加参数 ?useUnicode=true&characterEncoding=UTF-8
如果添加参数后仍然出现下图所示的乱码,那么需要将编码改为自动。

3.2 添加数据表问题
3.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。
3.2.2 字段类型
1)当使用 MYSQL 数据连接并添加数据表时,若数据库版本为 MYSQL 5.6 ,请确保数据库中 varchar 文本类型字段不为空,否则添加表至 BI 后出现小方块
乱码。
2)当使用 MYSQL 数据连接并添加数据表时,如果数据库中字段类型为年份 (year) 类型,在 BI 中会被识别成文本字段,且显示为年月日格式。如数据库中有 year 类型字段 2015,在 BI 中添加该数据表则会显示为 2015-01-01。
3.2.3 添加的数据集日期字段值和数据库记录的日期有误差
1)现象:仪表板或数据准备页面显示数据库的时间字段,比实际数据小了一天。
2)原因:mysql数据库默认使用的时区为CST,和当前时区不同。
3)解决方法:数据连接URL中增加参数 ?serverTimezone=Asia/Shanghai

