Documentation for JIRA 4.3. Documentation for other versions of JIRA is available too.
These instructions will help you connect JIRA to a MySQL 5.1.x database.
Note: A Linux-specific version of these instructions is available.
On this page:
If you are already using JIRA, 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.
If you are using a MySQL database with any of the following:
you may experience problems with your connections dropping out (see http://jira.atlassian.com/browse/JRA-15731 for details). Please read Surviving Connection Closures for information on the changes required to your application server to address this.
If you experience any other issues with using JIRA and MySQL, please refer to our additional notes for more information.
jirauser
).jiradb
). The database must have a character set of UTF8. Enter the following command from within the MySQL command client:
create database jiradb character set utf8;
jiradb
).Avoid using MyISAM as the storage engine for your JIRA database as this can lead to data corruption - JRA-24124.
Skip this step if you are using JIRA Standalone distribution, as JIRA Standalone includes the driver.
A user has reported encountering problems using the Resin JDBC driver for MySQL. However, the Connector/J driver from MySQL works correctly
mysql-connector-java-5.x.x-bin.jar
) to the lib/
directory.
The JIRA Configuration Tool is a GUI tool only available if you are using JIRA Standalone distribution. If you are running a WAR-EAR distribution of JIRA, or have a text-only connection to the JIRA server, you will need to configure the files manually.
The JIRA Configuration Tool requires that Java be installed and configured on your operating system. We recommend using a Java platform supported by JIRA — refer to JIRA Requirements for details.
config.bat
in the bin
subdirectory of the JIRA Installation Directory.config.sh
in the bin
subdirectory of the JIRA Installation Directory.The Configuration Tool will display your current configuration settings if any are already set.
Please Note: You may need to set the
JAVA_HOME
environment variable to run the JIRA Configuration Tool. See Installing Java for details.
Congratulations — you have finished!
Skip this step if you used the JIRA Configuration Tool (see above).
conf/server.xml
(if you are using JIRA Standalone) and customise the username
, password
, driverClassName
and url
parameters for the Datasource. (If you are using JIRA WAR/EAR, edit the appropriate file on your application server; e.g. for Tomcat, edit conf/Catalina/localhost/jira.xml
).
The URL in the XML below assumes a UTF-8 database — i.e. created with create database jiradb character set utf8;
. If you don't specify character set utf8
you risk getting 'Data truncation: Data too long for column
' errors when importing data or corruption of non-supported characters. See storing non-ASCII characters in MySQL for details.
&
' by adding 'amp;
' to the end of it, as follows:
<Server port="8005" shutdown="SHUTDOWN"> <Service name="Catalina"> <Connector port="8080" maxHttpHeaderSize="8192" maxThreads="150" minSpareThreads="25" maxSpareThreads="75" enableLookups="false" redirectPort="8443" acceptCount="100" connectionTimeout="20000" disableUploadTimeout="true" /> <Engine name="Catalina" defaultHost="localhost"> <Host name="localhost" appBase="webapps" unpackWARs="true" autoDeploy="true"> <Context path="" docBase="${catalina.home}/atlassian-jira" reloadable="false"> <Resource name="jdbc/JiraDS" auth="Container" type="javax.sql.DataSource" username="[enter db username]" password="[enter db password]" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost/jiradb?useUnicode=true&characterEncoding=UTF8" [ delete the minEvictableIdleTimeMillis and timeBetweenEvictionRunsMillis params here ] maxActive="20" [ If maxActive is not set it uses the default number of the connections (8), which may be too little and can cause performance issues ] validationQuery="select 1"/> <Resource name="UserTransaction" auth="Container" type="javax.transaction.UserTransaction" factory="org.objectweb.jotm.UserTransactionFactory" jotm.timeout="60"/> <Manager pathname=""/> </Context> </Host> </Engine> </Service> </Server>
conf/
.)conf/server.xml
, and delete the minEvictableIdleTimeMillis
and timeBetweenEvictionRunsMillis
attributes (which are only needed for HSQL, and degrade performance otherwise).validationQuery
parameter to the Datasource and set it to "select 1". See the XML above for an example of this.atlassian-jira/WEB-INF/classes/entityengine.xml
(if you are using JIRA Standalone) or edit-webapp/WEB-INF/classes/entityengine.xml
(JIRA WAR/EAR), and change the field-type-name
attribute to mysql
. (If you forget to do this and start JIRA, it may create database tables incorrectly. See this page if this happens to you). Also delete the schema-name="PUBLIC"
attribute, if it exists:
<!-- DATASOURCE - You will need to update this tag for your installation. --> <datasource name="defaultDS" field-type-name="mysql"[ delete this, if it exists: schema-name="PUBLIC" ] helper-class="org.ofbiz.core.entity.GenericHelperDAO" check-on-start="true" use-foreign-keys="false" ...
If you are using JIRA WAR/EAR, your application server may require other changes to entityengine.xml
(e.g. to customise the jndi-jdbc
tag).
You should now have an application server configured to connect to a database, and JIRA configured to use the correct database type. If you are using JIRA Standalone, start it up and watch the logs for any errors. If you are using the JIRA WAR/EAR distribution, rebuild and redeploy the webapp in your application server.
Please see JIRA and MySQL.