CentOS 下 SonarQube 6.7 的下载、配置、问题排查
注意,对于 SonarQube 6.7 这个高版本,MySQL 版本必须在 5.6 及以上,Java 版本必须在 1.8 及以上,否则会出现问题。我尝试了最新的 MySQL 8.0,并未运行成功,因此建议使用 MySQL 5.6 或 5.7。
关于 Java 与 MySQL,请参考以下两篇文章:
Java 的下载、安装、配置
MySQL 5.6 基于 RPM 的下载、安装、配置
本文将 SonarQube 目录放在 /usr/local/sonarqube 文件夹下,读者请根据自身需要修改对应路径。
下载
安装
# 解压下载后的压缩包
unzip sonarqube-6.7.3.zip
# 将解压后的文件夹移动到 /usr/local 文件夹下
mv ./sonarqube-6.7.3 /usr/local
# 建议在 sonarqube 文件夹下放置一个 java 环境,原因会在问题排查部分说明
mv ./jdk1.8.0_171 /usr/local/sonarqube-6.7.3
配置
- Java
# 打开 wrapper.conf 文件
vim /usr/local/sonarqube-6.7.3/conf/wrapper.conf
# 修改 jdk 启动目录
wrapper.java.command=/usr/local/sonarqube-6.7.3/jdk1.8.0_121/bin/java
- MySQL
登入 MySQL 数据库,新建名为 sonar 的数据库及用户,并授权。
# 新建数据库 sonar
CREATE DATABASE sonar CHARACTER SET utf8 COLLATE utf8_general_ci;
# 新建用户 sonar 并设置密码 sonar
CREATE USER 'sonar' IDENTIFIED BY 'sonar';
# 授权
GRANT ALL ON sonar.* TO 'sonar'@'%' IDENTIFIED BY 'sonar';
GRANT ALL ON sonar.* TO 'sonar'@'localhost' IDENTIFIED BY 'sonar';
FLUSH PRIVILEGES;
- SonarQube
# 打开 sonar.properties 文件
vim /usr/local/sonarqube-6.7.3/conf/sonar.properties
# 修改 MySQL 相关配置
sonar.jdbc.username=sonar #数据库用户
sonar.jdbc.password=sonar #数据库密码
sonar.jdbc.url=jdbc:mysql://localhost:3306/sonar?useUnicode=true&characterEncoding=utf8&rewriteBatchedStatements=true&useConfigs=maxPerformance&useSSL=false
问题排查
由于高版本的 SonarQube 加入了 elasticsearch,遇到不能以 root 用户启动的错误,报错信息如下:
java.lang.RuntimeException: can not run elasticsearch as root
at org.elasticsearch.bootstrap.Bootstrap.initializeNatives(Bootstrap.java:106) ~[elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.bootstrap.Bootstrap.setup(Bootstrap.java:195) ~[elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.bootstrap.Bootstrap.init(Bootstrap.java:342) [elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.bootstrap.Elasticsearch.init(Elasticsearch.java:132) [elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.bootstrap.Elasticsearch.execute(Elasticsearch.java:123) [elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.cli.EnvironmentAwareCommand.execute(EnvironmentAwareCommand.java:70) [elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.cli.Command.mainWithoutErrorHandling(Command.java:134) [elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.cli.Command.main(Command.java:90) [elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:91) [elasticsearch-5.6.3.jar:5.6.3]
at org.elasticsearch.bootstrap.Elasticsearch.main(Elasticsearch.java:84) [elasticsearch-5.6.3.jar:5.6.3]
解决方法:
- 增加一个名为 elsearch 的新用户。
groupadd elsearch # 增加 elsearch 用户组
useradd elsearch -g elsearch # 增加 elsearch 用户
su - elsearch # 切换至 elsearch
- 修改权限,由于我们要使用 elsearch 用户启动 SonarQube,所以需要把用到的所有资源给到 elsearch 用户,否则会有权限问题。
chown -R elsearch sonarqube-6.7.3 # 把sonar资源分配给用户elsearch
chgrp -R elsearch sonarqube-6.7.3 # 把sonar资源分配给组elsearch
启动
# 切换至 elsearch 用户
su - elsearch
# 启动 SonarQube 服务
./usr/local/sonarqube-6.7.3/bin/linux-x86-64/sonar.sh start
参考文档
如有错误,还请在评论中告知,帮助我修改,感谢!
原文链接:https://www.cnblogs.com/zhenxiaoyuan/p/9111547.html - 转载请注明出处