Database settings in sakai.properties
There are currently 3 databases supported in Sakai (Oracle, MySQL, HSQLDB)
Sakai will use HSQLDB in memory mode by default (once Sakai is shut down all data is lost)Look at the parent page to this one for more info on sakai.properties configuration
Database section - look for the following in the sakai.properties file
# DATABASE CONFIGURATION - make sure to modify details to match your particular setupConfiguring the username and password, these are used to login to the database when making a connection
# The username and password. The defaults are for the out-of-the-box HSQLDB. Change to match your setup. username@javax.sql.BaseDataSource=sakai password@javax.sql.BaseDataSource=ironchefThe defaults are: username="sa", password="" (blank)
Turning on auto.ddl
# establish auto.ddl - on by default auto.ddl=true #auto.ddl=falseThis tells Sakai to create and update database tables automatically, you will want to always leave this on as a developer (default is true/on)
Turning on a database
WARNING: You can only have one database configured at a time, if you try to enable more than one by uncommenting lines, either the last one will work or you will get many strange errors
HSQLDB enabling and configuration
Uncomment the following lines to enable HSQLDB## HSQLDB settings - on by default vendor@org.sakaiproject.db.api.SqlService=hsqldb driverClassName@javax.sql.BaseDataSource=org.hsqldb.jdbcDriver hibernate.dialect=org.hibernate.dialect.HSQLDialect validationQuery@javax.sql.BaseDataSource=select 1 from SYSTEM_USERS # two hsqldb storage options: first for in-memory (no persistence between runs), second for disk based url@javax.sql.BaseDataSource=jdbc:hsqldb:. #url@javax.sql.BaseDataSource=jdbc:hsqldb:${sakai.home}/db/sakai.dbHSQLDB is turned on by default, it only stores data in memory by default
HSQLDB works well for development and for demos
WARNING: Never use HSQLDB in production unless you are an expert on HSQLDB and are running a very small Sakai installation, even then it is not a great idea
To use HSQLDB in file mode (where it stores data on the filesystem), comment out this line:
url@javax.sql.BaseDataSource=jdbc:hsqldb:.and uncomment this one
url@javax.sql.BaseDataSource=jdbc:hsqldb:${sakai.home}/db/sakai.db
MySQL enabling and configuration
Uncomment the following lines to enable MySQL## MySQL settings - make sure to alter as appropriate vendor@org.sakaiproject.db.api.SqlService=mysql driverClassName@javax.sql.BaseDataSource=com.mysql.jdbc.Driver hibernate.dialect=org.hibernate.dialect.MySQLDialect 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_COMMITTEDThe default configuration points to a MySQL server on your local machine 127.0.0.1, make sure to change this if your database server is located elsewhere
Oracle enabling and configuration
Uncomment the following lines to enable Oracle## Oracle settings - make sure to alter as appropriate vendor@org.sakaiproject.db.api.SqlService=oracle driverClassName@javax.sql.BaseDataSource=oracle.jdbc.driver.OracleDriver hibernate.dialect=org.hibernate.dialect.Oracle9Dialect url@javax.sql.BaseDataSource=jdbc:oracle:thin:@your.oracle.dns:1521:SID validationQuery@javax.sql.BaseDataSource=select 1 from DUAL defaultTransactionIsolationString@javax.sql.BaseDataSource=TRANSACTION_READ_COMMITTED # For improved Oracle performance, implementers using Oracle should strongly consider # enabling all the following settings just as they appear (suggestion from the University of Michigan). #validationQuery@javax.sql.BaseDataSource= #defaultTransactionIsolationString@javax.sql.BaseDataSource= #testOnBorrow@javax.sql.BaseDataSource=falseThe default configuration points to a made-up Oracle server your.oracle.dns:1521:SID, make sure to fix the jdbc connection string to something real like oracle.edtech.vt.edu:1521:HPRD
Pay attention to the comments about performance, you should probably follow them
Turning on/off hibernate logging
# enable hibernate SQL debugging output hibernate.show_sql=falseChange hibernate.show_sql=false to hibernate.show_sql=true to enable verbose hibnerate logging
WARNING: Never do this in production unless you are watching it carefully, this can produce massive logs and slow down you server
Sample sakai.properties file: Look at the parent page for a sample