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 |
2.1 安装驱动隔离插件
防止数据库驱动与 FineBI 种的 JAR 起冲突,需要先安装驱动隔离插件以保证数据库顺利连接。
安装方式详细请参见:驱动隔离插件
2.2 连接步骤
1)准备驱动包
若使用的是 2.1 节支持的数据库版本,不需要另外准备驱动包;
若使用的版本不在 2.1 节支持的数据库版本中,可以从 MySQL官网 下载对应当前 MySQL 小版本的连接驱动包,替换掉%FineBI%\webapps\webroot\WEB-INF\lib目录下的 mysql-connector-java-5.1.44-bin.jar
2)登录 FineBI 数据决策系统,选择「管理系统>数据连接」,点击「新建数据连接」并选择 MySQL,如下图所示:

3)输入数据库的对应信息,如下图所示:

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

