Conectar aplicações JIRA ao MySQL
1. Crie e configure o banco de dados MySQL
- 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. 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).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>;Edite o arquivo
my.cnf(my.ininos sistemas operacionais Windows) no servidor MySQL. (Consulte MySQL Option Files (Arquivos da opção MySQL) para obter instruções detalhadas sobre como editarmy.cnfemy.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_packetcomo pelo menos 256 M:[mysqld] ... max_allowed_packet=256M ...Especifique o valor de
innodb_log_file_sizecomo 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
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".
- Execute um dos seguintes comandos, dependendo da configuração: "
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:
- 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.gzou.zipselecionando 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/.
- Se você estiver instalando o JIRA, baixe o driver do MySQL recomendado JDBC Connector/J 5.1.
- 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. - Reinicie o JIRA/o serviço JIRA.
- 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.xmlno 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.xmlno 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.
- Na primeira tela, "Configurar idioma e banco de dados", defina Conexão do banco de dados como Meu próprio banco de dados.
- Defina Tipo de banco de dados como MySQL.
- Preencha os campos conforme descrito na seção Campos de conexão com o banco de dados abaixo.
- Teste sua conexão e salve.
Ferramenta de configuração do JIRA
- Execute a ferramenta de configuração do JIRA da seguinte maneira:
- Windows: Abra um prompt de comando e execute
config.batno subdiretóriobindo diretório de instalação do JIRA. - Linux/Unix: Abra um console e execute
config.shno subdiretóriobindo diretório de instalação do JIRA.Isso pode falhar, com um erro conforme descrito no artigo Erro: não foi possível iniciar a ferramenta de config. das aplicações JIRA, pois nenhuma variável X11 DISPLAY foi configurada da nossa base de conhecimento. Consulte-o para obter uma solução alternativa.
- Windows: Abra um prompt de comando e execute
- Navegue para a guia Banco de dados e defina Tipo de banco de dados como MySQL.
- Preencha os campos conforme descrito na seção Campos de conexão com o banco de dados abaixo.
- Teste sua conexão e salve.
- Reinicie o JIRA.
Campos de conexão com o banco de dados
| Assistente de configuração/ferramenta de configuração | dbconfig.xml | Descrição |
|---|---|---|
| Nome do host | Localizado na tag | O nome ou o endereço IP do computador em que o servidor MySQL está instalado. |
| Porta | Localizado na tag | 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 | 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 | O usuário que o JIRA usa para se conectar ao servidor MySQL. Você deve tê-lo criado na Etapa 1 acima. |
| Senha | Localizado 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 compoolno arquivodbconfig.xmlacima, 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 especificarcharacter set utf8ao 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&characterEncoding=UTF8&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!
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=InnoDBno 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.