HSQLDB迁移到MySQL DB
Pentaho 默认使用HSQLDB 数据库(http://hsqldb.org/)。
1. 迁移原因
Pentaho BI 服务器的很多重要信息存储在数据库中,其默认使用 HSQLDB 数据库,即
借助它存储自身的资料库,比如 Quartz 调度信息、业务资料库连接信息(数据源)等。HSQLDB 是不能够支撑真实的企业应用的,生产环境必须替换它,因此我们需要将HSQLDB迁移至MySQL。
2. 创建MySQL数据库
分别执行下面加粗的sql脚本。先后顺序不限。运行方法是多种的,可以通过MySQL Workbench导入工具实现,也可直接执行。

我们设定导入的MySQL数据库地址为jdbc:mysql://localhost:3306,用户名root,密码admin。
biserver-ce\data\mysql5\create_quartz_mysql.sql
biserver-ce\data\mysql5\create_repository_mysql.sql
biserver-ce\data\mysql5\create_sample_datasource_mysql.sql
其中
- create_repository_mysql.sql
创建hibernate 数据库,用于存储用户授权认证,solution repository以及数据源。
- create_sample_datasource.sql
为sample数据添加pentaho所有基本的实例数据源。
- create_quartz_mysql.sql
为Quartz计划任务器创建资源库。
3. 配置Pentaho
1. 给pentaho添加JDBC文件
下载MySQL的JDBC驱动:MySQL—mysql-connector-java-x.x.x.jar
将其拷贝至biserver-ce\tomcat\lib和administration-console\jdbc下,以便BI service和administration console访问MySQL数据库。
一般程序包中(默认在路径biserver-ce-4.8.0-stable\administration-console\jdbc下)有自带的mysql驱动,你可直接将其拷到biserver-ce\tomcat\lib下。
2. 修改以下文件
biserver-ce\pentaho-solutions\system\applicationContext-spring-security-jdbc.xml
biserver-ce\pentaho-solutions\system\applicationContext-spring-security-hibernate.properties
biserver-ce\pentaho-solutions\system\hibernate\hibernate-settings.xml
biserver-ce\pentaho-solutions\system\hibernate\mysql5.hibernate.cfg.xml
biserver-ce\tomcat\webapps\pentaho\META-INF\context.xml
以上文件主要是替换SQL驱动,SQL用户名与密码等信息。修改详情如下,红色部分代表文件名,黑体代表更改点。
applicationContext-spring-security-jdbc.xml
<bean id="dataSource"
class="org.springframework.jdbc.datasource.DriverManagerDataSource">
<property name="driverClassName" value="com.mysql.jdbc.Driver" />
<property name="url"
value="jdbc:mysql://localhost:3306/hibernate"
/>
<property name="username" value="root" />
<property name="password" value="admin" />
</bean>

applicationContext-spring-security-hibernate.properties
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/hibernate
jdbc.username=root
jdbc.password=admin
hibernate.dialect=org.hibernate.dialect.MySQL5InnoDBDialect

hibernate-settings.xml
<config-file>system/hibernate/mysql5.hibernate.cfg.xml</config-file>

mysql5.hibernate.cfg.xml
<property name="connection.driver_class">com.mysql.jdbc.Driver</property>
<property name="connection.url">jdbc:mysql://localhost:3306/hibernate</property>
<property name="dialect">org.hibernate.dialect.MySQL5InnoDBDialect</property>
<property name="connection.username">root</property>
<property name="connection.password">admin</property>

context.xml
<Resource name="jdbc/Hibernate" auth="Container"
type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory"
maxActive="20" maxIdle="5"
maxWait="10000" username="root"
password="admin"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost:3306/hibernate"
validationQuery="select 1"
/>
<Resource name="jdbc/Quartz" auth="Container" type="javax.sql.DataSource"
factory="org.apache.commons.dbcp.BasicDataSourceFactory" maxActive="20" maxIdle="5"
maxWait="10000" username="root" password="admin"
driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/quartz"
validationQuery="select 1"/>

现在可以启动pentaho服务了。可以看到BI环境准备就绪。

浙公网安备 33010602011771号