Warning: ksort() expects parameter 1 to be array, object given in /home/wlchua5/public_html/w/wp-content/plugins/bbpress/includes/core/template-functions.php on line 316

Warning: ksort() expects parameter 1 to be array, object given in /home/wlchua5/public_html/w/wp-content/plugins/buddypress/bp-core/bp-core-template-loader.php on line 192
如何正確設定用於JIRA之MySQL server | Corss Tao

如何正確設定用於JIRA之MySQL server

JIRA是一套功能強大的專案管理系統,想要正確安裝與管理也要花相當的功夫。

最近幾天在升級舊有的JIRA server到新的機器上,就發生了不少問題。其中一個問題就是無法輸入漢文。或更廣泛的來說,就是無法支援CJKV語系。

中文輸入在舊的機器上是正常的,在新的主機上無法運行有點匪夷所思,上網看了官方的文件以及一些討論,發現是資料庫文字編碼設定成拉丁語(Latin)而非漢文(Chinese)的緣故。

這個問題的解決方式,簡單說就是:

  • 將預設的MySQL server的文字編碼設定成UTF8。
  • 並將建立給JIRA使用的資料庫之文字編碼也設定成UTF8。

設定MySQL server

首先,編輯/etc/mysql/my.cnf。加入如下的設定。

  • 設定預設編碼格式為UTF-8:
    [mysqld]
    character-set-server=utf8
    collation-server=utf8_bin
  • 將預設的儲存引擎設定為InnoDB:
    [mysqld]
    default-storage-engine=INNODB
  • 變更max_allowed_packet為不小於40M
    [mysqld]
    max_allowed_packet=40M
  • 確保sql_mode參數不是NO_AUTO_VALUE_ON_ZERO
    // remove this if it exists
    sql_mode = NO_AUTO_VALUE_ON_ZERO

建立資料庫

安裝JIRA前,要先建立資料庫(JIRA安裝設定時,會自行建立相關之資料表)。

  • 建立資料庫:
    CREATE DATABASE confluence CHARACTER SET utf8 COLLATE utf8_bin;
  • 賦予存取權限:
    GRANT ALL PRIVILEGES ON confluence.* TO ‘confluenceuser’@’localhost’ IDENTIFIED BY ‘confluencepass’;

將資料庫升級為支援UTF8編碼之資料庫

如果JIRA已經開始運行,又不想重新安裝並重新匯入整個JIRA資料的話。就必須設法變更MySQL資料庫裡既有資料表的文字欄位編碼為UTF8。詳細的方法可以參考Atlassian的官方文件(Change MySQL Database Character Encoding to UTF8 During Server Migration)。

Leave a Reply

Your email address will not be published. Required fields are marked *