Sonarqube with PostgreSQL 的安装与配置及其中学到的知识

news/2024/7/9 20:47:16 标签: postgresql, 数据库

Sonarqube with PostgreSQL 的安装与配置及其中学到的知识

文章目录

  • Sonarqube with PostgreSQL 的安装与配置及其中学到的知识
    • 安装JDK 11
      • JDK 11安装
      • Maven安装
    • Sonarqube with PostgreSQL 的安装与配置
      • 使用sonarqube
      • 使用sonarpython
    • 遇到的一些其他bug

安装JDK 11

查看本地的Java版本,是否存在JDK11

#查看当前java版本
java -version
# 列出当前系统中所有安装的 Java 版本,并显示其路径
update-alternatives --config java

如果需要更改JDK版本

#编辑 ~/.bashrc 或 ~/.bash_profile 文件中,在末尾添加以下行:将 /path/to/your/jdk 替换为你 JDK 的安装路径
export JAVA_HOME=/path/to/your/jdk
#使用 source ~/.bashrc 或 source ~/.bash_profile 使配置生效,或者重新启动终端。

JDK 11安装

使用 Yum 安装 OpenJDK 11

# 更新 Yum 包管理器:
sudo yum update
# 安装 OpenJDK 11:
sudo yum install java-11-openjdk-devel
# 验证安装:
java -version

Maven安装

下载 Maven

  1. 访问 Apache Maven 官方网站。
  2. 在 “Files” 部分找到 Maven 3.8.x 的稳定版本并下载对应的压缩包(通常是 .tar.gz 或 .zip 格式)。可以通过uname -m来查看操作系统架构。
  3. 在命令行或终端中,使用 wget 或浏览器下载工具下载 Maven。

解压安装 Maven

  1. 在命令行中,导航到您下载 Maven 压缩包的目录。

  2. 执行解压命令:

    对于 .tar.gz 格式:

    tar -xvzf apache-maven-x.x.x-bin.tar.gz
    

    对于 .zip 格式:

    unzip apache-maven-3.8.x-bin.zip
    

配置环境变量

  1. 打开 ~/.bashrc~/.bash_profile 文件(具体文件名可能因系统而异)。

  2. 添加 Maven 的 bin 目录到 PATH 变量中,类似于这样:

    export PATH=/path/to/apache-maven-x.x.x/bin:$PATH
    
  3. 使用 source ~/.bashrcsource ~/.bash_profile 来使更改生效,或者关闭并重新打开终端。

验证安装

在命令行中输入 mvn -version,您应该能够看到 Maven 的版本信息,表明安装已成功。which mvn:查找 Maven 的可执行文件的路径

Sonarqube with PostgreSQL 的安装与配置

Sonarqube运行需要配置数据库,mysql在sonarqube-7.9.4下不支持,故使用PostgreSQL

安装工作

# Install the repository RPM:
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm

# Install PostgreSQL:
sudo yum install -y postgresql12-server

# Optionally initialize the database and enable automatic start:
sudo /usr/pgsql-12/bin/postgresql-12-setup initdb
sudo systemctl enable postgresql-12
sudo systemctl start postgresql-12

一些有必要的配置工作

# 编辑 /var/lib/pgsql/data/pg_hba.conf 文件,将认证 ident 改为 md5.
sudo vi /var/lib/pgsql/10/data/pg_hba.conf

可以直接将相应内容换成如下:

# TYPE  DATABASE        USER            ADDRESS                 METHOD

# "local" is for Unix domain socket connections only
local   all             all                                     peer
# IPv4 local connections:
host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#local   replication     postgres                                peer
#host    replication     postgres        127.0.0.1/32            ident
#host    replication     postgres        ::1/128                 ident
#host    replication     sonar           127.0.0.1/32            ident

# 重启应用
sudo systemctl restart postgresql-12

设置database 与 user

# 修改用户 postgres 的默认密码. 所有的数据库命令行必须通过这个用户执行.
sudo passwd postgres
# 使用新的密码登陆用户 postgres.
su - postgres
# 创建新用户 sonar.
createuser sonar
# 进入 PostgreSQL 的命令行 CLI.
psql
# 为 sonar 用户设置密码.
ALTER USER sonar WITH ENCRYPTED password 'sonar';
# 创建数据库 sonar.
CREATE DATABASE sonar WITH ENCODING 'UTF8' OWNER sonar TEMPLATE=template0;
# 退出 PostgreSQL 命令行.
\q
# 退出用户登陆.
exit

为sonarqube配置数据库

# 编辑sonarqube配置文件
vim /home/autoarmor/delivery/java-javascript-python/sonar/sonarqube-7.9.4/conf/sonar.properties

添加如下内容

# DATABASE
sonar.jdbc.username=sonar
sonar.jdbc.password=sonar
sonar.jdbc.url=jdbc:postgresql://localhost/sonar
# WEB SERVER
sonar.web.host=0.0.0.0
sonar.web.port=9000

使用sonarqube

