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 setup
- Configuring 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=ironchef
- The defaults are: username="sa", password="" (blank)
- Turning on auto.ddl
# establish auto.ddl - on by default auto.ddl=true #auto.ddl=false
- This 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.db
- HSQLDB 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:
and uncomment this one
url@javax.sql.BaseDataSource=jdbc:hsqldb:.
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_COMMITTED
- The 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=false
- The 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=false
- Change 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