Sakai中使用MySQL数据库 |
发布时间: 2012/8/13 16:19:09 |
从官网上下载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数据库。 添加下面命令即可: #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 #validationQuery@javax.sql.BaseDataSource=select 1 from DUAL #defaultTransactionIsolationString@javax.sql.BaseDataSource=TRANSACTION_READ_COMMITTED 本文出自:亿恩科技【www.enkj.com】 |