分享

JIRA使用教程:连接数据库

 simsky 2017-11-22
标签:项目管理
概述:连接JIRA与MySQL数据库。

本文主要介绍如何连接JIRA到MySQL数据库。

首先

  • 查看MySQL的版本是否支持,查阅支持的平台
  • 如果是转移JIRA到另一台服务器,先导出数据为XML备份,然后将旧数据库中的数据传输到新的数据库。
  • 如果你打算用同一个MySQL服务器安装Confluence和JIRA,请阅读Confluence MySQL安装指南,配置你的MySQL服务器来适应Confluence以及JIRA。注意Confluence要求比JIRA要严格,因此应该配置MySQL来适应Confluence,这种配置同样也适用于JIRA。
  • 在开始前关闭JIRA,除非你正在运行Setup Wizard。

1.创建并配置MySQL数据库

  1. 创建与JIRA连接的数据库用户(登录角色)例如:jiradbuser
    mysql> CREATE USER '< USERNAME>'@'< JIRA_SERVER_HOSTNAME>' IDENTIFIED BY '< PASSWORD>';
  2. 创建一个数据库(如jiradb)来存储JIRA的问题,数据库必须有一个UTF8的字符集。在MySQL命令客户端输入以下命令:
    CREATE DATABASE jiradb CHARACTER SET utf8 COLLATE utf8_bin;
  3. 确保该用户拥有连接数据库以及创建和写入表的权限。授权命令如下:
    GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,ALTER,INDEX on < JIRADB>.* TO
    '< USERNAME>'@'< JIRA_SERVER_HOSTNAME>' IDENTIFIED BY '<PASSWORD>';
    flush privileges;
Tip:
为了确认权限是否被授予成功,用JIRA DB用户登录到DB服务器并运行一下命令:
SHOW GRANTS FOR < USERNAME>@< JIRA_SERVER_HOSTNAME>;

2.将MySQL JDBC驱动程序复制到应用服务器

如果是升级JIRA并且使用的是推荐的MySQL驱动器(Connector/J JDBC driver v5.1),可跳过此步。JIRA更新会自动复制已存在的驱动到升级后的安装。
将MySQL JDBC驱动程序复制到你的应用服务器

  1. 获得MySQL驱动程序:
    • 如果是安装JIRA,下载推荐的MySQL驱动器Connector/J JDBC driver v5.1。
      可通过选择'Platform Independent'选项下载.tar.gz或.zip文件。从存档中为驱动提取jar(例如:mysql-connector-java-5.x.x-bin.jar)。
    • 如果是升级JIRA并且没有使用推荐的MySQL驱动(JDBC Connector/J 5.1),在更新前先从JIRA备份驱动程序。驱动程序将存储在<JIRA安装目录>/lib/ 目录。
  2. 复制MySQL JDBC驱动程序到<JIRA安装目录>/lib/ 目录来更新JIRA。如果使用Windows installer安装JIRA,你需要在运行Windows installer后,但要在运行Setup Wizard之前做这一步。
  3. 重启JIRA/JIRA服务器。
  4. 如果正在安装JIRA,跳过该页面的其他指示,通过浏览器连接JIRA来运行Setup Wizard。

注意:

  • 上面推荐的MySQL Connector/J驱动,有用户报告遇到Resin JDBC driver for MySQL的问题。

3.配置JIRA服务器来连接MySQL数据库

三种配置JIRA服务器连接MySQL数据库的方法:

  • 使用JIRA安装向导(不适用于JIRA WAR)-如果你已经安装JIRA并且是第一次设置,你的设置将被保存到JIRA主目录的dbconfig.xml文件里。
  • 使用JIRA配置工具(不适用于JIRA WAR)-如果有已存在的JIRA实例,你的设置将被保存到JIRA主目录的dbconfig.xml文件里。
  • 手动配置-只有当你有JIRA WAR实例或控制台时使用这种方法链接到JIRA服务器。你需要手动更新JIRA主目录里的dbconfig.xml文件。

每种配置方法的说明:

JIRA setup wizard 当首次在浏览器连接JIRA时,JIRA设置向导就会出现。
  1. 在最开始页面的'Configure Language and Database'设置Database ConnectionMy own database
  2. 设置Database TypeMySQL
  3. 按照下面描述的数据库连接字段填写字段。
  4. 测试连接并保存。
