Sakai中使用MySQL数据库

2014-11-24 17:45:25 · 作者: · 浏览: 1

从官网上下载sakai-demo-2.6.2,默认采用的是内存数据库hsqldb,想使用mysql。


那么……


1、mysql中的表,字段,数据什么的是怎么来的?我在官网上找了番,没有发现mysql的备份文件,ddl什么的,只有一些数据库升级文件什么的,难道我装2.6.2需要从1.5开始安装么..囧。


方案一:下载sakai源代码,搜索所有的*.sql文件,找出2.6.2版本的数据库文件(没有升级标记的文件),然后导入数据库。不推荐,这种方式导入的文件可能不全,而且数据库之间有依赖,出错很郁闷,反正我是弄一半放弃了。


方案二:将hsqldb数据库转化为mysql 数据库。这个是最妙的,因为hsqldb中是sakai实时运行中的所有数据,不用担心数据是否齐全的问题;而且有工具MySQL Migration Toolkit可以直接转换,无痛操作…网上有详细的教程http://confluence.atlassian.com/display/DOC/Migrating+from+HSQLDB+to+MySQL


要提醒的是:Source Database中connection String的值为sakai.properties中某个字段,比如:url@javax.sql.BaseDataSource=jdbc:hsqldb:file:${sakai.home}db/sakai.db,注意不要在.db后面加后缀了,虽然你疑问,sakai.db根本不是具体的文件(是的,他仅仅是一个前缀)


2、设置sakai加载mysql数据库。


注释掉url@javax.sql.BaseDataSource=jdbc:hsqldb:file:${sakai.home}db/sakai.db;hsqldb.default_table_type=cached


添加下面命令即可:


#username@javax.sql.BaseDataSource=sakai


#password@javax.sql.BaseDataSource=!@#$%)(*&


#vendor@org.sakaiproject.db.api.SqlService=mysql


#driverClassName@javax.sql.BaseDataSource=com.mysql.jdbc.Driver


#hibernate.dialect=org.hibernate.dialect.MySQLInnoDBDialect


#url@javax.sql.BaseDataSource=jdbc:mysql://127.0.0.1:3306/sakai useUnicode=true&characterEncoding=UTF-8


#validationQuery@javax.sql.BaseDataSource=select 1 from DUAL


#defaultTransactionIsolationString@javax.sql.BaseDataSource=TRANSACTION_READ_COMMITTED