{"id":213,"date":"2017-05-19T11:21:22","date_gmt":"2017-05-19T03:21:22","guid":{"rendered":"https:\/\/blog.jsjs.org\/?p=213"},"modified":"2017-05-19T11:21:22","modified_gmt":"2017-05-19T03:21:22","slug":"connecting-jira-applications-to-mysql","status":"publish","type":"post","link":"https:\/\/blog.jsjs.org\/?p=213","title":{"rendered":"Connecting JIRA applications to MySQL"},"content":{"rendered":"<h1><\/h1>\n<div id=\"confluence-content\">\n<div class=\"conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"sp-pagelayout\">\n<div class=\"aui-group\">\n<div class=\"aui-item\">\n<p>These instructions will help you connect JIRA to a supported\u00a0<a class=\"external-link\" href=\"http:\/\/www.mysql.com\/\" rel=\"nofollow\">MySQL<\/a>\u00a0database.<\/p>\n<h2 id=\"ConnectingJIRAapplicationstoMySQL-Beforeyoubegin\">Before you begin<\/h2>\n<ul>\n<li>Check whether your version of MySQL is supported. See <a class=\"conf-macro output-inline\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/supported-platforms-861253018.html\" data-macro-name=\"sp-link\" data-hasbody=\"false\">Supported platforms<\/a>.<\/li>\n<li>If you are <a class=\"conf-macro output-inline\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/migrating-jira-applications-to-another-server-861253107.html\" data-macro-name=\"sp-link\" data-hasbody=\"true\">migrating JIRA to another server<\/a>, create an export of your data as an <a class=\"conf-macro output-inline\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/backing-up-data-861253815.html\" data-macro-name=\"sp-link\" data-hasbody=\"true\">XML backup<\/a>. You will then be able to transfer data from your old database to your new database, as described in <a class=\"conf-macro output-inline\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/switching-databases-861253056.html\" data-macro-name=\"sp-link\" data-hasbody=\"false\">Switching databases<\/a>.<\/li>\n<li>If you plan to set up Confluence and JIRA on the same MySQL server, please read the <a class=\"conf-macro output-inline\" href=\"https:\/\/confluence.atlassian.com\/doc\/database-setup-for-mysql-128747.html\" data-macro-name=\"sp-link\" data-hasbody=\"true\">Confluence MySQL setup guide<\/a>, and configure your MySQL server to suit Confluence, as well as JIRA. Note that the Confluence requirements are more strict than JIRA&#8217;s, so you should configure MySQL to suit Confluence. This configuration will work for JIRA, too.<\/li>\n<li>Shut down JIRA before you begin, unless you are running the setup wizard.<\/li>\n<\/ul>\n<\/div>\n<div class=\"aui-item\">\n<div class=\"panel panel-default conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"sp-macrooverride-block\">\n<div class=\"panel-body\">\n<p><strong>On this page:<\/strong><\/p>\n<div class=\"toc-macro client-side-toc-macro  conf-macro output-block hidden-outline\" data-hasbody=\"false\" data-headerelements=\"H2\" data-macro-name=\"toc\">\n<ul>\n<li><span class=\"toc-item-body\" data-outline=\"1\"><a class=\"toc-link\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/connecting-jira-applications-to-mysql-861253043.html#ConnectingJIRAapplicationstoMySQL-Beforeyoubegin\">Before you begin<\/a><\/span><\/li>\n<li><span class=\"toc-item-body\" data-outline=\"2\"><a class=\"toc-link\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/connecting-jira-applications-to-mysql-861253043.html#ConnectingJIRAapplicationstoMySQL-configuringmysqlcreateandconfiguredb1.CreateandconfiguretheMySQLdatabase\">1. Create and configure the MySQL database<\/a><\/span><\/li>\n<li><span class=\"toc-item-body\" data-outline=\"3\"><a class=\"toc-link\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/connecting-jira-applications-to-mysql-861253043.html#ConnectingJIRAapplicationstoMySQL-jdbcdriver2.CopytheMySQLJDBCdrivertoyourapplicationserver\">2. Copy the MySQL JDBC driver to your application server<\/a><\/span><\/li>\n<li><span class=\"toc-item-body\" data-outline=\"4\"><a class=\"toc-link\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/connecting-jira-applications-to-mysql-861253043.html#ConnectingJIRAapplicationstoMySQL-configurejirawithdatabase3.ConfigureyourJIRAservertoconnecttoyourMySQLdatabase\">3. Configure your JIRA server to connect to your MySQL database<\/a><\/span><\/li>\n<li><span class=\"toc-item-body\" data-outline=\"5\"><a class=\"toc-link\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/connecting-jira-applications-to-mysql-861253043.html#ConnectingJIRAapplicationstoMySQL-4.StartJIRA\">4. Start JIRA<\/a><\/span><\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"aui-group\">\n<div class=\"aui-item\">\n<h2 id=\"ConnectingJIRAapplicationstoMySQL-configuringmysqlcreateandconfiguredb1.CreateandconfiguretheMySQLdatabase\"><span id=\"ConnectingJIRAapplicationstoMySQL-configuringmysql\" class=\"confluence-anchor-link conf-macro output-inline\" data-hasbody=\"false\" data-macro-name=\"anchor\"><\/span><span id=\"ConnectingJIRAapplicationstoMySQL-createandconfiguredb\" class=\"confluence-anchor-link conf-macro output-inline\" data-hasbody=\"false\" data-macro-name=\"anchor\"><\/span>1. Create and configure the MySQL database<\/h2>\n<ol>\n<li>Create a database user which JIRA will connect as (e.g. <code><strong>jiradbuser<\/strong><\/code>).<br \/>\n<em><strong>Remember this database user name<\/strong>, as it will be used to configure JIRA&#8217;s connection to this database in subsequent steps.<\/em><\/li>\n<li>Create a database for JIRA to store issues in (e.g. <code><strong>jiradb<\/strong><\/code>). The database must have a character set of UTF8. Enter the following command from within the MySQL command client.<br \/>\n<em><strong>Remember this database name<\/strong>, as it will be used to configure JIRA&#8217;s connection to this database in subsequent steps.<\/em><\/p>\n<div class=\"pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeContent panelContent pdl\">\n<div class=\"CodeMirror cm-s-neat CodeMirror-wrap\">\n<div><\/div>\n<div class=\"CodeMirror-scroll\" tabindex=\"-1\">\n<div class=\"CodeMirror-sizer\">\n<div>\n<div class=\"CodeMirror-lines\">\n<div>\n<div class=\"CodeMirror-measure\"><\/div>\n<div class=\"CodeMirror-measure\"><\/div>\n<div><\/div>\n<div class=\"CodeMirror-cursors\"><\/div>\n<div class=\"CodeMirror-code\">\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">1<\/div>\n<\/div>\n<pre class=\"\">CREATE DATABASE jiradb CHARACTER SET utf8 COLLATE utf8_bin;<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div><\/div>\n<div class=\"CodeMirror-gutters\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p class=\"emoticon emoticon-tick\" title=\"(tick)\">(if you want your database to be named <code><strong>jiradb<\/strong><\/code>).<\/p>\n<\/li>\n<li>Ensure that the user has permission to connect to the database, and permission to create and populate tables. These can be provided with the following &#8211;<br \/>\nFor MySQL 5.5, MySQL 5.6, and MySQL 5.7.0 to MySQL 5.7.5:<\/p>\n<div class=\"pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeContent panelContent pdl\">\n<div class=\"CodeMirror cm-s-neat CodeMirror-wrap\">\n<div><\/div>\n<div class=\"CodeMirror-scroll\" tabindex=\"-1\">\n<div class=\"CodeMirror-sizer\">\n<div>\n<div class=\"CodeMirror-lines\">\n<div>\n<div class=\"CodeMirror-measure\">\n<pre><\/pre>\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\"><\/div>\n<\/div>\n<div class=\"CodeMirror-measure\"><\/div>\n<div><\/div>\n<div class=\"CodeMirror-cursors\"><\/div>\n<div class=\"CodeMirror-code\">\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">1<\/div>\n<\/div>\n<pre class=\"\">GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX on &lt;JIRADB&gt;.* TO '&lt;USERNAME&gt;'@'&lt;JIRA_SERVER_HOSTNAME&gt;' IDENTIFIED BY '&lt;PASSWORD&gt;';<\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">2<\/div>\n<\/div>\n<pre class=\"\">flush privileges;<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div><\/div>\n<div class=\"CodeMirror-gutters\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>For MySQL 5.7.6 and above, you must also include the REFERENCES permission:<\/p>\n<div class=\"pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeContent panelContent pdl\">\n<div class=\"CodeMirror cm-s-neat CodeMirror-wrap\">\n<div><\/div>\n<div class=\"CodeMirror-scroll\" tabindex=\"-1\">\n<div class=\"CodeMirror-sizer\">\n<div>\n<div class=\"CodeMirror-lines\">\n<div>\n<div class=\"CodeMirror-measure\">\n<pre><\/pre>\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\"><\/div>\n<\/div>\n<div class=\"CodeMirror-measure\"><\/div>\n<div><\/div>\n<div class=\"CodeMirror-cursors\"><\/div>\n<div class=\"CodeMirror-code\">\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">1<\/div>\n<\/div>\n<pre class=\"\">GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,REFERENCES,ALTER,INDEX on &lt;JIRADB&gt;.* TO '&lt;USERNAME&gt;'@'&lt;JIRA_SERVER_HOSTNAME&gt;' IDENTIFIED BY '&lt;PASSWORD&gt;';<\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">2<\/div>\n<\/div>\n<pre class=\"\">flush privileges;<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div><\/div>\n<div class=\"CodeMirror-gutters\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"aui-message aui-message-info conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"sp-macrooverride-block\">\n<p class=\"title\"><strong>Tip:<\/strong><\/p>\n<p>To confirm if the permissions were granted successfully, log into the DB server with the JIRA DB user and run the command below:<\/p>\n<div class=\"pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeContent panelContent pdl\">\n<div class=\"CodeMirror cm-s-neat CodeMirror-wrap\">\n<div><\/div>\n<div class=\"CodeMirror-scroll\" tabindex=\"-1\">\n<div class=\"CodeMirror-sizer\">\n<div>\n<div class=\"CodeMirror-lines\">\n<div>\n<div class=\"CodeMirror-measure\">\n<pre><\/pre>\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\"><\/div>\n<\/div>\n<div class=\"CodeMirror-measure\"><\/div>\n<div><\/div>\n<div class=\"CodeMirror-cursors\"><\/div>\n<div class=\"CodeMirror-code\">\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">1<\/div>\n<\/div>\n<pre class=\"\">SHOW GRANTS FOR &lt;USERNAME&gt;@&lt;JIRA_SERVER_HOSTNAME&gt;;<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div><\/div>\n<div class=\"CodeMirror-gutters\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/li>\n<li>Edit the\u00a0<code>my.cnf<\/code>\u00a0file (m<code>y.ini<\/code>\u00a0on Windows operating systems) in your MySQL server.\u00a0(Refer to\u00a0<a class=\"external-link\" href=\"http:\/\/dev.mysql.com\/doc\/refman\/5.6\/en\/option-files.html\" rel=\"nofollow\">MySQL Option Files<\/a>\u00a0for detailed instructions on editing\u00a0<code>my.cnf<\/code>\u00a0and\u00a0<code>my.ini<\/code>.)<br \/>\nLocate the\u00a0<code>[mysqld]<\/code>section in the file, and add or modify the following parameters:<\/p>\n<ul>\n<li>Set the default storage engine to InnoDB:\n<div class=\"pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeContent panelContent pdl\">\n<div class=\"CodeMirror cm-s-neat CodeMirror-wrap\">\n<div><\/div>\n<div class=\"CodeMirror-scroll\" tabindex=\"-1\">\n<div class=\"CodeMirror-sizer\">\n<div>\n<div class=\"CodeMirror-lines\">\n<div>\n<div class=\"CodeMirror-measure\">\n<pre><\/pre>\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\"><\/div>\n<\/div>\n<div class=\"CodeMirror-measure\"><\/div>\n<div><\/div>\n<div class=\"CodeMirror-cursors\"><\/div>\n<div class=\"CodeMirror-code\">\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">1<\/div>\n<\/div>\n<pre class=\"\">[mysqld]<\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">2<\/div>\n<\/div>\n<pre class=\"\">...<\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">3<\/div>\n<\/div>\n<pre class=\"\">default-storage-engine=INNODB<\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">4<\/div>\n<\/div>\n<pre class=\"\">...<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div><\/div>\n<div class=\"CodeMirror-gutters\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/li>\n<li>Specify the value of\u00a0<code>max_allowed_packet<\/code>\u00a0to be at least 256M:\n<div class=\"pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeContent panelContent pdl\">\n<div class=\"CodeMirror cm-s-neat CodeMirror-wrap\">\n<div><\/div>\n<div class=\"CodeMirror-scroll\" tabindex=\"-1\">\n<div class=\"CodeMirror-sizer\">\n<div>\n<div class=\"CodeMirror-lines\">\n<div>\n<div class=\"CodeMirror-measure\">\n<pre><\/pre>\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\"><\/div>\n<\/div>\n<div class=\"CodeMirror-measure\"><\/div>\n<div><\/div>\n<div class=\"CodeMirror-cursors\"><\/div>\n<div class=\"CodeMirror-code\">\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">1<\/div>\n<\/div>\n<pre class=\"\">[mysqld]<\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">2<\/div>\n<\/div>\n<pre class=\"\">...<\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">3<\/div>\n<\/div>\n<pre class=\"\">max_allowed_packet=256M<\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">4<\/div>\n<\/div>\n<pre class=\"\">...<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div><\/div>\n<div class=\"CodeMirror-gutters\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/li>\n<li>Specify the value of\u00a0<code>innodb_log_file_size<\/code>\u00a0to be at least 256M for MySQL 5.5 and below:\n<div class=\"pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeContent panelContent pdl\">\n<div class=\"CodeMirror cm-s-neat CodeMirror-wrap\">\n<div><\/div>\n<div class=\"CodeMirror-scroll\" tabindex=\"-1\">\n<div class=\"CodeMirror-sizer\">\n<div>\n<div class=\"CodeMirror-lines\">\n<div>\n<div class=\"CodeMirror-measure\">\n<pre><\/pre>\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\"><\/div>\n<\/div>\n<div class=\"CodeMirror-measure\"><\/div>\n<div><\/div>\n<div class=\"CodeMirror-cursors\"><\/div>\n<div class=\"CodeMirror-code\">\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">1<\/div>\n<\/div>\n<pre class=\"\">[mysqld]<\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">2<\/div>\n<\/div>\n<pre class=\"\">...<\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">3<\/div>\n<\/div>\n<pre class=\"\">innodb_log_file_size=256M<\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">4<\/div>\n<\/div>\n<pre class=\"\">...<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div><\/div>\n<div class=\"CodeMirror-gutters\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<p>NB: This should be set to at least 2G for\u00a0MySQL 5.6 and above.<\/li>\n<li>Ensure the sql_mode parameter does not specify NO_AUTO_VALUE_ON_ZERO\n<div class=\"pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeContent panelContent pdl\">\n<div class=\"CodeMirror cm-s-neat CodeMirror-wrap\">\n<div><\/div>\n<div class=\"CodeMirror-scroll\" tabindex=\"-1\">\n<div class=\"CodeMirror-sizer\">\n<div>\n<div class=\"CodeMirror-lines\">\n<div>\n<div class=\"CodeMirror-measure\">\n<pre><\/pre>\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\"><\/div>\n<\/div>\n<div class=\"CodeMirror-measure\"><\/div>\n<div><\/div>\n<div class=\"CodeMirror-cursors\"><\/div>\n<div class=\"CodeMirror-code\">\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">1<\/div>\n<\/div>\n<pre class=\"\">\/\/ remove this if it exists<\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">2<\/div>\n<\/div>\n<pre class=\"\">sql_mode = NO_AUTO_VALUE_ON_ZERO<\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div><\/div>\n<div class=\"CodeMirror-gutters\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/li>\n<\/ul>\n<\/li>\n<li>Restart your MySQL server for the changes to take effect:\n<ul>\n<li>On Windows, use the Windows Services manager to restart the service.<\/li>\n<li>On Linux:\n<ul>\n<li>Run one of the following commands, depending on your setup: &#8216;<code>\/etc\/init.d\/mysqld stop<\/code>&#8216; or &#8216;<code>\/etc\/init.d\/mysql stop<\/code>&#8216; or &#8216;<code>service mysqld stop<\/code>&#8216;.<\/li>\n<li>Then run the same command again, replacing &#8216;<code>stop<\/code>&#8216; with &#8216;<code>start<\/code>&#8216;.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n<h2 id=\"ConnectingJIRAapplicationstoMySQL-jdbcdriver2.CopytheMySQLJDBCdrivertoyourapplicationserver\"><span id=\"ConnectingJIRAapplicationstoMySQL-jdbcdriver\" class=\"confluence-anchor-link conf-macro output-inline\" data-hasbody=\"false\" data-macro-name=\"anchor\"><\/span>2. Copy the MySQL JDBC driver to your application server<\/h2>\n<p>If you are <strong>upgrading JIRA and you are using the recommended MySQL driver<\/strong> (Connector\/J JDBC driver v5.1), you can skip the instructions in this section. The JIRA upgrade task will automatically copy over your existing driver to the upgraded installation.<\/p>\n<p><strong>To copy the MySQL JDBC driver to your application server:<\/strong><\/p>\n<ol>\n<li>Get the MySQL driver:\n<ul>\n<li>If you are <strong>installing JIRA<\/strong>, download the recommended MySQL driver\u00a0<a class=\"external-link\" href=\"http:\/\/dev.mysql.com\/downloads\/connector\/j\" rel=\"nofollow\">JDBC Connector\/J 5.1<\/a>.<br \/>\nYou can download either the <code>.tar.gz<\/code> or the<code> .zip<\/code> file by selecting the <em>&#8216;Platform Independent&#8217;<\/em> option. Extract the jar for the driver (e.g. <code>mysql-connector-java-5.x.x-bin.jar<\/code>) from the archive.<\/li>\n<li>If you are <strong>upgrading JIRA <\/strong><strong>and you are not using the recommended MySQL driver<\/strong> (<span class=\"external-link\">JDBC Connector\/J 5.1<\/span>), back up the driver from your JIRA installation before you upgrade.<br \/>\nThe driver will be in the <a class=\"conf-macro output-inline\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/important-directories-and-files-861253886.html\" data-macro-name=\"sp-link\" data-hasbody=\"true\">&lt;<code>JIRA installation directory&gt;<\/code><\/a><code>\/lib\/<\/code> directory.<\/li>\n<\/ul>\n<\/li>\n<li>Copy the MySQL JDBC driver jar to the <a class=\"conf-macro output-inline\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/important-directories-and-files-861253886.html\" data-macro-name=\"sp-link\" data-hasbody=\"true\">&lt;<code>JIRA installation directory&gt;<\/code><\/a><code>\/lib\/<\/code> directory for your new\/upgraded installation.\u00a0If you are installing JIRA using the <span class=\"confluence-link\">Windows installer<\/span>, you will need to do this step after running the Windows installer, but <strong><em>before<\/em><\/strong>\u00a0<a class=\"conf-macro output-inline\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/running-the-setup-wizard-861253061.html\" data-macro-name=\"sp-link\" data-hasbody=\"true\">running the setup wizard<\/a>.<\/li>\n<li>Restart JIRA \/ JIRA service.<\/li>\n<li>If you are installing JIRA, skip the rest of the instructions on this page and access JIRA in your browser to <a class=\"conf-macro output-inline\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/running-the-setup-wizard-861253061.html\" data-macro-name=\"sp-link\" data-hasbody=\"true\">run the setup wizard<\/a>\u00a0instead.<\/li>\n<\/ol>\n<p><strong>Please note:<\/strong><\/p>\n<ul>\n<li>We recommend the Connector\/J driver from MySQL (linked above). A user has reported experiencing problems with the Resin JDBC driver for MySQL.<\/li>\n<\/ul>\n<h2 id=\"ConnectingJIRAapplicationstoMySQL-configurejirawithdatabase3.ConfigureyourJIRAservertoconnecttoyourMySQLdatabase\"><span id=\"ConnectingJIRAapplicationstoMySQL-configurejirawithdatabase\" class=\"confluence-anchor-link conf-macro output-inline\" data-hasbody=\"false\" data-macro-name=\"anchor\"><\/span>3. Configure your JIRA server to connect to your MySQL database<\/h2>\n<p>There are two ways to configure your JIRA server to connect to your MySQL database:<\/p>\n<ul>\n<li><strong>Using the <span class=\"confluence-link\">JIRA setup wizard<\/span><\/strong>\u00a0\u2014 Use this method if you have just installed JIRA, and are setting it up for the first time. Your settings will be saved to the <code>dbconfig.xml<\/code> file in your <a class=\"conf-macro output-inline\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/jira-application-home-directory-861253888.html\" data-macro-name=\"sp-link\" data-hasbody=\"true\">JIRA home directory<\/a>.<\/li>\n<li><strong><span class=\"confluence-link\">Using the <\/span><span class=\"confluence-link\">JIRA configuration tool<\/span><\/strong>\u00a0\u2014 Use this method, if you have an existing JIRA instance. Your settings will be saved to the <code>dbconfig.xml<\/code> file in your <a class=\"conf-macro output-inline\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/jira-application-home-directory-861253888.html\" data-macro-name=\"sp-link\" data-hasbody=\"true\">JIRA home directory<\/a>.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<div class=\"aui-group\">\n<div class=\"aui-item\">\n<h3 id=\"ConnectingJIRAapplicationstoMySQL-Instructionsforeachconfigurationmethod\">Instructions for each configuration method<\/h3>\n<\/div>\n<\/div>\n<div class=\"aui-group\">\n<div class=\"aui-item\">\n<h4 id=\"ConnectingJIRAapplicationstoMySQL-JIRAsetupwizard\">JIRA setup wizard<\/h4>\n<p>The <a class=\"conf-macro output-inline\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/running-the-setup-wizard-861253061.html\" data-macro-name=\"sp-link\" data-hasbody=\"true\">JIRA setup wizard<\/a>\u00a0will display when you access JIRA for the first time in your browser.<\/p>\n<ol>\n<li>In the first screen, &#8216;Configure Language and Database&#8217;, set<strong> Database Connection <\/strong>to<strong> My own database<\/strong>.<\/li>\n<li>Set <strong>Database Type<\/strong> to <strong>MySQL<\/strong>.<\/li>\n<li>Fill out the fields, as described in the <a class=\"conf-macro output-inline\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/connecting-jira-applications-to-mysql-861253043.html#ConnectingJIRAapplicationstoMySQL-dbconnectionfields\" data-macro-name=\"sp-link\" data-hasbody=\"true\">Database connection fields<\/a> section below.<\/li>\n<li>Test your connection and save.<\/li>\n<\/ol>\n<\/div>\n<div class=\"aui-item\">\n<h4 id=\"ConnectingJIRAapplicationstoMySQL-JIRAconfigurationtool\">JIRA configuration tool<\/h4>\n<ol>\n<li>Run the JIRA configuration tool as follows:\n<ul class=\"conf-macro output-block\" data-hasbody=\"false\" data-macro-name=\"include\">\n<li><strong>Windows<\/strong>: Open a command prompt and run <code>config.bat<\/code> in the <code>bin<\/code> sub-directory of the <a class=\"conf-macro output-inline\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/jira-application-installation-directory-861253887.html\" data-macro-name=\"sp-link\" data-hasbody=\"true\">JIRA installation directory<\/a>.<\/li>\n<li><strong>Linux\/Unix<\/strong>: Open a console and execute <code>config.sh<\/code> in the <code>bin<\/code> sub-directory of the <a class=\"conf-macro output-inline\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/jira-application-installation-directory-861253887.html\" data-macro-name=\"sp-link\" data-hasbody=\"true\">JIRA installation directory<\/a>.<br \/>\n<img decoding=\"async\" class=\"emoticon emoticon-information\" src=\"https:\/\/confluence.atlassian.com\/s\/en_GB\/6220\/de9b463eb65c5ca13c0266eed77e2bf49f4c6fe8.27\/_\/images\/icons\/emoticons\/information.png\" alt=\"(info)\" data-emoticon-name=\"information\" \/>\u00a0This may fail with the error as described in our\u00a0<a class=\"conf-macro output-inline\" href=\"https:\/\/confluence.atlassian.com\/jirakb\/unable-to-start-jira-applications-config-tool-due-to-no-x11-display-variable-was-set-error-321257850.html\" data-macro-name=\"sp-link\" data-hasbody=\"false\">Unable to Start JIRA applications Config Tool due to No X11 DISPLAY variable was set error<\/a>\u00a0KB article. Please refer to it for the workaround.<\/li>\n<\/ul>\n<\/li>\n<li>Navigate to the <strong>Database<\/strong> tab and set <strong>Database type<\/strong> to <strong>MySQL<\/strong>.<\/li>\n<li>Fill out the fields, as described in the <a class=\"conf-macro output-inline\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/connecting-jira-applications-to-mysql-861253043.html#ConnectingJIRAapplicationstoMySQL-dbconnectionfields\" data-macro-name=\"sp-link\" data-hasbody=\"true\">Database connection fields<\/a>\u00a0section below.<\/li>\n<li>Test your connection and save.<\/li>\n<li>Restart JIRA.<\/li>\n<\/ol>\n<\/div>\n<\/div>\n<div class=\"aui-group\">\n<div class=\"aui-item\">\n<h3 id=\"ConnectingJIRAapplicationstoMySQL-dbconnectionfieldsDatabaseconnectionfields\"><span id=\"ConnectingJIRAapplicationstoMySQL-dbconnectionfields\" class=\"confluence-anchor-link conf-macro output-inline\" data-hasbody=\"false\" data-macro-name=\"anchor\"><\/span>Database connection fields<\/h3>\n<div class=\"table-wrap\">\n<table class=\"aui aui-table-interactive\">\n<tbody>\n<tr>\n<th class=\"confluenceTh\">Setup wizard \/ Configuration tool<\/th>\n<th class=\"confluenceTh\" colspan=\"1\">dbconfig.xml<\/th>\n<th class=\"confluenceTh\">Description<\/th>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\"><strong>Hostname<\/strong><\/td>\n<td class=\"confluenceTd\" colspan=\"1\">Located in the <code>&lt;url&gt;<\/code> tag (bold text in example below):<br \/>\n<code>&lt;url&gt;jdbc:mysql:\/\/<\/code><strong>dbserver<\/strong><code>:3306\/jiradb?useUnicode=true&amp;amp;characterEncoding=UTF8&amp;amp;sessionVariables=storage_engine=InnoDB&lt;\/url&gt;<\/code><\/td>\n<td class=\"confluenceTd\">The name or IP address of the machine that the MySQL server is installed on.<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\"><strong>Port<\/strong><\/td>\n<td class=\"confluenceTd\" colspan=\"1\">Located in the <code>&lt;url&gt;<\/code> tag (bold text in example below):<br \/>\n<code>&lt;url&gt;jdbc:<a href=\"mysql:\/\/dbserver\" rel=\"nofollow\">mysql:\/\/dbserver<\/a>:<\/code><strong>3306<\/strong><code>\/jiradb?useUnicode=true&amp;amp;characterEncoding=UTF8&amp;amp;sessionVariables=storage_engine=InnoDB&lt;\/url&gt;<\/code><\/td>\n<td class=\"confluenceTd\">The TCP\/IP port that the MySQL server is listening on. You can leave this blank to use the default port.<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\"><strong>Database<\/strong><\/td>\n<td class=\"confluenceTd\" colspan=\"1\">Located in the <code>&lt;url&gt;<\/code> tag (bold text in example below):<br \/>\n<code>&lt;url&gt;jdbc:<a href=\"mysql:\/\/dbserver:3306\/\" rel=\"nofollow\">mysql:\/\/dbserver:3306\/<\/a><\/code><strong>jiradb<\/strong><code>?useUnicode=true&amp;amp;characterEncoding=UTF8&amp;amp;sessionVariables=storage_engine=InnoDB&lt;\/url&gt;<\/code><\/td>\n<td class=\"confluenceTd\">The name of your MySQL database (into which JIRA will save its data). You should have created this in <a class=\"conf-macro output-inline\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/connecting-jira-applications-to-mysql-861253043.html\" data-macro-name=\"sp-link\" data-hasbody=\"true\">Step 1<\/a> above.<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\" colspan=\"1\"><strong>Username<\/strong><\/td>\n<td class=\"confluenceTd\" colspan=\"1\">Located in the <code>&lt;username&gt;<\/code> tag (see bold text in example below):<br \/>\n<code>&lt;username&gt;<\/code><strong>jiradbuser<\/strong><code>&lt;\/username&gt;<\/code><\/td>\n<td class=\"confluenceTd\" colspan=\"1\">The user that JIRA uses to connect to the MySQL server. You should have created this in <a class=\"conf-macro output-inline\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/connecting-jira-applications-to-mysql-861253043.html\" data-macro-name=\"sp-link\" data-hasbody=\"true\">Step 1<\/a> above.<\/td>\n<\/tr>\n<tr>\n<td class=\"confluenceTd\" colspan=\"1\"><strong>Password<\/strong><\/td>\n<td class=\"confluenceTd\" colspan=\"1\">Located in the <code>&lt;password&gt;<\/code> tag (see bold text in example below):<br \/>\n<code>&lt;password&gt;<\/code><strong>jiradbuser<\/strong><code>&lt;\/password&gt;<\/code><\/td>\n<td class=\"confluenceTd\" colspan=\"1\">The user&#8217;s password \u2014 used to authenticate with the MySQL server.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<\/div>\n<h4 id=\"ConnectingJIRAapplicationstoMySQL-sampledbconfigxmlSampledbconfig.xmlfile\"><span id=\"ConnectingJIRAapplicationstoMySQL-sampledbconfigxml\" class=\"confluence-anchor-link conf-macro output-inline\" data-hasbody=\"false\" data-macro-name=\"anchor\"><\/span>Sample dbconfig.xml file<\/h4>\n<ul>\n<li>For more information about the child elements of\u00a0<code>&lt;jdbc-datasource\/&gt;<\/code>\u00a0beginning with\u00a0<code>pool<\/code>\u00a0in the\u00a0<code>dbconfig.xml<\/code>\u00a0file above, see\u00a0<a class=\"conf-macro output-inline\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/tuning-database-connections-861253053.html\" data-macro-name=\"sp-link\" data-hasbody=\"false\">Tuning database connections<\/a>.<\/li>\n<li>Both the JIRA setup wizard and database configuration tool also add the element\u00a0<code>&lt;validation-query&gt;select 1&lt;\/validation-query&gt;<\/code>\u00a0to this file, which is usually required when running JIRA with default MySQL installations. See\u00a0<a class=\"conf-macro output-inline\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/surviving-connection-closures-861253055.html\" data-macro-name=\"sp-link\" data-hasbody=\"false\">Surviving connection closures<\/a>\u00a0for more information.<\/li>\n<li>The database URL in the example below assumes a UTF-8 database \u2014 i.e. that your database was created using a command similar to\u00a0<code>create database jiradb character set utf8;<\/code>\u00a0If you do not specify\u00a0<code>character set utf8<\/code>\u00a0when creating this database, you risk getting &#8216;<code>Data truncation: Data too long for column<\/code>&#8216; errors when importing data or corruption of non-supported characters.<\/li>\n<li>The database URL in the example below contains the\u00a0<code>sessionVariables=storage_engine=InnoDB<\/code>\u00a0parameter. We strongly recommend adding this parameter to avoid data corruption.<\/li>\n<\/ul>\n<div class=\"pdl conf-macro output-block\" data-hasbody=\"true\" data-macro-name=\"code\">\n<div class=\"codeContent panelContent pdl\">\n<div class=\"CodeMirror cm-s-neat CodeMirror-wrap\">\n<div><\/div>\n<div class=\"CodeMirror-scroll\" tabindex=\"-1\">\n<div class=\"CodeMirror-sizer\">\n<div>\n<div class=\"CodeMirror-lines\">\n<div>\n<div class=\"CodeMirror-measure\"><\/div>\n<div class=\"CodeMirror-measure\"><\/div>\n<div><\/div>\n<div class=\"CodeMirror-cursors\"><\/div>\n<div class=\"CodeMirror-code\">\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">1<\/div>\n<\/div>\n<pre class=\"\"><span class=\"cm-meta\">&lt;?xml<\/span> <span class=\"cm-meta\">version=\"1.0\" encoding=\"UTF-8\"?&gt;<\/span><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">2<\/div>\n<\/div>\n<pre class=\"\">\u200b<\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">3<\/div>\n<\/div>\n<pre class=\"\"><span class=\"cm-tag cm-bracket\">&lt;<\/span><span class=\"cm-tag\">jira-database-config<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">4<\/div>\n<\/div>\n<pre class=\"\">  <span class=\"cm-tag cm-bracket\">&lt;<\/span><span class=\"cm-tag\">name<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span>defaultDS<span class=\"cm-tag cm-bracket\">&lt;\/<\/span><span class=\"cm-tag\">name<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">5<\/div>\n<\/div>\n<pre class=\"\">  <span class=\"cm-tag cm-bracket\">&lt;<\/span><span class=\"cm-tag\">delegator-name<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span>default<span class=\"cm-tag cm-bracket\">&lt;\/<\/span><span class=\"cm-tag\">delegator-name<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">6<\/div>\n<\/div>\n<pre class=\"\">  <span class=\"cm-tag cm-bracket\">&lt;<\/span><span class=\"cm-tag\">database-type<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span>mysql<span class=\"cm-tag cm-bracket\">&lt;\/<\/span><span class=\"cm-tag\">database-type<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">7<\/div>\n<\/div>\n<pre class=\"\">  <span class=\"cm-tag cm-bracket\">&lt;<\/span><span class=\"cm-tag\">jdbc-datasource<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">8<\/div>\n<\/div>\n<pre class=\"\"> \u00a0  <span class=\"cm-tag cm-bracket\">&lt;<\/span><span class=\"cm-tag\">url<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span>jdbc:mysql:\/\/dbserver:3306\/jiradb?useUnicode=true<span class=\"cm-error\">&amp;characterEncoding<\/span>=UTF8<span class=\"cm-error\">&amp;sessionVariables<\/span>=storage_engine=InnoDB<span class=\"cm-tag cm-bracket\">&lt;\/<\/span><span class=\"cm-tag\">url<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">9<\/div>\n<\/div>\n<pre class=\"\"> \u00a0  <span class=\"cm-tag cm-bracket\">&lt;<\/span><span class=\"cm-tag\">driver-class<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span>com.mysql.jdbc.Driver<span class=\"cm-tag cm-bracket\">&lt;\/<\/span><span class=\"cm-tag\">driver-class<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">10<\/div>\n<\/div>\n<pre class=\"\"> \u00a0  <span class=\"cm-tag cm-bracket\">&lt;<\/span><span class=\"cm-tag\">username<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span>jiradbuser<span class=\"cm-tag cm-bracket\">&lt;\/<\/span><span class=\"cm-tag\">username<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">11<\/div>\n<\/div>\n<pre class=\"\"> \u00a0  <span class=\"cm-tag cm-bracket\">&lt;<\/span><span class=\"cm-tag\">password<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span>password<span class=\"cm-tag cm-bracket\">&lt;\/<\/span><span class=\"cm-tag\">password<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">12<\/div>\n<\/div>\n<pre class=\"\"> \u00a0  <span class=\"cm-tag cm-bracket\">&lt;<\/span><span class=\"cm-tag\">pool-min-size<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span>20<span class=\"cm-tag cm-bracket\">&lt;\/<\/span><span class=\"cm-tag\">pool-min-size<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">13<\/div>\n<\/div>\n<pre class=\"\"> \u00a0  <span class=\"cm-tag cm-bracket\">&lt;<\/span><span class=\"cm-tag\">pool-max-size<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span>20<span class=\"cm-tag cm-bracket\">&lt;\/<\/span><span class=\"cm-tag\">pool-max-size<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">14<\/div>\n<\/div>\n<pre class=\"\"> \u00a0  <span class=\"cm-tag cm-bracket\">&lt;<\/span><span class=\"cm-tag\">pool-max-wait<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span>30000<span class=\"cm-tag cm-bracket\">&lt;\/<\/span><span class=\"cm-tag\">pool-max-wait<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">15<\/div>\n<\/div>\n<pre class=\"\"> \u00a0  <span class=\"cm-tag cm-bracket\">&lt;<\/span><span class=\"cm-tag\">pool-max-idle<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span>20<span class=\"cm-tag cm-bracket\">&lt;\/<\/span><span class=\"cm-tag\">pool-max-idle<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">16<\/div>\n<\/div>\n<pre class=\"\"> \u00a0  <span class=\"cm-tag cm-bracket\">&lt;<\/span><span class=\"cm-tag\">pool-remove-abandoned<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span>true<span class=\"cm-tag cm-bracket\">&lt;\/<\/span><span class=\"cm-tag\">pool-remove-abandoned<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">17<\/div>\n<\/div>\n<pre class=\"\"> \u00a0  <span class=\"cm-tag cm-bracket\">&lt;<\/span><span class=\"cm-tag\">pool-remove-abandoned-timeout<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span>300<span class=\"cm-tag cm-bracket\">&lt;\/<\/span><span class=\"cm-tag\">pool-remove-abandoned-timeout<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">18<\/div>\n<\/div>\n<pre class=\"\"><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">19<\/div>\n<\/div>\n<pre class=\"\"> \u00a0  <span class=\"cm-tag cm-bracket\">&lt;<\/span><span class=\"cm-tag\">validation-query<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span>select 1<span class=\"cm-tag cm-bracket\">&lt;\/<\/span><span class=\"cm-tag\">validation-query<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">20<\/div>\n<\/div>\n<pre class=\"\"> \u00a0  <span class=\"cm-tag cm-bracket\">&lt;<\/span><span class=\"cm-tag\">min-evictable-idle-time-millis<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span>60000<span class=\"cm-tag cm-bracket\">&lt;\/<\/span><span class=\"cm-tag\">min-evictable-idle-time-millis<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">21<\/div>\n<\/div>\n<pre class=\"\"> \u00a0  <span class=\"cm-tag cm-bracket\">&lt;<\/span><span class=\"cm-tag\">time-between-eviction-runs-millis<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span>300000<span class=\"cm-tag cm-bracket\">&lt;\/<\/span><span class=\"cm-tag\">time-between-eviction-runs-millis<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">22<\/div>\n<\/div>\n<pre class=\"\"><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">23<\/div>\n<\/div>\n<pre class=\"\"> \u00a0  <span class=\"cm-tag cm-bracket\">&lt;<\/span><span class=\"cm-tag\">pool-test-while-idle<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span>true<span class=\"cm-tag cm-bracket\">&lt;\/<\/span><span class=\"cm-tag\">pool-test-while-idle<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">24<\/div>\n<\/div>\n<pre class=\"\"> \u00a0  <span class=\"cm-tag cm-bracket\">&lt;<\/span><span class=\"cm-tag\">pool-test-on-borrow<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span>false<span class=\"cm-tag cm-bracket\">&lt;\/<\/span><span class=\"cm-tag\">pool-test-on-borrow<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">25<\/div>\n<\/div>\n<pre class=\"\"> \u00a0  <span class=\"cm-tag cm-bracket\">&lt;<\/span><span class=\"cm-tag\">validation-query-timeout<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span>3<span class=\"cm-tag cm-bracket\">&lt;\/<\/span><span class=\"cm-tag\">validation-query-timeout<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">26<\/div>\n<\/div>\n<pre class=\"\">  <span class=\"cm-tag cm-bracket\">&lt;\/<\/span><span class=\"cm-tag\">jdbc-datasource<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span><\/pre>\n<\/div>\n<div>\n<div class=\"CodeMirror-gutter-wrapper\">\n<div class=\"CodeMirror-linenumber CodeMirror-gutter-elt\">27<\/div>\n<\/div>\n<pre class=\"\"><span class=\"cm-tag cm-bracket\">&lt;\/<\/span><span class=\"cm-tag\">jira-database-config<\/span><span class=\"cm-tag cm-bracket\">&gt;<\/span><\/pre>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<div><\/div>\n<div class=\"CodeMirror-gutters\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n<h2 id=\"ConnectingJIRAapplicationstoMySQL-4.StartJIRA\">4. Start JIRA<\/h2>\n<p>You should now have JIRA configured to connect to your MySQL database. The next step is to start it up!<\/p>\n<p><strong><img decoding=\"async\" class=\"emoticon emoticon-tick\" src=\"https:\/\/confluence.atlassian.com\/s\/en_GB\/6220\/de9b463eb65c5ca13c0266eed77e2bf49f4c6fe8.27\/_\/images\/icons\/emoticons\/check.png\" alt=\"(tick)\" data-emoticon-name=\"tick\" \/>\u00a0Congratulations, you now have JIRA connected to your MySQL database.<\/strong><\/p>\n<h4 id=\"ConnectingJIRAapplicationstoMySQL-Knownissuesandtroubleshooting\">Known issues and troubleshooting<\/h4>\n<ul>\n<li><strong>Hostnames in permissions are compared as strings\u00a0<\/strong>&#8211; If you grant permission in MySQL to a hostname such as\u00a0<code>localhost<\/code>, then you must use the\u00a0<em>same<\/em>\u00a0string for the connecting to the database from JIRA. So using 127.0.0.1 won&#8217;t work, even though it resolves to the same place. This mistake produces warnings about not finding tables because the JDBC connection did not have permission to create the new tables when JIRA was set up.<\/li>\n<li><strong>Connection closures<\/strong>\u00a0\u2014 If you are using a MySQL database with any of the following, you may experience problems with your connections dropping out (see\u00a0<a class=\"external-link\" href=\"https:\/\/jira.atlassian.com\/browse\/JRA-15731\" rel=\"nofollow\">JRA-15731<\/a>\u00a0for details). Please read\u00a0<a class=\"conf-macro output-inline\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/surviving-connection-closures-861253055.html\" data-macro-name=\"sp-link\" data-hasbody=\"false\">Surviving connection closures<\/a>\u00a0for information on how to address this.\n<ul>\n<li>JIRA 3.13 or above,<\/li>\n<li>version 5.5.25 or higher of Tomcat 5,<\/li>\n<li>version 6.0.13 or higher of Tomcat 6,<\/li>\n<\/ul>\n<\/li>\n<li><strong>Special characters for database password<\/strong>\u00a0\u2014 JIRA is not able to interpret special characters for database password.<\/li>\n<li><strong>Using the InnoDB storage engine<\/strong>\u00a0\u2014 The default storage engine used by MySQL Server versions prior to 5.5 is MyISAM. Hence, a JIRA database running on a default configuration of a MySQL Server earlier than version 5.5, could experience table creation problems (<a class=\"external-link\" href=\"https:\/\/jira.atlassian.com\/browse\/JRA-24124\" rel=\"nofollow\">JRA-24124<\/a>), which may result in data corruption in JIRA. We strongly recommend specifying the\u00a0<code>sessionVariables=storage_engine=InnoDB<\/code>\u00a0parameter in your database URL (as stated\u00a0<a class=\"conf-macro output-inline\" href=\"https:\/\/confluence.atlassian.com\/adminjiraserver073\/connecting-jira-applications-to-mysql-861253043.html#ConnectingJIRAapplicationstoMySQL-configurejirawithdatabase\" data-macro-name=\"sp-link\" data-hasbody=\"true\">above<\/a>). Doing so ensures that tables written to JIRA&#8217;s MySQL database will use the InnoDB storage engine, which supports &#8216;database transactions&#8217; required by JIRA.<\/li>\n<li><strong>Binary logging<\/strong>\u00a0\u2014 Be aware that JIRA uses the &#8216;READ-COMMITTED&#8217; transaction isolation level with MySQL, which currently only supports row-based binary logging. If you require MySQL&#8217;s binary logging features, you must configure MySQL&#8217;s binary logging format to be &#8216;row-based&#8217;. If not, you may encounter problems when creating issues in JIRA.<\/li>\n<li><strong>4 byte characters\u00a0<\/strong>\u2014<strong>\u00a0<\/strong>\u00a0Please note that JIRA does not support using MySQL with 4 byte characters.<\/li>\n<\/ul>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>These instructions will help you connect JIRA to a supported\u00a0MySQL\u00a0database. Before you begin Check whether your version of MySQL is [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"site-sidebar-layout":"default","site-content-layout":"","ast-site-content-layout":"default","site-content-style":"default","site-sidebar-style":"default","ast-global-header-display":"","ast-banner-title-visibility":"","ast-main-header-display":"","ast-hfb-above-header-display":"","ast-hfb-below-header-display":"","ast-hfb-mobile-header-display":"","site-post-title":"","ast-breadcrumbs-content":"","ast-featured-img":"","footer-sml-layout":"","ast-disable-related-posts":"","theme-transparent-header-meta":"","adv-header-id-meta":"","stick-header-meta":"","header-above-stick-meta":"","header-main-stick-meta":"","header-below-stick-meta":"","astra-migrate-meta-layouts":"default","ast-page-background-enabled":"default","ast-page-background-meta":{"desktop":{"background-color":"var(--ast-global-color-5)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"ast-content-background-meta":{"desktop":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"tablet":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""},"mobile":{"background-color":"var(--ast-global-color-4)","background-image":"","background-repeat":"repeat","background-position":"center center","background-size":"auto","background-attachment":"scroll","background-type":"","background-media":"","overlay-type":"","overlay-color":"","overlay-opacity":"","overlay-gradient":""}},"footnotes":""},"categories":[1],"tags":[],"class_list":["post-213","post","type-post","status-publish","format-standard","hentry","category-uncategorized"],"_links":{"self":[{"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/posts\/213","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=213"}],"version-history":[{"count":0,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=\/wp\/v2\/posts\/213\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=213"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=213"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.jsjs.org\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=213"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}