Conectar aplicações JIRA ao MySQL

Conectar aplicações JIRA a um banco de dados

On this page

Still need help?

The Atlassian Community is here for you.

Ask the community

Estas instruções o ajudarão a conectar o JIRA a um banco de dados MySQL com suporte.

Antes de começar

  • Verifique se há suporte para a versão do MySQL. Consulte Plataformas com suporte.
  • Se você estiver migrando o JIRA para outro servidor, crie uma exportação dos dados como um backup XML. Assim, será possível transferir os dados do banco de dados antigo para o novo, conforme descrito em Switching databases (Alternância entre bancos de dados).
  • Se você planeja configurar o Confluence e o JIRA no mesmo servidor MySQL, leia o Guia de configuração de MySQL do Confluence e configure o servidor MySQL de maneira adequada para o Confluence e o JIRA. Observe que os requisitos do Confluence são mais rigorosos que os do JIRA, portanto é necessário configurar o MySQL de acordo com o Confluence. Essa configuração também funcionará para o JIRA.
  • Desligue o JIRA antes de começar, a menos que você esteja executando o assistente de configuração.

Nesta página:

1. Crie e configure o banco de dados MySQL

  1. Crie um usuário do banco de dados ao qual o JIRA se conectará (por exemplo, jiradbuser).
    Memorize esse nome de usuário do banco de dados, pois ele será usado para configurar a conexão do JIRA com esse banco de dados nas etapas subsequentes.
  2. Crie um banco de dados para o JIRA armazenar as pendências (por exemplo, jiradb). O banco de dados deve ter um conjunto de caracteres UTF8. Insira o comando a seguir dentro do cliente de comando MySQL.
    Memorize esse nome do banco de dados, pois ele será usado para configurar a conexão do JIRA com esse banco de dados nas etapas subsequentes.

    CREATE DATABASE jiradb CHARACTER SET utf8 COLLATE utf8_bin;

    (se você quiser nomear o banco de dados como jiradb). 

  3. Verifique se o usuário tem permissão para se conectar ao banco de dados, e permissão para criar e preencher tabelas. Elas podem ser fornecidas com o seguinte – 
    Para MySQL 5.5, MySQL 5.6 e MySQL 5.7.0 a MySQL 5.7.5: 

    GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX on <JIRADB>.* TO '<USERNAME>'@'<JIRA_SERVER_HOSTNAME>' IDENTIFIED BY '<PASSWORD>';
    flush privileges;

    Para MySQL 5.7.6 e versões posteriores, também é necessário incluir a permissão REFERENCES:

    GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,REFERENCES,ALTER,INDEX on <JIRADB>.* TO '<USERNAME>'@'<JIRA_SERVER_HOSTNAME>' IDENTIFIED BY '<PASSWORD>';
    flush privileges;

    Dica:

    Para confirmar se as permissões foram concedidas com sucesso, faça o login no servidor do banco de dados com o usuário de banco de dados do JIRA e execute o comando abaixo:

    SHOW GRANTS FOR <USERNAME>@<JIRA_SERVER_HOSTNAME>;
  4. Edite o arquivo my.cnf  (my.ini nos sistemas operacionais Windows) no servidor MySQL. (Consulte MySQL Option Files (Arquivos da opção MySQL) para obter instruções detalhadas sobre como editar my.cnf e my.ini.)
    Localize a seção [mysqld] no arquivo e adicione ou modifique os seguintes parâmetros:

    • Configure o mecanismo de armazenamento padrão para InnoDB:

      [mysqld]
      ...
      default-storage-engine=INNODB
      ...
    • Especifique o valor de max_allowed_packet como pelo menos 256 M:

      [mysqld]
      ...
      max_allowed_packet=256M
      ...
    • Especifique o valor de innodb_log_file_size como pelo menos 256M para o MySQL 5.5 e abaixo:

      [mysqld]
      ...
      innodb_log_file_size=256M
      ...
      

      Nota: deve ser configurado como pelo menos 2G para MySQL 5.6 e versões posteriores.

    • Certifique-se de que o parâmetro sql_mode não especifique NO_AUTO_VALUE_ON_ZERO

      // remove this if it exists
      sql_mode = NO_AUTO_VALUE_ON_ZERO
  5. Reinicie o servidor MySQL para que as alterações entrem em vigor:

    • No Windows, use o Gerenciador de Serviços do Windows para reiniciar o serviço.
    • No Linux:
      • Execute um dos seguintes comandos, dependendo da configuração: "/etc/init.d/mysqld stop", "/etc/init.d/mysql stop" ou "service mysqld stop".
      • Em seguida, execute o mesmo comando novamente, substituindo "stop" por "start".

2. Copie o driver JDBC do MySQL para o servidor da aplicação

Se você estiver atualizando o JIRA e usando o driver do MySQL recomendado (Connector/J JDBC driver v5.1), ignore as instruções desta seção. A tarefa de atualização do JIRA será copiada automaticamente do driver existente para a instalação atualizada.

