初始化
# 初始化DB
sudo /usr/pgsql-15/bin/postgresql-15-setup initdb
# 开机启动|启动|重启|状态|停止 命令
sudo systemctl enable postgresql-15
sudo systemctl start postgresql-15
sudo systemctl restart postgresql-15
sudo systemctl status postgresql-15
sudo systemctl stop postgresql-15
配置环境变量
#编辑
vim /etc/profile
#PGSQL_HOME
export PGSQL_HOME=/usr/pgsql-15
export PATH=$PATH:$PGSQL_HOME/bin
#生效配置
source /etc/profile
切换用户、创建数据库/用户
进入命令行
#切换用户
su - postgres
psql
#创建DB
create database test_db -U postgres ;
#创建用户
create user test with passoerd 'test';
# 设置密码(自由发挥):postgres
alter user postgres with password 'postgres';
配置远程连接
#编辑
vim /var/lib/pgsql/15/data/postgresql.conf
修改参数:
listen_addresses = '*'
# 编辑配置
vim /var/lib/pgsql/15/data/pg_hba.conf
# 添加内容
host all all 0.0.0.0/0 md5
#重启
sudo systemctl restart postgresql-15
测试远程连接
由于安装时未设置默认用户postgres的密码,上图配置中添加了MD5密码规则,所以,需要先为postgres设置密码,再测试远程连接。
[root@localhost pgsql-15]# psql -h 127.0.0.1 -p 5432 -U postgres
Password for user postgres:
psql: error: connection to server at "127.0.0.1", port 5432 failed: FATAL: password authentication failed for user "postgres"
[root@localhost pgsql-15]# su - postgres
Last login: Thu Sep 14 02:09:35 PDT 2023 on pts/1
-bash-4.2$ psql
psql (15.4)
Type "help" for help.
postgres=# alter user postgres with password 'postgres';
ALTER ROLE
postgres=# \q
-bash-4.2$ exit
logout
[root@localhost pgsql-15]# psql -U postgres -h localhost -p 5432
Password for user postgres:
psql (15.4)
Type "help" for help.
postgres=#
目录
软件安装目录 /usr/pgsql-15/bin
数据目录 /var/lib/pgsql/15/data
文件及目录说明
pg_hba.conf:#认证配置文件,配置了允许哪些IP访问数据库,及认证方式等信息。pg_ident.conf:#"ident"认证方式的用户映射文件。PG_VERSION:#记录了数据库版本号信息。postgresql.auto.conf:#作用同 postgresql.conf ,优先级高于postgresql.conf,在数据库中通过alter命令更改的参数记录在此文件中。postgresql.conf:#数据库实例主配置文件,基本上所有的数据库参数配置都在此文件中。postmaster.opts:#记录数据库启动命令。postmaster.pid:#数据库进程文件,数据库启动时被创建,关闭时消失。base:#该目录包含数据库用户所创建的各个数据库,同时也包括postgres、template0和template1的pg_defaulttablespace。global:#该目录包含集群范围的各个表和相关视图。(pg_database、pg_tablespace)pg_dynshmem:#该目录包含动态共享内存子系统使用的文件。pg_commit_ts:#该目录包含已提交事务的时间。pg_logical:#该目录包含逻辑解码的状态数据。pg_multixact:#该目录包含多事务状态数据。(等待锁定的并发事务)pg_notify:#该目录包含LISTEN/NOTIFY状态数据。pg_replslot:#该目录包含复制槽数据。pg_snapshots:#该目录包含导出的快照。pg_stat:#该目录包含统计子系统的永久文件。pg_stat_tmp:#该目录包含统计子系统的临时文件。pg_subtrans:#该目录包含子事务状态数据。pg_tblspc:#该目录包含表空间的符号链接。pg_twophase:#该目录包含预备事务的状态文件。pg_wal:#该目录包含wal日志。pg_xact:#该目录包含事务提交状态数据。