官网给出的各种环境下安装postgresql步骤:https://www.postgresql.org/download/
sudo yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo yum install -y postgresql13-server
sudo /usr/pgsql-13/bin/postgresql-13-setup initdb
sudo systemctl enable postgresql-13
sudo systemctl start postgresql-13
yum安装完,默认的pgsql-13的数据目录在/var/lib/pgsql/13/data/
除非/var
目录可用空间很大,否则需要修改数据目录
#创建数据目录&修改属主属组
mkdir -p /data/postgresql-13.0/
chown postgres: -R /data/postgresql-13.0/
#初始化pgsql(指定数据目录)
sudo -u postgres /usr/pgsql-13/bin/initdb --encoding=UTF-8 --username=postgres --pgdata=/data/postgresql-13.0/data
#--encoding 字符集
#--username 启动用户
#--pgdata 数据目录(数据目录如已存在会报错)
记录配置文件路径,修改listen_addresses = '*'
,postgresql启动参数
vim /data/postgresql-13.0/data/postgresql.conf
定义哪些服务器、可以用什么样的方式访问postgresql
vim /data/postgresql-13.0/data/pg_hba.conf
# 如下,允许所有库被远程连接,需要账密验证
# host all all 0.0.0.0/0 md5
修改service文件(修改数据目录)
vim /usr/lib/systemd/system/postgresql-13.service #修改后:Environment=PGDATA=/data/postgresql-13.0/data/
systemctl daemon-reload
#启动postgresql-13
systemctl start postgresql-13
在前面已经修改认证文件/var/lib/pgsql/data/pg_hba.conf
能够使用默认用户postgres不需要密码进入数据库
psql -U postgres
创建新用户
#新建用户sonar,密码xxxxxx
create user sonar with password '自定义密码';
#创建数据库sonar并指定owner为sonar
create database sonar with owner sonar;
#授权sonar用户在数据库sonar拥有所有权限
grant all on database sonar to sonar;
使用\q
命令退出数据库,设置登录数据库需要密码:前三个trust修改为md5
vim /data/postgresql-13.0/data/pg_hba.conf
postgresql、sonarqube(sonarqube6.6以上版本不支持MySQL)
下载地址:https://www.sonarsource.com/products/sonarqube/downloads/historical-downloads/
/usr/local
:yum install unzip
unzip sonarqube-9.9.0.65466.zip
mv sonarqube-9.9.0.65466 /usr/local/
vim /usr/local/sonarqube-9.9.0.65466/conf/sonar.properties
修改:
1.sonar.jdbc.username=sonar
2.sonar.jdbc.password=xxxx
3.sonar.jdbc.url=jdbc:postgresql://localhost:5432/sonar
4.sonar.web.context=/sonar
5.sonar.web.host=0.0.0.0
6.sonar.web.javaOpts=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
7.sonar.web.port=9000
8.sonar.ce.javaOpts=-Xmx512m -Xms128m -XX:+HeapDumpOnOutOfMemoryError
9.sonar.search.javaOpts=-Xmx512m -Xms512m -XX:MaxDirectMemorySize=256m -XX:+HeapDumpOnOutOfMemoryError
10.sonar.search.port=9001
11.sonar.path.data=data
12.sonar.path.temp=temp
useradd sonar
chown -R sonar:sonar sonarqube-9.9.0.65466
#启动
sudo -u sonar /usr/local/sonarqube-9.9.0.65466/bin/linux-x86-64/sonar.sh start
#停止
sudo -u sonar /usr/local/sonarqube-9.9.0.65466/bin/linux-x86-64/sonar.sh stop
#重启
sudo -u sonar /usr/local/sonarqube-9.9.0.65466/bin/linux-x86-64/sonar.sh restart
http://http://10.27.201.84:9000/sonar
开启防火墙:vim /etc/sysconfig/iptables
新增9000端口
并将项目代码使用以下命令进行提交由sonarqube进行分析,完成后,查看相应的分析结果
在git中输入以下代码,-Dsonar.login=后面的值是在sonarqube中生成的
mvn sonar:sonar \
-Dsonar.host.url=http://10.27.201.84:9000/sonar \
-Dsonar.login=squ_cde46383d52c8f82f6607e5ebe134384fa2a725a
sonarqube官方文档
里面明确写出了sonarqube各个版本 对应的 jdk版本 和 支持的数据库
一定要严格按照官网给出的支持情况去选择对应的版本去配置,否则一定会报错!!!
建议使用新版,不要因为postgresql数据库没有使用过去选择旧版,问题会层出不穷!!!
解决方法:yum install --assumeyes unzip
即可
在安装路径下的logs文件夹中,如果运行成功应该会有如图几个日志,如果没有成功运行,点开nohup.log、sonar.log文件去看报错信息。
常见的几个原因:
1、文件的执行权限问题
sonarqube不支持root身份启动运行,只能创建一个用户去启动,需要给sonarqube的安装文件给新用户设置权限,按照本文操作给最外层的sonarqube9.9.0.65466文件设置权限后内层的文件也应该都是修改完的状态,但不排除个别文件没有修改成功,按照日志文件的报错内容找到该文件,重新执行chowm命令完成权限分配,重启sonarqube即可。
2、elasticsearch进程的最大文件描述符
日志中显示max file descriptors [4096] for elasticsearch process is too low
,elasticsearch进程的最大文件描述符从4096增加到至少65535,可以在/etc/security/limits.conf
文件中添加以下行:
A hard nofile 65536
A soft nofile 65536
其中A代表启动sonarqube的用户
3、虚拟内存区域的最大数量 [65530] 太低了
日志中显示max virtual memory areas vm.max_map_count [65530] is too low, increase to at least
解决:vim /etc/sysctl.conf
添加:vm.max_map_count=655360
保存后:sysctl -p
mvn sonar:sonar \
报错BUILD FAILURE