网站首页 > 文章精选 正文
一 PostgreSQL编译安装
1.1 下载源码包
在PostgreSQL官方主页
https://www.postgresql.org/ftp/source/下载区选择所需格式的源码包下载。
cd /web
wget https://ftp.postgresql.org/pub/source/v15.2/postgresql-15.2.tar.gz --no-check-certificate
下载之后解压
tar xf postgresql-15.2.tar.gz
1.2 运行configure程序配置编译选项
安装必要的依赖包
yum groupinstall "Development tools" -y
yum install -y bison flex readline-devel zlib-devel
编译
./configure --prefix=/web/pgsql15/ --with-pgport=5432
1.3 编译选项解释
在源代码目录中运行configure --help命令查看支持的配置编译选项:
cd postgresql-15.2
./configure --help|less
PostgreSQL支持的编译选项众多,常用的编译选项有:
- --prefix=PREFIX:指定安装目录,默认的安装目录为”/usr/local/pgsql“;
- --includedir=DIR:指定C和C++的头文件目录,默认的安装目录为”PREFIX/include“;
- --with-pgport=PORTNUM:指定初始化数据目录时的默认端口,这个值可以在安装之后进行修改(需要重启数据库),修改它只在自行制作RPM包时有用,其它时候意义并不大;
- --with-blocksize=BLOCKSIZE:指定数据文件的块大小,默认的是8kB,如果在OLAP场景下可以适当增加这个值到32kB,以提高OLAP的性能,但在OLTP场景下建议使用8kB默认值;
- --with-segsize=SEGSIZE:指定单个文件的大小,默认是1GB;
- --with-wal-blocksize=BLOCKSIZE:指定WAL文件的块大小,默认是8kB;
- --with-wal-segsize=SEGSIZE:指定单个WAL文件的大小,默认是16MB。
由于”--with-xxx-size“这4个参数都只能在编译的时候指定,所以在修改它们之前,请提前做好规划和严格的测试,否则后期再做调整,只能将数据导出重新导入,如果数据量很大会令人抓狂。
1.4 编译安装
在Linux中,PostgreSQL的编译和安装使用GNU make程序,编译使用gmake命令,安装使用gmake install命令。
执行gmak或gmake world程序进行编译,如下所示:
gmake
gamke install
查看安装的PostgreSQL版本的命令如下所示:
/web/pgsql15/bin/postgres --version
1.5 设置软链接
有时候我们为了方便工作,会自己写一些shell或Python脚本处理一些定时任务,经常会通过类似/web/pg15.x这样的全路径调用一些工具,使用环境变量也会有一些其它的问题存在,为了尽可能的避免这种麻烦,创建一个/web/pgsql的软链接指向当前版本即可,命令如下:
ln -s /web/pgsql15 /web/pgsql
当进行了版本变更之后,不需要调整大量的脚本,只需要修改这个软链接即可。
tree -L 1 /web/pgsql15/
1.6 创建操作系统用户
groupadd -g 1005 postgres
useradd -g 1005 -u 1005 postgres
id postgres
1.7 创建数据目录
也就是在磁盘上初始化一个数据的存储区域,通常我们称之为数据目录。
mkdir -p /web/data_5432
chown -R postgres.postgres /web/data_5432
1.8 初始化数据目录
su - postgres
/web/pgsql15/bin/initdb -D /web/data_5432/
1.9 启动和停止数据库服务
启动
su - postgres
/web/pgsql15/bin/pg_ctl -D /web/data_5432/ start
查看状态
/web/pgsql15/bin/pg_ctl -D /web/data_5432/ status
停止
/web/pgsql15/bin/pg_ctl -D /web/data_5432/ stop
登录数据库并查看所有数据库
/web/pgsql/bin/psql
\l
至此,PostgreSQL数据库安装完成。感谢观看。
猜你喜欢
- 2025-05-21 Zabbix7 keepalived VIP高可用部署 对接 OceanBase高可用集群
- 2025-05-21 GORM 完全指南:从入门到精通,轻松玩转 MySQL 数据库
- 2025-05-21 PostgreSQL 技术内幕(五)Greenplum-Interconnect模块
- 2025-05-21 Windows深度解析: WSL 1 与 WSL 2 的核心差异及选择指南
- 2025-05-21 PostgreSQL技术大讲堂 - 第44讲:pg流复制部署
- 2025-05-21 什么是网络端口?或许工作10年的人也很难100%理解
- 2025-05-21 运维日记|postgresql-利剑出鞘-psql出手,天下我有
- 2025-05-21 Linux 防火墙怎么开?3 分钟学会放行 80 端口,再也不怕远程连接被拒
- 2025-05-21 PostgreSQL轻量级连接池 PgBouncer
- 2025-05-21 Docker安装与管理postgresql
- 05-22离线在docker镜像方式部署ragflow0.17.2
- 05-22【Docker 新手入门指南】第七章:镜像使用
- 05-22使用Docker制作OpenJDK镜像
- 05-22使用Dockerfile build镜像
- 05-22一文详解Docker轻量级虚拟化,镜像和容器
- 05-22三 docker 镜像命令
- 05-22Docker-使用Dockerfile 定制镜像
- 05-22Linux日常小技巧Docker打包
- 最近发表
- 标签列表
-
- newcoder (56)
- 字符串的长度是指 (45)
- drawcontours()参数说明 (60)
- unsignedshortint (59)
- postman并发请求 (47)
- python列表删除 (50)
- 左程云什么水平 (56)
- 计算机网络的拓扑结构是指() (45)
- 编程题 (64)
- postgresql默认端口 (66)
- 数据库的概念模型独立于 (48)
- 产生系统死锁的原因可能是由于 (51)
- 数据库中只存放视图的 (62)
- 在vi中退出不保存的命令是 (53)
- 哪个命令可以将普通用户转换成超级用户 (49)
- noscript标签的作用 (48)
- 联合利华网申 (49)
- swagger和postman (46)
- 结构化程序设计主要强调 (53)
- 172.1 (57)
- apipostwebsocket (47)
- 唯品会后台 (61)
- 简历助手 (56)
- offshow (61)
- mysql数据库面试题 (57)