说明
需要在内网的服务器上搭建sonarqube服务,发现最新的sonarqube 8.3版本居然只支持三个数据库了:Oracle、SQL Server和Postgresql。
没有之前习惯使用的Mysql了,三选一,相对来说Postgresql最轻量且免费,就选它了。
由于对Postgresql不怎么熟,又是离线安装,作一下安装记录笔记。
下载
下载地址:https://www.postgresql.org/download/
有不同操作系统对应的版本,这里选择自己使用的Red Hat系列。
之后选择对应的数据库版本和操作系统版本,说明文档上在线通过yum安装,往下拉。
在Direct RPM download一节会有安装包的下载地址。
点进去,这里我们选择稳定的12及对应操作系统为RHEL 7的版本,
最终应该有以下几个包,分别进行下载:
安装
直接进行安装,这里我没有安装 postgresql12-contrib。
rpm -ivh postgresql12-libs-12.2-2PGDG.rhel7.x86_64.rpm
rpm -ivh postgresql12-12.2-2PGDG.rhel7.x86_64.rpm
rpm -ivh postgresql12-server-12.2-2PGDG.rhel7.x86_64.rpm
安装很顺利,没有任何依赖和错误需要解决。
初始化
/usr/pgsql-12/bin/postgresql-12-setup initdb
启动服务
systemctl enable postgresql-12systemctl start postgresql-12
配置IP和端口
vi /var/lib/pgsql/12/data/postgresql.conf
按需修改以下两行:
# *表示监听所有的ip信息,也可以使用localhost、127.0.0.1等listen_addresses ='*'# 默认的监听端口为5432,也可以换为其它的port =5432
修改同目录下的pg_hba.conf文件,设置允许访问的ip,这里我因为是测试服务器,所以设置所有:
host all all 0.0.0.0/0md5
重启:
systemctl restart postgresql-12
这期间可以用以curl命令测试服务是否正常,可以在其它机器指定ip访问测试远程访问是否以开放,显示以下类似信息表示正常:
curl 127.0.0.1:5433curl:(52)Emptyreply fromserver
默认用户与密码方式登录
经过上面配置已经可以远程使用用户名、密码方式登录postgresql,但是本机反而不能使用(本机依然命令行免密方式),导致如果应用在同一台机器使用jdbc连接将失败,搭建sonarqube服务过程中就踩了这个坑。
因此修改postgresql自带超级用户postgres的密码方便后续使用。
切换到postgres用户,并进入psql命令行,如果修改了端口,需要带上端口号:
su -postgres
psql -p 5433
修改密码:
alter user postgres withpassword ‘postgres’;
依然修改_hba.conf文件,使本机也使用密码方式:
#load all all peerlocalall all md5
#host all all 127.0.0.1/32 identhost all all 127.0.0.1/32md5
创建sonar用户
进入psql命令行,如果已修改为密码方式,需要输入密码:
su -postgres
psql -p 5433
创建用户
create user sonar withpassword 'sonar';
创建数据库
创建sonar数据库:
create database sonar;
将sonar数据库授权给前面创建的sonar用户:
grant all privileges on database sonar to sonar;
至此,可以在sonarqube中配置此postgresql的jdbc信息进行使用了。