jiradbuser
)。创建供 JIRA 存储事务的数据库(例如,jiradb
)。此数据库必须具有 UTF8 字符集。在 MySQL 命令客户端中输入以下命令。
请记住此数据库名称,因为后续步骤中配置与此数据库的 JIRA 连接时要使用它。
CREATE DATABASE jiradb CHARACTER SET utf8 COLLATE utf8_bin; |
(如果您想将数据库命名为 jiradb
)。
确保用户具有连接到数据库以及创建和填充表格的权限。可通过以下命令提供这些权限 -
对于 MySQL 5.5、MySQL 5.6 以及 MySQL 5.7.0 到 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; |
对于 MySQL 5.7.6 及以上版本,您还必须包含 REFERENCES 权限:
GRANT SELECT,INSERT,UPDATE,DELETE,CREATE,DROP,REFERENCES,ALTER,INDEX on <JIRADB>.* TO '<USERNAME>'@'<JIRA_SERVER_HOSTNAME>' IDENTIFIED BY '<PASSWORD>';flush privileges; |
要确认是否成功授予权限,请以 JIRA 数据库用户身份登录数据库服务器,然后运行以下命令:
|
编辑 MySQL 服务器中的 my.cnf
文件(Windows 操作系统上是 my.ini
)。(请参见 MySQL 选项文件,了解有关编辑 my.cnf
和 my.ini
的详细说明。)
找到文件中的 [mysqld]
部分,添加或修改以下参数:
将默认存储引擎设置为“InnoDB”:
[mysqld]...default-storage-engine=INNODB... |
将 max_allowed_packet
的值指定为至少 256M:
[mysqld]...max_allowed_packet=256M... |
对于 MySQL 5.5 及以下版本,将 innodb_log_file_size
的值指定为至少 256M:
[mysqld]...innodb_log_file_size=256M... |
注意:对于 MySQL 5.6 及以上版本,这应该至少设置为 2G。
确保 sql_mode 参数未指定 NO_AUTO_VALUE_ON_ZERO
// remove this if it existssql_mode = NO_AUTO_VALUE_ON_ZERO |
重新启动 MySQL 服务器以使更改生效:
/etc/init.d/mysqld stop
”或“/etc/init.d/mysql stop
”或“service mysqld stop
”。stop
”替换为“start
”。如果您要升级 JIRA 并且要使用推荐的 MySQL 驱动程序(Connector/J JDBC 驱动程序 v5.1),则可以跳过此部分中的说明。JIRA 升级任务会自动将您现有的驱动程序复制到升级后的安装中。
将 MySQL JDBC 驱动程序复制到应用服务器:
.tar.gz
或 .zip
文件。从压缩文件中提取驱动程序的 jar(例如,mysql-connector-java-5.x.x-bin.jar
)。/lib/
目录中。/lib/
目录。如果要使用 Windows 安装程序安装 JIRA,您就需要在运行 Windows 安装程序之后、在运行安装向导之前执行此步骤。请注意:
有两种方法将 JIRA 服务器配置为连接到 MySQL 数据库:
安装向导/配置工具 | dbconfig.xml | 说明 |
---|---|---|
Hostname | 位于 | 安装 MySQL 服务器的机器的名称或 IP 地址。 |
Port | 位于 | MySQL 服务器将侦听的 TCP/IP 端口。您可以将此字段留空,以使用默认端口。 |
Database | 位于 | 您的 MySQL 数据库的名称(JIRA 会将数据保存在其中)。您应该在上述的步骤 1 中进行创建。 |
Username | 位于 | JIRA 用来连接 MySQL 服务器的用户。您应该在上述的步骤 1 中进行创建。 |
Password | 位于 <password> 标签中(以下示例中的粗体文本):<password> jiradbuser</password> | 用户密码 — 用于与 MySQL 服务器进行身份验证。 |
dbconfig.xml
文件中以 pool
开头的 <jdbc-datasource/>
子元素的更多信息,请参阅调整数据库连接。<validation-query>select 1</validation-query>
添加到此文件中,通常在运行带有默认 MySQL 安装的 JIRA 时需要它。请参见解决连接关闭问题了解更多信息。create database jiradb character set utf8;
这样的命令创建的;如果您在创建数据库时未指定 character set utf8
,则当导入数据时,您可能会收到“Data truncation: Data too long for column
”这样的错误,或者面临不受支持的字符被损坏的问题。sessionVariables=storage_engine=InnoDB
参数。我们强烈推荐添加此参数,以避免数据损坏。<?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> |
现在,您应该已经将 JIRA 配置为连接到 MySQL 数据库。下一步就是启动它!
恭喜,您现在已经将 JIRA 连接到了 MySQL 数据库。
localhost
),则随后必须使用相同字符串来将 JIRA 连接到数据库。所以,不能使用 127.0.0.1,即使它解析到同一位置。此错误会产生找不到表格的警告,因为在设置 JIRA 时,JDBC 连接没有权限创建新表格。使用 InnoDB 存储引擎 — 5.5 之前的 MySQL 服务器版本使用的默认存储引擎是 MyISAM。因此,在版本 5.5 之前的 MySQL 服务器的默认配置上运行的 JIRA 数据库可能会遇到表格创建问题 (JRA-24124),这可能会导致 JIRA 中数据损坏。我们强烈推荐在数据库 URL 中指定 sessionVariables=storage_engine=InnoDB
参数(如上文所述)。这样可确保写入 JIRA MySQL 数据库的表格将使用 InnoDB 存储引擎,它支持 JIRA 所需的“数据库事务”。
二进制日志记录 — 请注意,JIRA 与 MySQL 之间使用“READ-COMMITTED”事务隔离级别,目前仅支持基于行的二进制日志记录。如果您需要 MySQL 的二进制日志记录功能,则必须将 MySQL 的二进制日志记录格式配置为“row-based”。否则,您可能会在 JIRA 创建事务时遇到问题。