JIRA configuration tool
  1. 根据下面运行JIRA配置工具:
    • Windows:打开命令提示符,运行JIRA安装目录的bin子目录文件config.bat。
    • Linux/Unix:打开控制台,运行JIRA安装目录的bin子目录文件config.sh。
    (info)可能会出现失败的错误,参照此文章的解决方法。
  2. 导航到Database选项卡设置Database typeMySQL
  3. 按照下面描述的数据库连接字段填写字段。
  4. 测试连接并保存。
  5. 重启JIRA。
Manually
  1. 找到JIRA主目录根目录下的dbconfig.xml文件。
    • 如果该文件不存在,创建该文件,将XML示例代码(如下)复制粘贴到该文件。
  2. 根据下面数据库连接字段描述更新该文件。通过在每一个末端添加'amp;'转义所有'&'字符。
    • 注意:<database-type/>元素必须指定数据库类型,如:mysql。如果你忘记指定数据库类型就启动JIRA,那么数据库表将不会被正确创建。若遇到类似问题,参见指定不正确的数据库类型进行解决。
  3. 保存文件并重启JIRA。


数据库连接字段:

setup wizard/configuration tool dbconfig.xml Description
Hostname 位于< url>标记(例如下面的粗体文字):
< url>jdbc:mysql://dbserver:3306/jiradb?useUnicode=true&characterEncoding=UTF8&sessionVariables=storage_engine=InnoDB< /url>
安装MySQL服务器的机器名称或IP地址。
Port 位于< url>标记(例如下面的粗体文字):
< url>jdbc:mysql://dbserver:3306/jiradb?useUnicode=true&characterEncoding=UTF8&sessionVariables=storage_engine=InnoDB < /url>
MySQL服务器正在监听的TCP/IP端口。也可以留空来使用默认端口。
Database 位于< ;url>标记(例如下面的粗体文字):
< url>jdbc:mysql://dbserver:3306/jiradb?useUnicode=true&characterEncoding=UTF8&sessionVariables=storage_engine=InnoDB < /url>
MySQL数据库(JIRA数据将保存的数据库)的名称。应该在上面第一步时创建。
Username 位于< username>标记(例如下面的粗体字):
< username>jiradbuser < /username>
JIRA用于连接MySQL服务器的用户。应在上面第一步时创建。
Password 位于< password>标记(例如下面的粗体字):
< password>jiradbuser < /password>
用于与MySQL服务器身份验证的用户密码。


dbconfig.xml文件示例

JIRA-xml文件

4.启动JIRA

现在JIRA连接到MySQL数据库就配置好了。下一步就是启动JIRA。

  • 如果正在使用JIRA的'recommended'分配,启动它,并观察日志中是否存在错误。
  • 如果使用的是JIRA WAR分配,重建并重新部署在应用服务器的Web应用程序。

安装注意事项

已知的问题和解决方案:

  • 权限中的主机名称相当于字符串-如果在MySQL中授权给主机名为localhost,那么从JIRA连接数据库时必须使用相同的字符串。因此使用127.0.0.1就不能工作,尽管它们指向同一个地址。这将产生一个找不到表的错误,这是因为当启动JIRA时JDBC连接没有创建表的权限。
  • 连接关闭-如果使用下面任何一个来使用MySQL数据库,可能会遇到连接关闭的问题(详见JRA-15731)。阅读Surviving Connection Closures来解决问题。
    • JIRA 3.13 or above,
    • version 5.5.25 or higher of Tomcat 5,
    • version 6.0.13 or higher of Tomcat 6,
  • 数据库密码特殊字符-JIRA不能释义数据库密码中的特殊字符,请参考设置数据库密码
  • 使用InnoDB存储引擎- 先前MySQL Server版本到5.5使用的是默认存储引擎MyISAM。因此JIRA数据库在默认配置的MySQL Server5.5以前的版本运行时,可能导致JIRA中的数据损坏。强烈建议在数据库指定sessionVariables=storage_engine=InnoDB参数。这样做确保写入到JIRA的MySQL数据库的表将使用InnoDB存储引擎,它支持JIRA需要的'database transactions'。
  • 二进制日志-注意JIRA的MySQL使用'READ-COMMITTED'事务隔离级别,目前只支持基于行的二进制日志。若需要MySQL的二进制日志功能,则必须配置MySQL的二进制日志格式为'row-based'。否则,在JIRA中创建问题时可能会出错。详见当使用MySQL的二进制日志时不能创建问题
  • 4字节字符-注意JIRA不支持MySQL使用4字节字符。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多