欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  数据库

Sakai中使用MySQL数据库

程序员文章站 2022-05-07 14:30:06
...

从官网上下载sakai-demo-2.6.2,默认采用的是内存数据库hsqldb,想使用mysql。那么hellip;hellip;1、mysql中的表,字段,数据什

从官网上下载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可以直接转换,无痛操作…网上有详细的教程+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

Sakai中使用MySQL数据库