Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
  • 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
  1. Database section - look for the following in the sakai.properties file
    No Format
    
    # DATABASE CONFIGURATION - make sure to modify details to match your particular setup
    
  2. Configuring the username and password, these are used to login to the database when making a connection
    No Format
    
    # 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)
  3. Turning on auto.ddl
    No Format
    
    # 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)
  4. 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
  5. HSQLDB enabling and configuration
    Uncomment the following lines to enable HSQLDB
    No Format
    
    ## 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
    1. To use HSQLDB in file mode (where it stores data on the filesystem), comment out this line:
      No Format
      
      url@javax.sql.BaseDataSource=jdbc:hsqldb:.
      
      and uncomment this one
      No Format
      
      url@javax.sql.BaseDataSource=jdbc:hsqldb:${sakai.home}/db/sakai.db
      
  6. MySQL enabling and configuration
    Uncomment the following lines to enable MySQL
    No Format
    
    ## 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
    
  7. Oracle enabling and configuration
    Uncomment the following lines to enable Oracle
    No Format
    
    ## 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
    
  8. Turning on/off hibernate logging
    No Format
    
    # 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