Documentation for JIRA 5.1.x. Documentation for other versions of JIRA is available too.

Although HSQLDB is bundled with JIRA, we do not recommend it for production use. Please consider using one of the recommended databases instead. See Connecting JIRA to a Database for more information.

(info) If you are setting up a completely new JIRA installation, the JIRA Setup Wizard will configure an HSQL database connection for you, by choosing the Internal Database Connection during the first step of the wizard.

1. Before You Begin

Are You Migrating JIRA to Another Server?

If you are Migrating JIRA to Another Server, create an export of your data as an XML backup. You will then be able to transfer data from your old database to your new database, as described in Switching databases.

On this page:

2. Copy the HSQLDB Driver to Your Application Server (JIRA WAR Only)

(warning) Skip this step if you installed a 'Recommended' distribution of JIRA, which (unlike JIRA WAR) includes the HSQLDB JDBC driver.

  1. Download the HSQLDB JDBC driver — hsqldb-1.8.0.5.jar for JIRA 3.7+, or hsqldb-1.7.1-patched.jar for JIRA 3.6.5 and earlier. We strongly recommend upgrading to 3.7 if you wish to use hsqldb, as hsqldb 1.7.x is prone to data corruption.
  2. Add the HSQLDB JDBC driver jar to the lib/ directory.

4. Configure Your JIRA Server to Connect to Your HSQL Database

There are two ways to configure your JIRA server to connect to your HSQL database:

(info) Please Note:

4.1 Connecting JIRA to HSQLDB Using the JIRA Configuration Tool

(warning) The JIRA Configuration Tool is not available with JIRA WAR distributions.

(info) Please Note: You may need to set the JAVA_HOME environment variable to run the JIRA Configuration Tool. See Installing Java for details.

To connect JIRA to HSQLDB using the JIRA Configuration Tool:

  1. Click the Database tab.
  2. From the Database type drop-down, choose HSQL.
  3. Click Save to save your settings when you are done.
    (info) Please Note:
    • The JIRA Configuration Tool will save your database configuration to a dbconfig.xml file in your JIRA Home Directory. This tool also adds the following elements to this file, which are normally required when running JIRA with HSQLDB:
      <min-evictable-idle-time-millis>4000</min-evictable-idle-time-millis>
      <time-between-eviction-runs-millis>5000</time-between-eviction-runs-millis>
    • JIRA must be restarted for your new settings to take effect.

Congratulations — you have finished! Proceed to 'Next Steps' below.

4.2 Connecting JIRA to HSQLDB Manually

  1. Edit the dbconfig.xml file at the root of your JIRA Home Directory.
    (info)If this file does not exist, create the file, copy and paste the example XML code below into this file and edit the pasted XML as required.

    Please Note:

    Ensure that the <database-type/> element's content specifies your type of database, as shown below. If you forget to do this and you start JIRA, your database tables may be created incorrectly. Refer to our Incorrect database type specified documentation if this happens to you.

    (warning) When editing your dbconfig.xml file, escape any '&' characters by adding 'amp;' to the end of each one.

    <?xml version="1.0" encoding="UTF-8"?>
    
    <jira-database-config>
      <name>defaultDS</name>
      <delegator-name>default</delegator-name>
      <database-type>hsql</database-type>
      <schema-name>PUBLIC</schema-name>
      <jdbc-datasource>
        <url>jdbc:hsqldb:C:\Program Files\Atlassian\Application Data\JIRA/database/jiradb</url>
        <driver-class>org.hsqldb.jdbcDriver</driver-class>
        <username>sa</username>
        <password></password>
        <pool-min-size>20</pool-min-size>
        <pool-max-size>20</pool-max-size>
        <pool-max-wait>30000</pool-max-wait>
        <min-evictable-idle-time-millis>4000</min-evictable-idle-time-millis>
        <time-between-eviction-runs-millis>5000</time-between-eviction-runs-millis>
        <pool-max-idle>20</pool-max-idle>
        <pool-remove-abandoned>true</pool-remove-abandoned>
        <pool-remove-abandoned-timeout>300</pool-remove-abandoned-timeout>
      </jdbc-datasource>
    </jira-database-config>
    

    (minus) Please Note:


    • The following child elements of the <jdbc-datasource/> element are normally required when running JIRA with HSQLDB:
      <min-evictable-idle-time-millis>4000</min-evictable-idle-time-millis>
      <time-between-eviction-runs-millis>5000</time-between-eviction-runs-millis>
    (info) For more information about the child elements of <jdbc-datasource/> beginning with pool in the dbconfig.xml file above, see Tuning Database Connections.
  2. Save your edited dbconfig.xml file (at the root of your JIRA Home Directory).
    (info) JIRA must be restarted for your new settings to take effect.

4.2 Next steps

You should now have JIRA configured to connect to your HSQL database.

  • If you are using a 'recommended' distribution of JIRA, start it up and watch the logs for any errors.
  • If you are using the JIRA WAR distribution, rebuild and redeploy the webapp in your application server.

Installation notes

Please see JIRA and HSQL.