1. 概述编辑
MySQL 是一种开放源代码的关系型数据库管理系统(RDBMS),使用最常用的数据库管理语言--结构化查询语言(SQL)进行数据库管理。本章我们将介绍如何在 FineBI 中连接 MySQL 数据库。
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。
2.2 连接步骤
1)该数据连接使用FineBI自带的驱动包mysql-connector-java-5.1.44-bin.jar,不需要单独下载驱动包。
注:若为 FineReport 连接 MySQL 数据库,需要下载驱动 mysql-connector-java-5.1.39-bin.jar,放入对应目录,删除原先驱动版本并重启 FR 。
2)登录 FineBI 数据决策系统,选择管理系统>数据连接,点击新建数据连接并选择MySQL,如下图所示:

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

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

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

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

