一.简介

PostgreSQL是一个功能强大的开源关系型数据库管理系统,官方安装指导,官方使用文档

二安装

1.postgresql12安装

#redhar/centos7
yum install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm
yum install -y postgresql12-server
/usr/pgsql-12/bin/postgresql-12-setup initdb
systemctl enable postgresql-12
systemctl start postgresql-12
#检查端口
sudo ss -tlunp | grep 5432
#或者
#配置postgresql12yum源
cat >/etc/yum.repos.d/pgsql.repo<<'EOF'
[psql]
name=psql repo
baseurl=https://mirror.tuna.tsinghua.edu.cn/postgresql/repos/yum/12/redhat/rhel-7.4-x86_64/
enabled=1
gpgcheck=0
EOF
#安装pgsql12
yum -y install postgresql12-server
#初始化数据库
postgresql-12-setup initdb
#启动数据库
systemctl enable postgresql-12
systemctl start postgresql-12
#检查端口
ss -tlunp | grep 5432

2.登录

#登录
sudo -u postgres psql
#或切换到postgres用户后登录
su - postgres
psql
#退出
\q

3.修改密码

psql12安装完成后,默认的超级用户是postgres 密码是安装过程中设置的,通常是不会自动显示的。如果你忘记了密码,可以通过以下步骤找回。

#登录
sudo -u postgres psql
#停止服务
sudo service postgresql stop
#更改密码
ALTER USER postgres WITH PASSWORD 'newpassword';
\q
#重启服务
sudo service postgresql start

三.使用

1.创建用户和数据库

#创建用户、数据库
su - postgres
psql
create user sonar with password 'alibaby';
create database sonar owner sonar;
grant all privileges on database sonar to sonar;
\q

2.添加访问控制

#配置文件修改访问控制 添加对sonar用户和sonar库的信任
cd /var/lib/pgsql/12/data/
sed -i '/# IPv4 local connections:/a host  sonar   sonar    127.0.0.1/32     trust' pg_hba.conf  
#重启数据库
systemctl restart postgresql-12
#登录测试 提示口令输入密码alibaby,正常登录说明没问题
su - postgres
psql -h127.0.0.1 -Usonar -dsonar -W
\q
exit

3.常用运维命令

#查看数据库版本信息
select version();
#查看数据库的启动时间:
select pg_postmaster_start_time();
#查看最后load配置文件的时间:
select pg_conf_load_time();
#显示当前数据库时区
show timezone;
#查看数据库列表
\l
#查看表空间列表
\db
#查看表定义
\d
#查看表大小
\dt+
#查看用户:
\du
#切换连接的数据库
\c 数据库名
#查看数据库最大连接数
show max_connections;
#查看数据库当前连接数
select count(*), usename from pg_stat_activity group by usename;
#备份数据库:
pg_dump -u 用户名 数据库名 > 备份文件名.sql
#恢复数据
psql -u 用户名 -d 数据库名 < 备份文件名.sql
#慢查询日志
通过配置慢查询日志功能,可以记录执行时间超过一定阈值的sql查询,有助于分析和优化性能问题。
#查看正在执行的sql任务
通过查询pg_stat_activity视图,可以查看当前正在执行的sql任务及其状态。