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

目录:

1. 概述编辑

本文将介绍如何在 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。若Mysql数据库取数出现查询乱码、缺少数据等,均可以通过添加改参数解决。

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,如下图所示:

1574928831764508.png

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

222

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

222

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

1574929040574160.png

3. 注意事项编辑

3.1 数据库编码问题

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

如果添加参数后仍然出现下图所示的乱码,那么需要将编码改为自动

1589852095966271.jpg

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 后出现小方块1574922930783691.png乱码。

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

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

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

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

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

4. Linux 连接 MYSQL 8.0.X 版本编辑

4.1 下载驱动

从 MySQL官网 选择适合的 OS 系统,以及适用 MYSQL-CONNECTOR 版本号,如下图所示:

1595163905408218.png

4.2 更新文件内容

将如下目录中的 5.1.44 版本文件进行移除,将下载好的文件放入此位置进行替换。

2020-07-19 20-51-22 的屏幕截图.png

替换为 8.0.20 小版本:

2020-07-19 20-50-19 的屏幕截图.png

4.3 重启 FineBI

1)使用如下命令查看 FineBI 进程对应的 PID ,并关闭进程。

ps -ef | grep finebi
kill PID(进程号)

2)启动 FineBI。

进入安装目录 FineBI/bin 下运行:   nohup ./finebi &

启动后,再次连接即可。

4.4 注意事项

1) JDBC 的URL 格式为:

jdbc:mysql://localhost:3306/mysql?userSSL=false&useUnicode=true&characterEncoding=UTF8&serverTimezone=GMT

注1:MySQL8.0 采用了更安全的基于 SHA 256 的密码方式进行身份验证,不需要 SSL 连接了,所以需要显示的设置关闭 useSSL=false。注2:UTC 为世界协调时间,格林威治标准时间为 GMT。可参考文档:JDBC 连接 MySQL8.0 版本数据库

2)MySQL6.0 及以上版本中,使用的驱动加载语句为:

com.mysql.cj.jdbc.Driver