页面树结构

 

安装步骤

这个页面介绍了如何将JIRA连接到 MySQL 5.1.x 数据库。

你可以参阅 在Linux上配置JIRA Standalone以及MySQL数据库 。

这个页面的内容:

1. 开始之前的准备工作:

1.1 导出已经存在的JIRA 数据

如果JIRA已经运行了一段时间, 将JIRA的数据备份为XML,就可以参照切换数据库的说明,将数据从旧数据库迁移到新数据库中。

1.2 停止 JIRA

1.3 MySQL 已知的问题

如果你正在使用下面的MySQL版本:

  • JIRA 3.13 Standalone 或更高版,
  • Tomcat 5.5.25 或更高版本,
  • Tomcat 6.0.13 或更高版本,

你可能会遇到连接中断的问题 (浏览 http://jira.atlassian.com/browse/JRA-15731 了解具体情况)。 请阅览 Surviving Connection Closures 了解如何解决。

如果你在使用JIRA和MySQL过程中发现了其他问题, 请浏览 附加说明 。

2. 配置 MySQL

  1. 创建一个用于JIRA访问MySQL的用户 (例如 jirauser)。
  2. 创建JIRA存储问题的数据库 (例如 jiradb)。 数据库字符集必须设置为 UTF8。 在MySQL命令行输入下面的命令:

    create database jiradb character set utf8;

    (假设你的数据库名称为 jiradb)。

  3. 确保你使用的用户有权限连接数据库以及有权限创建数据表。
  4. 确认MySQL使用的是事物数据库。因为部分JIRA功能会使用到事物处理, 你需要确认MySQL数据库使用的是 InnoDB 存储引擎。避免使用 MyISAM 存储引擎,因为MyISAM存储引擎可能会导致数据损坏。 

    (信息) 请注意如果你配置的JIRA使用InnoDB引擎的MySQL数据库,并且 你希望使用二进制日志, 你必须将MySQL的二进制日志格式配置为 'row-based'。 否则, 在JIRA中创建问题时可能会出现错误。 更多信息请访问 JIRA 在使用MySQL二进制日志时无法创建问题

3. 将 MySQL 驱动复制到应用服务器

如果你使用的是 JIRA Standalone 版请跳过此步骤, 因为 JIRA Standalone 已经包含了这个驱动。

  1. 下载 MySQL Connector/J JDBC driver v5.1

    有用户报告了在使用MySQL的Resin JDBC 驱动时会发生错误。因此,请使用MySQL的 Connector/J 驱动。

  2. 将 MySQL JDBC 驱动 jar文件 (mysql-connector-java-5.x.x-bin.jar) 复制到 lib/ 文件夹。

4. 使用JIRA配置工具

JIRA 配置工具是图形化工具,只能用于JIRA Standalone。如果你使用的是 WAR-EAR 版, 或JIRA服务器只有文本模式, 你需要手动配置。

  1. 点击 'Database' 标签页
  2. 从 'Database type' 下拉列表中选择 'MySQL'。
  3. 填写MySQL数据库的连接串:
    • Hostname — MySQL数据库服务器的名称或IP地址。
    • Port — MySQL数据库服务器监听端口号。 留空将使用默认端口。
    • Database — 数据库的名称。
    • Username — 访问MySQL数据库服务器的账号。
    • Password — 访问MySQL数据库服务器的授权密码。
  4. 输入完以上信息, 点击 'Test Connection' 按钮测试连接是否成功。 工具会尝试连接数据库,并返回测试结果。
  5. 点击 'Save' 保存你配置的选项。
  6. 重新启动JIRA服务器。

祝贺你,你已经完成了数据库配置!

5. 手动配置数据库连接

如果你已经是通过JIRA配置工具设置好数据库连接(参见 前面章节),请跳过此步骤。

5.1. 配置应用服务器与MySQL的连接

  1. 编辑 conf/server.xml (如果你使用的是JIRA Standalone),为数据库连接配置正确的 usernamepassword,driverClassName 以及 url 等参数。 (如果你使用的是 JIRA WAR/EAR, 编辑应用服务器相应的文件,例如 Tomcat, 编辑conf/Catalina/localhost/jira.xml)。

    假设在下面XML文件中使用的数据库URL连接的是UTF-8数据库 — 例如 通过 create database jiradb character set utf8; 创建的数据库。 如果你没有指定 character set utf8 ,你可能会在导入数据或不支持字符时遇到 'Data truncation: Data too long for column' 的错误。 具体说明请参见 在MySQL中存储非ASCII字符 。

    注意: 如果在XML文件中输入转义字符 '&',需要在后面添加 'amp;', 就像下面的例子:

     
    <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="[输入数据库用户名]" 
    password="[输入数据库密码]" 
    driverClassName="com.mysql.jdbc.Driver" 
    url="jdbc:mysql://localhost/jiradb?useUnicode=true&amp;characterEncoding=UTF8" 
    [ 删除这里的 minEvictableIdleTimeMillis 以及 timeBetweenEvictionRunsMillis params ] 
    maxActive="20" 
    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/ 文件夹中搜索 'jira'。)

  2. 如果你使用的是JIRA Standalone, 编辑 conf/server.xml, 并删除 minEvictableIdleTimeMillis 以及timeBetweenEvictionRunsMillis 两行 (这两个属性值只用于HSQL, 不删除会降低MySQL的性能)。
  3. 如果你希望设置应用服务器的数据库连接验证 (例如 数据库连接经常会中断), 你需要添加 validationQuery 参数,并将属性值设置为 "select 1"。 请查看上面的XML例子。

5.2 配置 JIRA Entity Engine

  1. 编辑 atlassian-jira/WEB-INF/classes/entityengine.xml (如果你使用的是JIRA Standalone) 或 edit-webapp/WEB-INF/classes/entityengine.xml (JIRA WAR/EAR), 并将 field-type-name 的值更改为 mysql。 (如果你忘记更改了这个属性值并启动了JIRA, JIRA将无法正确地创建数据表。 如果发生了这种情况,请查看 这个页面修复错误)。 同时要删除 schema-name="PUBLIC":

     
    <!-- DATASOURCE - You will need to update this tag for your installation. 
    
    --> 
    <datasource name="defaultDS" field-type-name="mysql"[ 删除 : schema-name="PUBLIC" ] 
    helper-class="org.ofbiz.core.entity.GenericHelperDAO" 
    check-on-start="true" 
    use-foreign-keys="false" 
    ... 
    

    如果你使用的是 JIRA WAR/EAR, 根据不同的 应用服务器,可能会需要更改 entityengine.xml}}的其他配置 (例如 定义 {{jndi-jdbc )。

5.2 下一步

你现在已经为应用服务器配置了数据库连接,并且也为JIRA配置了正确的数据库类型。 如果你使用的是 JIRA Standalone, 启动JIRA并根据日志查看启动错误。 如果你使用的是 JIRA WAR/EAR 版, 在应用服务器中重构并重新部署 webapp。

安装说明

请参见 JIRA 和 MySQL

 

  • 无标签