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數據庫 創建與JIRA連接的數據庫用戶(登錄角色)例如: jiradbuser 。
mysql> CREATE USER '< USERNAME>'@'< JIRA_SERVER_HOSTNAME>' IDENTIFIED BY '< PASSWORD>'; 創建一個數據庫(如 jiradb )來存儲JIRA的問題,數據庫必須有一個UTF8的字符集。在MySQL命令客戶端輸入以下命令:
CREATE DATABASE jiradb CHARACTER SET utf8 COLLATE utf8_bin; 確保該用戶擁有連接數據庫以及創建和寫入表的權限。授權命令如下:
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驅動程序復制到你的應用服務器
獲得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/ 目錄。 復制MySQL JDBC驅動程序到<JIRA安裝目錄>/lib/ 目錄來更新JIRA。如果使用windows installer安裝JIRA,你需要在運行Windows installer後,但要在運行Setup Wizard之前做這一步。 重啟JIRA/JIRA服務器。 如果正在安裝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設置向導就會出現。 在最開始頁面的'Configure Language and Database'設置 Database Connection 為 My own database 。 設置 Database Type 為 MySQL 。 按照下面描述的數據庫連接字段填寫字段。 測試連接並保存。 JIRA configuration tool 根據下面運行JIRA配置工具: Windows: 打開命令提示符,運行JIRA安裝目錄的bin子目錄文件config.bat。 linux/Unix: 打開控制台,運行JIRA安裝目錄的bin子目錄文件config.sh。
JIRA使用教程:連接數據庫—MySQL
可能會出現失敗的錯誤,參照此 文章 的解決方法。 導航到 Database 選項卡設置 Database type 為 MySQL 。 按照下面描述的數據庫連接字段填寫字段。 測試連接並保存。 重啟JIRA。 Manually 找到JIRA主目錄根目錄下的dbconfig.xml文件。 如果該文件不存在,創建該文件,將XML示例代碼(如下)復制粘貼到該文件。 根據下面數據庫連接字段描述更新該文件。通過在每一個末端添加'amp;'轉義所有'&'字符。 注意:<database-type/>元素必須指定數據庫類型,如:mysql。如果你忘記指定數據庫類型就啟動JIRA,那麼數據庫表將不會被正確創建。若遇到類似問題,參見指定不正確的數據庫類型進行解決。 保存文件並重啟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文件示例
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字節字符。