见字如面,已入初秋。岁月逐渐放缓了脚步,不忍带走零散的夏意。天气渐凉,草木摇落,转眼间,2021年仅剩下三分之一。再见了,8月,你好啊,9月。

SonarQube为静态检查工具,PostgreSQL为关系型数据库。本篇主要给大家分享SonarQube和PostgreSQL的安装与配置。

前言

环境:

  • MacBook Pro(11.5.1)
  • PostgreSQL(13)
  • SonarQube (8.9.2)
  • JDK11

因为 SonarQube 8.0以上版本不支持 MySQL,所以改用PostgreSQL数据库。

一、PostgreSQL安装

1.1. 安装PostgreSQL

首先进入PostgreSQL官网,或者点击该网址添加链接描述查看与Mac版本匹配的PostgreSQL版本(本文以mac为例),如下图,我的Mac版本是11.5.1,所以我选择的是version13,然后点击 Download the install,找到对应的版本进行下载。
在这里插入图片描述
下载完成之后,就直接Next进行安装,直接默认安装路径即可。
在这里插入图片描述
在这里插入图片描述
需要设置一个密码,如 123456
在这里插入图片描述
PostgreSQL默认的端口号为 5432
在这里插入图片描述
在这里插入图片描述
Launch Stack Builder at exit可以不勾选,直接点击Finish即可。
在这里插入图片描述
安装完成之后,会看到启动台上有一些应用,其中:

  • psql是PostgreSQL数据库的命令行交互工具

  • pgAdmin是Postgre SQL数据库的图形化管理工具

在这里插入图片描述

1.2 psql

当点击SQL Shell(psql)时,会出现下面的界面,直接回车即可,下图红色箭头的地方需要输入密码再回车。
在这里插入图片描述

1.3 pgAdmin 4

打开之后,会看到下面的界面
在这里插入图片描述
至此,PostgreSQL数据库已经安装完成

1.2.创建sonar用户及sonar数据库

(1)创建用户——sonar
双击Login/Group Roles——>在General中输入Name:sonar——>在Definition中输入密码:123456——>在Privileges中勾选(可参考下图步骤)
在这里插入图片描述
在这里插入图片描述
(2)创建sonar数据库
双击Databases——>在General中输入Name:sonar
在这里插入图片描述
切换用户连接
右击PostgreSQL13 ——Disconnect Server

在这里插入图片描述
右击PostgreSQL13 ——Properties…
在这里插入图片描述
右击PostgreSQL13——Connect Server,输入密码
在这里插入图片描述

二、SonarQube安装

2.1 SonarQube下载

在官网中添加链接描述选择合适的版本进行下载,本文以SonarQube 8.9.2为例。
在这里插入图片描述
下载完成之后,将文件mv到/usr/local目录下,
在配置文件中 配置sonar的路径:

open -e ~/.bash_profile
export SONAR_HOME=/usr/local/sonarqube-8.9.2.46101

如下图所示:
在这里插入图片描述

2.2 Sonar相关配置

在路径下/usr/local/sonarqube-8.9.2.46101/conf找到下面的文件进行配置。
在这里插入图片描述
(1)sonar.properties
sonar.properties文件中,需要输入如下信息

sonar.jdbc.url=jdbc:postgresql://localhost/sonar?currentSchema=public # sonar表示数据库名字

sonar.host.url=http://localhost:9000/sonarqube
sonar.jdbc.username=sonar #数据库用户名
sonar.jdbc.password=123456 # 密码
sonar.login=admin #登陆sonarqube的名字
sonar.password=admin #登陆sonarqube的密码

如下图所示
在这里插入图片描述
(2)wrapper.conf
wrapper.conf文件中输入JDK的绝对路径,注意一定要绝对路径

wrapper.java.command=/Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home/bin/java

在这里插入图片描述

2.3 启动SonarQube

在路径下:/usr/local/sonarqube-8.9.2.46101/bin/macosx-universal-64找到sonar.sh文件,执行./sonar.sh start从而开启sonarqube server
在这里插入图片描述
在浏览器中输入:http://127.0.0.1:9000/projects,页面中将会提示输入用户名和密码,直接输入在配置中设置的用户名和密码:admin和admin,如果完成之后,会出现下面的页面,提示更新密码:
在这里插入图片描述
更新完成之后,就会看到下面的界面,表示启动成功。
在这里插入图片描述

三、Q&A

3.1 启动 SonarQube失败问题

如果启动 SonarQube之后,虽然命令行中显示SonarQube已经启动,但是当输入网址时,依然是访问不到,遇到这种问题我们需要查看 log,/usr/local/sonarqube-8.9.2.46101/logs,找到对应的log日志,
在这里插入图片描述
(1)第一种错误情况:Unable to start JVM: No such file or directory (2)
在这里插入图片描述
表述JDK 路径写的不正确,在wrapper.conf文件中,wrapper.java.command需要写绝对路径,如

wrapper.java.command=/Library/Java/JavaVirtualMachines/jdk-11.0.12.jdk/Contents/Home/bin/java

(2)第二种错误情况:配置文件中已经写了
JDK的绝对路径,但是log中依然报错:SonarQube requires Java 11 to run
在这里插入图片描述
说明安装的 JDK版本不匹配,因为安装的SonarQube版本是8.9.2,需要JDK 版本为11,所以解决方法就是再安装一个JDK11,将JDK11的安装路径写入wrapper.conf文件中。如果你不太了解在Mac中安装多个版本的JDK,可以参考小编的另一篇博客:Mac中安装多个JDK版本
(3)第三种错误情况:SonarQube已经真正启动了,但是输入网址之后依然访问不到网页,当我们检查sonar log时 ,并没有什么问题,此时我们应该查看对应logs文件中的web.log
在这里插入图片描述
此时会看到web.log中出现:Fail to connect to database
在这里插入图片描述
解决方法:在安装完数据后,并没有创建名为sonar的用户和名为sonar的数据库,数据库的用户名和数据库是什么不重要,重要的是,sonarQube配置文件中设置的用户名和数据库的名字要和数据库中的保持一致。

九月,你好。愿你能披荆斩棘,活得肆意,亦能遇到了解,收获温柔。也愿你在朝起暮落里,撑一支长篙,满载一船秋色,与过往握手言和。

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