Para copiar o driver JDBC do MySQL para o servidor da aplicação:

  1. Obtenha o driver do MySQL:
    • Se você estiver instalando o JIRA, baixe o driver do MySQL recomendado JDBC Connector/J 5.1.
      Você pode baixar o arquivo .tar.gz ou .zip selecionando a opção "Independente da plataforma". Extraia o jar para o driver (por exemplo. mysql-connector-java-5.x.x-bin.jar) do arquivo.
    • Se você estiver atualizando o JIRA e não estiver usando o driver do MySQL recomendado (JDBC Connector/J 5.1), faça o backup do driver da instalação do JIRA antes de atualizar.
      O driver estará no diretório <JIRA installation directory>/lib/.
  2. Copie o jar do driver JDBC do MySQL para o diretório <JIRA installation directory>/lib/ para a instalação nova/atualizada. Se você estiver instalando o JIRA usando o Windows Installer, precisará realizar essa etapa depois de executar o Windows Installer, mas antes de executar o assistente de configuração.
  3. Reinicie o JIRA/o serviço JIRA.
  4. Se você deseja instalar o JIRA, ignore o restante das instruções nesta página e acesse o JIRA no navegador para executar o assistente de configuração em vez disso.

Nota:

  • Recomendamos o driver Connector/J do MySQL (com link acima). Um usuário relatou que está com problemas no driver JDBC da Resin para MySQL.

3. Configure o servidor do JIRA para que se conecte ao banco de dados MySQL

Há duas maneiras de configurar o servidor do JIRA para que se conecte ao banco de dados MySQL:

  • Usando o assistente de configuração do JIRA – Use este método se tiver instalado o JIRA recentemente e estiver configurando-o pela primeira vez. As configurações serão salvas no arquivo dbconfig.xml no seu diretório inicial do JIRA.
  • Usando a ferramenta de configuração do JIRA – Use este método se você já tiver uma instância do JIRA existente. As configurações serão salvas no arquivo dbconfig.xml no seu diretório inicial do JIRA.

Instruções para cada método de configuração

Assistente de configuração do JIRA

O assistente de configuração do JIRA será exibido quando você acessar o JIRA pela primeira vez no navegador.

  1. Na primeira tela, "Configurar idioma e banco de dados", defina Conexão do banco de dados como Meu próprio banco de dados.
  2. Defina Tipo de banco de dados como MySQL.
  3. Preencha os campos conforme descrito na seção Campos de conexão com o banco de dados abaixo.
  4. Teste sua conexão e salve.

Ferramenta de configuração do JIRA

  1. Execute a ferramenta de configuração do JIRA da seguinte maneira:
  2. Navegue para a guia Banco de dados e defina Tipo de banco de dados como MySQL.
  3. Preencha os campos conforme descrito na seção Campos de conexão com o banco de dados abaixo.
  4. Teste sua conexão e salve.
  5. Reinicie o JIRA.

Campos de conexão com o banco de dados

Assistente de configuração/ferramenta de configuraçãodbconfig.xmlDescrição
Nome do host

Localizado na tag <url> (texto em negrito no exemplo abaixo):
<url>jdbc:mysql://dbserver:3306/jiradb?useUnicode=true&amp;characterEncoding=UTF8&amp;sessionVariables=storage_engine=InnoDB</url>

O nome ou o endereço IP do computador em que o servidor MySQL está instalado.
Porta

Localizado na tag <url> (texto em negrito no exemplo abaixo):
<url>jdbc:mysql://dbserver:3306/jiradb?useUnicode=true&amp;characterEncoding=UTF8&amp;sessionVariables=storage_engine=InnoDB</url>

A porta TCP/IP em que o servidor MySQL está escutando. Você pode deixar em branco para usar a porta padrão.
Banco de dados

Localizado na tag <url> (texto em negrito no exemplo abaixo):
<url>jdbc:mysql://dbserver:3306/jiradb?useUnicode=true&amp;characterEncoding=UTF8&amp;sessionVariables=storage_engine=InnoDB</url>

O nome do seu banco de dados MySQL (no qual o JIRA salvará os dados). Você deve tê-lo criado na Etapa 1 acima.
Nome de usuário

Localizado na tag <username> (texto em negrito no exemplo abaixo):
<username>jiradbuser</username>

O usuário que o JIRA usa para se conectar ao servidor MySQL. Você deve tê-lo criado na Etapa 1 acima.
SenhaLocalizado na tag <password> (texto em negrito no exemplo abaixo):
<password>jiradbuser</password>
A senha do usuário, usada para autenticação no servidor MySQL.

