Linux下Jira+Mysql 安装

上一篇 / 下一篇  2007-07-18 20:08:08

查看( 3829 ) / 评论( 7 )
我刚开始对Jira配置Mysql老不成功,经过多次检查后发现问题所在:

Mysql里用户Jirauser没有分配到对数据库Jiradb的操作权限。(明明指派了权限"grant all privileges ..... grant option;",但在Mysql Administrator 工具里"Assigned Privileges"栏却为空,没有任何权限。)

现总结了一些需要注意的地方,希望对遇到类似问题的朋友有用。

1.JDK和JIRA的安装一般不会有问题,安装好后建议修改连接端口,修改如下:

修改server.xml (路径:/opt/jira/conf/server.xml)

第1行:
<Server port="8015" shutdown="SHUTDOWN">
<Service name="Catalina">
<Connector port="8090"

51testing
2.配置使用MySQL数据库

创建数据库
mysql
create database jiradb character set 'UTF8';

创建用户:
create user jirauser identified by 'jira';
grant all privileges on *.* to 'jirauser'@'%' identified by 'jira' with grant option;
grant all privileges on *.* to 'jirauser'@'localhost' identified by 'jira' with grant option;
flush privileges;

记得到MS-Windows下用Mysql Administrator 工具检查一下jirauser对数据库jiradb的权限。"Assigned Privileges"栏为当前拥有的权限,如果此栏为空,要将"Avialable Privileges'里的权限项添加到"Assigned Privileges"栏里。

3.安装连接驱动包 Mysql JDBC Driver

cp   mysql-connector-java-3.1.12-bin.jar   /opt/jira/common/lib/

注意:是mysql-connector-java-3.1.12-bin.jar。不要误将mysql-connector-java-3.1.12.tar直接就拷过去了。

51teating

4.修改两个JIRA的配置文件

1)修改server.xml (路径:/opt/jira/conf/server.xml)

第13行:
username="jirauser"
password="jira"
driverClassName="com.mysql.jdbc.Driver"
url="jdbc:mysql://localhost/jiradb?autoReconnect=true&useUnicode=true&characterEncoding=UTF8"
(删除minEvictableIdleTimeMillis and timeBetweenEvictionRunsMillis项 )
maxActive="20" />

注:以上“localhost”可不该,也可改为主机名或设为"主机IP:端口",mysql端口号为"3306"。

b)修改entityengine.xml (路径:/opt/jira/atlassian-jira/WEB-INF/classes/entityengine.xml)

第100行修改为:
<datasource name="defaultDS" field-type-name="mysql"
删除schema-name="PUBLIC"

以上要修改的部分修改后要仔细检查,不要因为少一个"."或拼写错误而使配置失败。

5.启动JIRA服务:
/opt/jira/bin/startup.sh   
(启动服务大约要20秒,不要急于测试,硬盘灯灭了才表示服务加载完成。)

测试
Http://"host_ip":8090/

如果没有成功需要检查调试,先关闭服务:
/opt/jira/bin/shutdown.sh

检查修改后再重新启动服务。


遇到问题,我也习惯用google找解决办法,但也不一定能找到相应的解决办法,毕竟软件方面的问题比较复杂,每个人所遇到问题的原因各有不同,遇到问题时还是要自己多想想。

[本帖最后由 NODDY820 于 2007-7-18 20:05 编辑]

TAG: Linux JIRA Mysql 安装 配置

闭合叶子发布于2007-07-21 18:36:12
多谢楼主与大家分享,顶一下~~~
tidy_wwwww发布于2007-07-22 21:17:43
grant all privileges on *.* to 'jirauser'@'%' identified by 'jira' with grant option;
grant all privileges on *.* to 'jirauser'@'localhost' identified by 'jira' with grant option;
通常在这里,大家好像都习惯性的使用*.*了,却忘了SHELL和DOS还是有区别的,所以,谢谢LZ的提醒!谨记谨记~~
thedaythegirl发布于2007-07-23 16:31:45
回复 #1 NODDY820 的帖子
lz的学习态度很认真,补充一下:
创建jirauser操作可以不用做(create user jirauser identified by 'jira';)因为下面的赋权语句已经是先创建用户然后赋权;
grant all privileges on jiradb.* to 'jirauser'@'%' identified by 'jira' with grant option;
grant all privileges on jiradb.* to 'jirauser'@'localhost' identified by 'jira' with grant option;
thedaythegirl发布于2007-07-23 17:03:19
mysql的权限
有些同学执行了如下的赋值语句:
mysql>grant all privileges on *.* to 'jirauser'@'%' identified by 'jira' with grant option;
mysql>grant all privileges on *.* to 'jirauser'@'localhost' identified by 'jira' with grant option;
shell#mysqladmin reload
但没有在Mysql Administrator中jiradb对应的Assigned privileges中没有查看到任何权限,可能会感到困惑,这里给大家解释一下:
如果用上面的语句:
他的作用是创建了超级用户,而且给这个用户赋了所有数据库实例的所有对象的操作权限(*.*),并不是没有赋权,他的权限是在mysql数据库实例中的user表中管理的,大家可以使用Mysql Query 工具查看该表,会发现用户jirauser对应的记录所有的权限列值都是Y,说明他是有权限的。

如果使用如下的语句:
mysql>grant all privileges on jiradb.* to 'zhang'@'%' identified by 'jira' with grant option;
mysql>grant all privileges on jiradb.* to 'zhang'@'localhost' identified by 'jira' with grant option;
shell#mysqladmin reload
这样执行将用户zhang的权限限制在数据库实例jiradb上,他不能对别的实例操作;
查看user表,你会发现他所对应的权限列值都是N
zhang的权限在表db中管理,查看db表,你会发现他所对应的权限值都是Y

总结:使用工具mysql administrator 在Assigned privileges中看到的权限是对应表db的数据,而不是user表的。也不能直接否定grant privileges on *.* 这个语句的作用 :)

[ 本帖最后由 thedaythegirl 于 2007-7-23 17:32 编辑 ]
晓诺的个人空间 晓诺 发布于2007-10-17 15:31:48
;p
CCTV果冻爽的个人空间 CCTV果冻爽 发布于2007-12-28 06:02:05
我不会。
tanbin2002发布于2007-12-28 13:59:12
因为不熟悉,所有来学习
我来说两句

(可选)

Open Toolbar