Linux下Jira+Mysql 安装 经验谈
我刚开始对Jira配置Mysql老不成功sdlkfj7,经过多次检查后发现问题所在: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:
MySQL --user=root MySQL
创建数据库:
create database jiradb character set 'UTF8';
创建用户:
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;
如果用下面的语句,’jirauser‘并不会获得任何权限,我已试过多次了:
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;
可以到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
检查修改后再重新启动服务。
sdlkfj6
遇到问题,我也习惯用google找解决办法,但也不一定能找到相应的解决办法,毕竟软件方面的问题比较复杂,每个人所遇到问题的原因各有不同,遇到问题时还是要自己多想想。
[ 本帖最后由 NODDY820 于 2007-7-19 11:06 编辑 ] 多谢楼主与大家分享,顶一下~~~ 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的提醒!谨记谨记~~
回复 #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;
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 编辑 ] ;p 我不会。 因为不熟悉,所有来学习
页:
[1]