PostgreSQL 源码安装文档

管理工具-PGAdmin 4

PGAdmin 4 是一款用于管理和维护PostgreSQL数据库的强大工具。 它提供了丰富的功能,帮助数据库管理员和开发人员轻松管理他们的数据库。 下载地址:https://www.pgadmin.org/download/ 本地Windows版本下载:https://www.pgadmin.org/download/pgadmin-4-windows/

Debian 系统源码安装 PostgreSQL

wget [https://ftp.postgresql.org/pub/source/v15.7/postgresql-15.7.tar.gz](https://ftp.postgresql.org/pub/source/v15.7/postgresql-15.7.tar.gz)
tar -zxvf postgresql-15.7.tar.gz 
cd postgresql-15.7/
./configure --prefix=/usr/local/postgresql
make
make install
cd /usr/local/postgresql/

# 编译依赖包,缺少对应工具按需安装
apt install gcc
apt install g++
apt install make
apt-get install libreadline-dev
apt-get install zlib1g-dev

创建系统用户

#创建无密码系统账号 postgres
adduser --disabled-password --gecos "" postgres
#分配目录权限,后续配置数据目录
#切换用户
su - postgres

初始化数据库

#1.新建数据目录
mkdir /usr/local/pgsql/data
#2.更改目录归属权限
chown postgres:postgres /usr/local/pgsql/data
#3.切换到postgres 用户
su - postgres
#4.初始化数据库集群
/usr/local/postgresql/bin/initdb -D /usr/local/pgsql/data/

initdb 参数说明

  • -D 指定集群存放路径,数据库文件目录
  • -U 指定数据库管理员用户名,不指定默认使用当前系统用户
  • -W 设置管理员登录密码,不指定默认无密码

数据库主配置文件 postgresql.conf

listen_addresses = 'localhost'   # 默认仅本机访问;改为'*'允许所有IP,或指定固定IP
port = 5432
max_connections = 100             # 最大连接数,根据服务器内存与业务调整
  • shared_buffers:内存缓冲区,直接影响数据库性能与磁盘IO,数值越大缓存越多,磁盘交互越少。

访问权限配置 pg_hba.conf

控制客户端访问权限,配置项由 TYPE, DATABASE, USER,ADDRESS, METHOD 五部分组成。 示例:允许192.168.1.0/24网段,postgres用户访问所有数据库,密码md5校验

host    all        postgres        192.168.1.0/24         md5

启动数据库服务

# -D 数据库集群路径,-l 日志文件
/usr/local/postgresql/bin/pg_ctl -D /usr/local/pgsql/data/ -l logfile start

配套操作:stop 停止数据库服务

PostgreSQL 后台进程说明

启动后默认6个核心进程:

  1. postgres:主监听服务进程
  2. checkpointer:检查点进程,定期刷数据块到磁盘
  3. background writer:后台写进程,异步刷数据块,降低集中IO压力
  4. walwriter:WAL预写日志刷盘进程
  5. autovacuum launcher:自动清理调度进程
  6. logical replication launcher:逻辑复制调度进程

测试登录与建表

# psql 命令行登录
/usr/local/postgresql/bin/psql -d postgres -U postgres -h localhost -p 5432

参数说明:

  • -d 数据库名,初始化默认自带postgres库
  • -U 登录用户名
  • -h 数据库IP,localhost可省略
  • -p 端口,默认5432可省略

测试SQL:

create table student(id integer, name varchar(32), sex char,  startSchooltime timestamp);

图片引用标记保留,直接放入md文档即可: image-20240811173142461 image-20240811173437587 image-20240811174107107 image-20240811174913160 image-20240811175438954

参考: https://developer.aliyun.com/article/547138