艾利-

  博客园 :: 首页 :: 新随笔 :: 联系 :: 订阅 :: 管理 ::

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

其中

  1. create_repository_mysql.sql   

创建hibernate 数据库,用于存储用户授权认证,solution repository以及数据源。

  1. create_sample_datasource.sql  

为sample数据添加pentaho所有基本的实例数据源。

  1. 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环境准备就绪。

 

posted on 2015-04-23 17:00  艾利-  阅读(532)  评论(0)    收藏  举报
本博文欢迎大家浏览和转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接. 若您发现我侵犯了您的版权,请及时与我联系。