sonarqube 不能通过 root 用户执行因为elasticsearch,所以新建用户.

  1. 创建用户 sonar

    sudo useradd sonar
    
  2. 将 sonar 设置为 /sonarqube-7.9.4 文件夹的 owner.

    # 查看当前文件夹的权限和所属用户
    ll
    # 将文件夹所属改为sonar
    sudo chown -R sonar:sonar sonarqube-7.9.4
    # 将权限提升至可读可写可执行
    sudo chmod -R 755 sonarqube-7.9.4
    
  3. 启动sonarqube

    # 登陆用户 sonar.
    su - sonar
    # 进入sonarqube执行文件目录下
    cd /home/autoarmor/delivery/java-javascript-python/sonar/sonarqube-7.9.4/bin/linux-x86-64
    # sonarqube以控制台方式,启动!启动!
    ./sonar.sh console
    

    可以在localhost:9000这个url访问到控制台

    如果失败可以在查看 /sonarqube-7。9.4/logs 下 web.log、es.log、sonar.log.

使用sonarpython

在启动了sonarqube后,可以到相应Python语言下服务目录下直接启动./scan.sh,可以在同一目录下找到生成的相应的json文件

# 如果显示权限不够就执行这个
sudo chmod -R 777 /home/autoarmor/delivery/java-javascript-python/sonar/bookinfo/productpage/

遇到的一些其他bug

问题

------------------------------------------------------------------
总计                                 1.6 MB/s | 4.5 MB  00:02     
从 file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql 检索密钥


源 "MySQL 5.7 Community Server" 的 GPG 密钥已安装,但是不适用于此软件包。请检查源的公钥 URL 是否配置正确。


 失败的软件包是:mysql-community-libs-compat-5.7.44-1.el7.x86_64
 GPG  密钥配置为:file:///etc/pki/rpm-gpg/RPM-GPG-KEY-mysql

解决

# 使用了远程 URL 直接导入密钥
rpm --import https://repo.mysql.com/RPM-GPG-KEY-mysql-2022
# 查看mysql安装位置
whereis mysql
# 查看 CentOS 上的用户列表
cat /etc/passwd
# 删除用户
sudo userdel username
# 如果被进程占用
sudo kill -9 pid
# 如果一直重新启动服务,先查看,后取消重新启动
watch -n 1 'ps aux | grep mysql'
systemctl disable servicename

http://www.niftyadmin.cn/n/5256817.html

相关文章

网线市场现状与发展趋势预测

随着物联网、5G、云计算等技术的迅速发展,全球对于高速、稳定的网络需求急剧增长,这进一步推动了网线市场的发展。各种网络应用场景,从家庭到企业、数据中心到智能城市,都需要大量的高质量网线来支持数据传输和通信需求。本文将对…

iOS 定位问题解决方法整理

文章目录 一、Assertion failure in -[CLLocationManager setAllowsBackgroundLocationUpdates:] 一、Assertion failure in -[CLLocationManager setAllowsBackgroundLocationUpdates:] 后台定位权限没有开启 错误描述: 错误原因: 定位管理中设置了后…

从头到尾的数据之旅

目录 引言 链表介绍 单向链表的接口实现 结构 创建节点 头插 尾插 头删 尾删 打印 节点查找 节点前插入 节点删除 内存释放 总结 引言 在前面的学习中,我们深入了解了顺序表,通过其增删查改的操作,我们发现了顺序表在某些情况…

Windows环境提示“‘mysql‘ 不是内部或外部命令,也不是可运行的程序或批处文理件” 简易记录

在Windows环境下使用DOS命令窗登入MYSQL,提示“mysql 不是内部或外部命令,也不是可运行的程序或批处理文件。” 这意味着系统无法找到 mysql.exe可执行文件,这是因为 MySQL 没有正确安装或未添加到系统PATH环境变量中所致。 处理方法&#x…

Qt Desktop Widgets 控件绘图原理逐步分析拆解

Qt 是目前C语言首选的框架库。之所以称为框架库而不单单是GUI库,是因为Qt提供了远远超过GUI的功能封装,即使不使用GUI的后台服务,也可以用Qt大大提高跨平台的能力。 仅就界面来说,Qt 保持各个平台绘图等效果的统一,并…

QQ2023备份

需要修改的路径(共3处) 这三处路径中,只有一处是需要修改的 QQPC端-主菜单-设置-基本设置-文件管理 点击上面的“”自定义“”,然后修改路径即可 修改路径后提示 然后等一会才会关干净QQ的相关进程,关闭后才会有自动…

智能优化算法应用:基于鸡群算法3D无线传感器网络(WSN)覆盖优化 - 附代码

智能优化算法应用:基于鸡群算法3D无线传感器网络(WSN)覆盖优化 - 附代码 文章目录 智能优化算法应用:基于鸡群算法3D无线传感器网络(WSN)覆盖优化 - 附代码1.无线传感网络节点模型2.覆盖数学模型及分析3.鸡群算法4.实验参数设定5.算法结果6.参考文献7.MA…

射频功率放大器的参数有哪些

射频功率放大器是射频通信系统中重要的组件,用于将输入的射频信号放大到需要的功率水平。在设计和选择射频功率放大器时,需要考虑多种参数。下面西安安泰将详细介绍射频功率放大器的常见参数。 1、P1dB功率压缩点 当放大器的输入功率比较低时&#xff0c…