有些服务是不支持 MySQL 的,PostgreSQL 就是备选

安装依赖

1
2
yum install gcc gcc-c++ openssl openssl-devel pcre pcre-devel zlib zlib-devel patch make
yum install readline-devel

下载解压

1
2
wget  --no-check-certificate https://ftp.postgresql.org/pub/source/v15.0/postgresql-15.0.tar.gz
tar -zxvf postgresql-15.0.tar.gz

编译安装

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cd postgresql-15.0
./configure --prefix=/app/service/pgsql
make && make install

./configure --prefix=/app/service/pgsql \
--with-pgport=5432 \
--with-openssl
--with-tcl \
--with-perl \
--with-python \
--with-libxml \
--with-libxslt \
--with-ossp-uuid \
--with-pam --with-ldap

开始使用

使用之前可以先设置环境变量,让命令可以全局使用,否则就要带上完整路径

环境变量

1
2
3
echo "export PGSQL_HOME=/app/service/pgsql" >> ~/.bashrc
echo "export PATH=\$PATH:\$PGSQL_HOME/bin" >> ~/.bashrc
source ~/.bashrc

初始化数据库

1
2
3
#创建数据目录和日志目录
mkdir -pv /app/data/pgsql && mkdir -pv /app/logs/pgsql
initdb -D /app/data/pgsql --encoding=UTF8 --lc-collate=en_US.UTF-8 --lc-ctype=en_US.UTF-8

修改配置文件

基本配置:/app/data/pgsql/postgresql.conf

1
2
listen_addresses = '*'
log_directory = '/app/logs/pgsql'

grep -Ev “^$|#” /app/data/pgsql/postgresql.conf

访问权限:/app/data/pgsql/pg_hba.conf

服务启停

1
2
3
pg_ctl -D /app/data/pgsql -l logfile start
pg_ctl -D /app/data/pgsql -l logfile stop
pg_ctl -D /app/data/pgsql -l logfile restart

常用命令

1
2
#先登录数据库
psql -h 127.0.0.1 -d postgres -U app -p 5432
命令 说明
\l 查看数据库列表
\c 数据库名 切换数据库
\du 查看用户
\dt 查看表
\d 查看表结构
\di 查看索引
\c - user 切换用户

实践

创建 SonarQube 数据库及用户

1
2
3
4
5
6
7
8
#新建用户 sonarqube,密码xxxxxx
create user sonarqube with password '12345678';
#创建数据库 sonarqube 并指定 owner 为 sonarqube
create database sonarqube with owner sonarqube;
#授权 sonarqube 用户在数据库 sonarqube 拥有所有权限
grant all on database sonarqube to sonarqube;
GRANT ALL PRIVILEGES ON DATABASE sonarqube TO sonarqube;
ALTER USER sonarqube SET search_path to sonarqube;

https://www.runoob.com/postgresql/postgresql-tutorial.html