1、概念简介
2、部署安装
2.1、安装过程
- 准备工作
安装包下载:
A:源码包:https://www.postgresql.org/ftp/source/
这里使用的是15.4版本的安装包;

创建操作系统用户:
groupadd postgres
useradd postgres
passwd postgres
- 安装步骤
1)将压缩包上传到 /sostware/;
2)解压:tar -zxvf postgresql-15.4.tar.gz,解压后文件夹为 /software/postgresql-15.4
3)创建安装目录
mkdir -p /software/PostgreSql
4)安装依赖包
yum install -y gcc gcc-c++ zlib-devel zlib-devel
说明:此处如果确实对应的依赖包,下一步的编译安装会报错;
5)编译安装
cd /software/postgresql-15.4
# 安装路径配置,依赖包检查
./configure --prefix=/software/PostgreSql
# 源码编译,world是相关扩展全部打包
make world
# 安装对应的文件到指定路劲
make install-world
6)创建数据目录
mkdir -p /software/PostgreSql/pg_data
7)调整文件夹属主
chown postgres:postgres -R /software/PostgreSql
调整后/software/PostgreSql目录结构:
drwxr-xr-x 2 postgres postgres 4096 Jun 26 16:35 bin
drwxr-xr-x 4 postgres postgres 4096 Jun 26 16:35 include
drwxr-xr-x 4 postgres postgres 4096 Jun 26 16:35 lib
drwxrwxr-x 2 postgres postgres 6 Jun 26 16:40 pg_data
drwxr-xr-x 5 postgres postgres 46 Jun 26 16:35 share
8)初始化数据库
su - postgres
/software/PostgreSql/bin/initdb -D /software/PostgreSql/pg_data/
输出如下信息代表成功:
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
The database cluster will be initialized with locale "en_US.UTF-8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".
Data page checksums are disabled.
fixing permissions on existing directory /software/PostgreSql/pg_data ... ok
creating subdirectories ... ok
selecting dynamic shared memory implementation ... posix
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default time zone ... Asia/Shanghai
creating configuration files ... ok
running bootstrap script ... ok
performing post-bootstrap initialization ... ok
syncing data to disk ... ok
initdb: warning: enabling "trust" authentication for local connections
You can change this by editing pg_hba.conf or using the option -A, or
--auth-local and --auth-host, the next time you run initdb.
Success. You can now start the database server using:
/software/PostgreSql/bin/pg_ctl -D /software/PostgreSql/pg_data/ -l logfile start
9)按照提示启动服务
/software/PostgreSql/bin/pg_ctl -D /software/PostgreSql/pg_data/ -l logfile start
输出信息:
waiting for server to start.... done
server started
2.2、环境配置
- 添加环境变量
在 postgres 操作系统的 .bash_profile 下添加如下配置:
vim ~/bash_profile
# add postgres conffig
export PGHOME=/software/PostgreSql
export PGDATA=$PGHOME/pg_data
export PATH=$PATH:$PGHOME/bin
配置生效:source ~/bash_profile
验证结果:
echo $PGDATA
- 验证登录
[postgres@pg-db-server ~]$ psql
psql (13.6)
Type "help" for help.
postgres=#
说明:此处如果没有提前配置环境变量,则该指令需要全路劲执行;
- 日志监听配置
方式一:直接数据库上执行
alter system set logging_collector=on;
alter system set log_directory='pg_log';
alter system set listen_addresses='*';
方式二:修改配置文件,重启服务
也可以修改数据目录下的postgresql.conf配置文件,加入如下内容:
logging_collector = on
log_directory = 'pg_log'
listen_addresses = '*'
重启服务:
pg_ctl restart -D $PGDATA
参数验证:
show logging_collector;
show log_directory;
show listen_addresses;
- 远程访问配置
PG默认是禁止远程访问的,开启远程访问涉及到两个文件:postgresql.conf、pg_hba.conf,都在数据目录下;
前者可能需要修改listen_addresses参数为’*'(默认一般为localhost),也就是说在主机所有的IP上都监听。
而pg_hba.conf用来配置哪些远程IP可以使用什么样的方式来访问数据库,默认远程访问是全部关闭的,这有点类似于Oracle的sqlnet.ora中的黑白名单设置。
添加如下记录,允许远程访问:
# add new rule
host all all 0.0.0.0/0 md5
此处配置完同样需要重启服务:
pg_ctl restart -D $PGDATA
- 密码修改
postgres=#
postgres=# select current_user;
current_user
--------------
postgres
(1 row)
postgres=#
postgres=# alter user postgres with password '$newpasswd';
ALTER ROLE
postgres=#
说明:此处修改了postgres 管理员密码,可以远程登录时候使用;
============================================ over ============================================

942

被折叠的 条评论
为什么被折叠?