Arquivo dbconfig.xml de exemplo

  • Para obter mais informações sobre os elementos filhos de <jdbc-datasource/> começando com pool no arquivo dbconfig.xml acima, consulte Tuning database connections (Ajustar conexões de banco de dados).
  • Tanto o assistente de configuração do JIRA quanto a ferramenta de configuração de banco de dados adicionam o elemento <validation-query>select 1</validation-query> a esse arquivo, que normalmente é necessário ao executar o JIRA com instalações padrão do MySQL. Consulte Surviving connection closures (Como sobreviver a encerramentos de conexões) para obter mais informações.
  • O URL do banco de dados no exemplo abaixo supõe a existência de um banco de dados UTF-8, ou seja, que seu banco de dados foi criado usando um comando similar a create database jiradb character set utf8;. Se você não especificar character set utf8 ao criar esse banco de dados, correrá o risco de receber erros "Data truncation: Data too long for column" ao importar dados ou erros de corrupção de caracteres sem suporte.
  • O URL do banco de dados no exemplo abaixo contém o parâmetro sessionVariables=storage_engine=InnoDB . Recomendamos enfaticamente adicionar esse parâmetro para evitar corrupção dos dados.
<?xml version="1.0" encoding="UTF-8"?>
<jira-database-config>
  <name>defaultDS</name>
  <delegator-name>default</delegator-name>
  <database-type>mysql</database-type>
  <jdbc-datasource>
    <url>jdbc:mysql://dbserver:3306/jiradb?useUnicode=true&amp;characterEncoding=UTF8&amp;sessionVariables=storage_engine=InnoDB</url>
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <username>jiradbuser</username>
    <password>password</password>
    <pool-min-size>20</pool-min-size>
    <pool-max-size>20</pool-max-size>
    <pool-max-wait>30000</pool-max-wait>
    <pool-max-idle>20</pool-max-idle>
    <pool-remove-abandoned>true</pool-remove-abandoned>
    <pool-remove-abandoned-timeout>300</pool-remove-abandoned-timeout>
 
    <validation-query>select 1</validation-query>
    <min-evictable-idle-time-millis>60000</min-evictable-idle-time-millis>
    <time-between-eviction-runs-millis>300000</time-between-eviction-runs-millis>
  
    <pool-test-while-idle>true</pool-test-while-idle>
    <validation-query-timeout>3</validation-query-timeout>
  </jdbc-datasource>
</jira-database-config>

4. Inicie o JIRA

Agora o JIRA está configurado para se conectar ao seu banco de dados MySQL. A próxima etapa é iniciá-lo!

(tick) Parabéns, agora o JIRA está conectado ao seu banco de dados MySQL.

Problemas conhecidos e solução de problemas

  • Os nomes de host em permissões são comparados como cadeias de caracteres – Se você conceder permissão no MySQL para um nome de host como localhost, deverá usar a mesma cadeia de caracteres para se conectar ao banco de dados usando o JIRA. Assim, usar 127.0.0.1 não funcionará, embora resolva para o mesmo local. Esse erro produz avisos sobre não conseguir encontrar tabelas porque a conexão do JDBC não tinha permissão para criar as novas tabelas quando o JIRA foi configurado.
  • Encerramentos de conexão – Se você estiver usando um banco de dados MySQL com uma das opções a seguir, poderá ter problemas de encerramento das conexões (consulte JRA-15731 para obter detalhes). Consulte Surviving connection closures (Como sobreviver a encerramentos de conexões) para obter informações sobre como lidar com isso.
    • JIRA 3.13 ou versão posterior,
    • versão 5.5.25 ou posterior do Tomcat 5,
    • versão 6.0.13 ou posterior do Tomcat 6,
  • Caracteres especiais para senha de banco de dados – O JIRA não consegue interpretar caracteres especiais para senha de banco de dados.
  • Usar o mecanismo de armazenamento InnoDB – O mecanismo de armazenamento padrão usado por versões do Servidor MySQL anteriores à 5.5 é o MyISAM. Assim, um banco de dados do JIRA que esteja sendo executado em uma configuração padrão de um servidor MySQL anterior à versão 5.5 poderá sofrer problemas de criação de tabela (JRA-24124), que podem resultar em corrupção de dados no JIRA. Recomendamos enfaticamente especificar o parâmetro sessionVariables=storage_engine=InnoDB no URL do seu banco de dados (conforme definido acima). Com isso você garante que as tabelas gravadas no banco de dados MySQL do JIRA usarão o mecanismo de armazenamento InnoDB, que tem suporte para as "transações de banco de dados" exigidas pelo JIRA.

  • Registro binário – Saiba que o JIRA usa o nível de isolamento de transação "READ-COMMITTED" com MySQL, que no momento tem suporte apenas para registro binário baseado em linha. Se você precisar de funcionalidades de registro binário do MySQL, configure o formato de registro binário do MySQL como sendo "baseado em linha". Caso contrário, poderá encontrar problemas ao criar pendências no JIRA.

  • Caracteres de 4 bytes   Observe que o JIRA não tem suporte para o uso do MySQL com caracteres de 4 bytes.
Last modified on Jul 21, 2017

Was this helpful?

Yes
No
Provide feedback about this article
Powered by Confluence and Scroll Viewport.