Linux JIRA+MYSQL安装与调试方法

前言:应同事要求 想搭建一个 BUG的提交系统,用来有效的管理项目,所以选用了 jirajira基于 J2EE的 ,之前一直接触的都是 PHP的平台相关的程序,这次也当是正好练习下 JAVA方面的环境安装调试,中间也是出了不少的问题,至少学会了一个最重要的如何调 试 tomcat
一、了解JIRA
不管你知不知道 JIRA 还是先大概的了解下。
(大致归纳下) JIRA 是目前比较流行的基于 Java架构的管理系统  ,是集项目计划、任务分配、需求管理、错误跟踪于一体的商业软件,功能全面,界面友好,安装简单,配置灵活,权限管理以及可扩展性方面都十分出色。
因为是基于 JAVA的所以需要 JAVA环境,因为是商业软件所以会要有 license key
二、具体安装过程(含有解决问题的分析思路)
1、基础环境(以自己实践的环境为例)
操作系统: Linux (具体用过的 Centos 5.2 , Slackware 12.1
2、思考过程
可能拿到一个要安装的软件可能第一反应就是 google搜索,但往往网上的文章基本没有绝对完整或者是时效性已经过了的。
正确的思考方式
A、直接下载 JIRA程序,安装方法查看解压包中的 README.txt 或者有些软件包还有一个 INSTALL
B、以 JIRA的官方安装方法为基准 再参考 google搜索出来的其他文章。
C、遇到具体再具体分析。
3、下载JIRA
tar zxvf atlassian-jira-enterprise-3.13.4-standalone.tar.gz
mv atlassian-jira-enterprise-3.13.4-standalone /home/
ln -s atlassian-jira-enterprise-3.13.4-standalone jira
cd /home/jira
4、根据README.txt安装
———————————————————————
JIRA 3.13.4-#354 README
———————————————————————
Thank you for downloading JIRA 3.13.4 - Standalone distribution. This
distribution comes with a built-in Tomcat 5.5.26 web server and hsql
database, so it runs (almost) out the box.
JIRA 3.13.4集成内置了 tomcat 5.5.26的 默认是 hsql database
所以不需要另外安装 tomcat
BRIEF INSTALL GUIDE
——————-
1. Install a Java Development Kit (JDK) from
第一步:安装JDK环境
JDK下载路径
http://java.sun.com/javase/downloads/index.jsp
(avoid JREs, Java EEs, Netbeans, etc. on that page - you just want a JDK).
下载最新的 JDK
这里的最新版本是 JDK 6 Update 14 注意的是选择完平台进行下载的时候 可以直接点击 jdk-6u14-linux-i586.bin 进行下载 如果是点击“ download selected with sun download manager” 这个是 SUN的下载器
2. Set the JAVA_HOME variable to where you installed Java. Windows installers
may do this for you. See also the following for Windows instructions:
http://confluence.atlassian.com/display/DOC/Set+JAVA_HOME+variable+in+Windows
第二步 :安装和配置JAVA环境
JAVA安装很简单主要是配置变量 这里不清楚了可以 google下了
我的步骤:
chmod +x jdk-6u14-linux-i586.bin
./jdk-6u14-linux-i586.bin
mv jdk1.6.0_14 /usr/local/jdk
/etc/profile尾添加
JAVA_HOME=/usr/local/jdk
CLASSPATH=.:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar
PATH=$JAVA_HOME/bin:$PATH
export JAVA_HOME
export PATH
export CLASSPATH
还需要在终端中把上面添加的都执行一遍,不然你想重启机器啊,呵呵。
查看是否成功 :
java -version
java version “1.6.0_14″
Java(TM) SE Runtime Environment (build 1.6.0_14-b08)
Java HotSpot(TM) Server VM (build 14.0-b16, mixed mode)
也可以编写个 hello.java测试下 (略)
README中对 WINDOWS关爱有加 有 WINODWS的配置 JDKURL
第三步:配置MYSQL
下面的第 3是开始启动 JIRA了,但我们的需求是安装 JIRAMYSQL的,所以还需要配置 MYSQL
如果不想麻烦建议就用操作系统自带的 MYSQL吧 ( MYSQL配置自己查)
slackware 12.1 centos 5.2 MYSQL都是 5.0
JIRAMYSQL配置
mysql
create database jiradb character set utf8;
grant all privileges on jiradb.* to jirauser@localhost identified by 'mypassword' with grant option;
flush privileges;
quit
测试是否成功 用jirauser用户手动登陆试试
第四步:安装MYSQL/J JDBC 驱动
       作用就是让JAVA可以通过JDBC连接MYSQL
下载:
JDBC下载要跟你的MYSQL基本相同  mysql 5.0选择5.0的驱动 依以类推
wget 
tar zxvf mysql-connector-java-5.0.8.tar.gz
cp mysql-connector-java-5.0.8/mysql-connector-java-5.0.8-bin.jar /home/jira/common/lib
第五步:修改JIRA配置
修改一、
vim /home/jira/conf/server.xml
修改成如下几项
username="jirauser"
 password="mypassword"
 driverClassName="com.mysql.jdbc.Driver"
 url="jdbc:mysql://localhost/jiradb? autoReconnect=true&useUnicode=true&characterEncoding=UTF8"
删除以下两行
  minEvictableIdleTimeMillis="4000"
 timeBetweenEvictionRunsMillis="5000"
修改二、
vim /home/jira/atlassian-jira/WEB_INF/classes/entityengine.xml
将其中的hsql改成mysql 数据库类型<datasource name="defaultDS" field-type-name="hsql"
<datasource name="defaultDS" field-type-name="mysql"
删除    schema-name="PUBLIC"
3. Run bin/startup.sh (*nix) or bin\startup.bat (Windows). Check that there
are no errors on the console. See below for troubleshooting advice.
第六步:运行JIRA服务
*uix使用 JIRA根目录下的 bin/starup.sh windowsbin\startup.bat
运行后可以通过 logs下的日志进行查看报错
4. Point your browser at http://localhost:8080/
You should see JIRA’s Setup Wizard.
第七步:访问JIRA
通过 http://JIRA_server_ip:8080 进行查看 如果出来界面说明配置正确 如果报 404等其它问题就是配置中出现问题了
通过仔细检查配置文件都没有改错或者写错的话 那么很有可能就是你的 MYSQL连接不正确
三、问题排错
可能大部分的人第一次安装都不会那么顺利,我就是遇到了不少的问题,如何进行排错呢,日志是肯定不能少的。
出现问题后查看 logs下面的 catalina.2009-07-14.log catalina.out 日志 但只能得到两个错误
SEVERE: Error listenerStart
SEVERE: Context [] startup failed due to previous errors
通过 google查看 这类问题不少,也有很多的解决办法 如: http://xuthus.javaeye.com/blog/85089
但这都不是解决办法的根源,因为报这个错还是有很多种可能。
解决办法查看最詳細的日志,确定问题的原因: http://618119.com/archives/2007/12/04/37.html
JIRAtomcat5.5的 基于上面的方法
1、创建 log4j.properties
vim /home/jira/common/classes/log4j.properties
            log4j.rootLogger=DEBUG, R
            log4j.appender.R=org.apache.log4j.RollingFileAppender
            log4j.appender.R.File=${catalina.home}/logs/tomcat.log
            log4j.appender.R.MaxFileSize=10MB
            log4j.appender.R.MaxBackupIndex=10
            log4j.appender.R.layout=org.apache.log4j.PatternLayout
            log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
2、下载 log4j
tar zxvf apache-log4j-1.2.15.tar.gz
cp apache-log4j-1.2.15/log4j-1.2.15.jar /home/jira/common/lib/
3、下载 commons logging
tar zxvf commons-logging-1.1.1-bin.tar.gz
cp commons-logging-1.1.1/commons-logging-1.1.1.jar /home/jira/common/lib/
这样配置完后 重启 JIRA可以在日志中看到更詳細的记录
第一个就是在当前启动 JIRA服务的目录下会产生 atlassian-jira.log
tail -f atlassian-jira.log
第二个在 logs中的 catalina.out 跟上面的日志内容是一样的
分析:
以下就我出现的问题具体分析下日志:
日志取最早出现的 error
问题 Amain ERROR [jira.appconsistency.db.DatabaseConsistencyCheck] There was a SQL exception checking for database driver correctness. Skipping
2009-07-14 17:12:57,743 main ERROR [core.entity.jdbc.DatabaseUtil] Unable to esablish a connection with the database… Error was:org.apache.tomcat.dbcp.dbcp.SQLNestedExceptio
n: Cannot load JDBC driver class ‘org.mysql.jdbc.Driver’
这个是名字打错了,几次折腾重新安装时把驱动的名字打错了 应该把 ‘org.mysql.jdbc.Driver’改成
‘com.mysql.jdbc.Driver’
问题 Borg.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Server connection failure during transaction. Due to underlying exception: ‘java.net.ConnectException: Connection refused’.
连接被拒绝了,其实这个原因是一直没有成功的根源,我当时用的是 slackware 12.1的默认 mysql的服务启动是 skip-network 即是不能通过网络访问的,但手动本地 localhost是可以的所以连接的,所以带来了问题的麻烦
解决:去掉启动脚本中的— skip-network
问题 Crg.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot create PoolableConnectionFactory (Server connection failure during transaction. Due to underlying exception: ‘java.sql.SQLException: Access denied for user ‘jirauser’@'127.0.0.1′ (using password: YES)’.
还是访问被拒绝但已经有明显的访问方式为 jirauser’@'127.0.0.1′ ,这个很奇怪,为什么配置中用的是 localhost却用 127.0.0.1来访问,虽然逻辑上是一样的,但 mysql好像不能区分,所以又给 127.0.0.1添加了一条权限
解决: grant all privileges on jiradb.* to jirauser@’127.0.0.1′ identified by ‘mypassword’ with grant option;
最后看到日志中出了
Database configuration OK
___ Database Configuration _______
Loading entityengine.xml from : file:/home/atlassian-jira-enterprise-3.13.4-standalone/atlassian-jira/WEB-INF/classes/entityengine.xml
Entity model data source name : defaultDS
Entity model field type name : mysql
Entity model schema name :
Database Version : MySQL - 5.0.51b-log
Database Driver : MySQL-AB JDBC Driver - mysql-connector-java-5.0.5 ( $Date: 2007-03-01 00:01:06 +0100 (Thu, 01 Mar 2007) $, $Revision: 6329 $ )
Database URL : jdbc:mysql://localhost:3306/jiradb?autoReconnect=true&useUnicode=true&characterEncoding=UTF8
Database JNDI address : java:comp/env/jdbc/JiraDS
说明成功了
四、JIRA界面配置
这个就不詳細说了,具体看官网资料