一、版本和环境
选择要安装的版本进行下载:PostgreSQL: File Browser
我选的版本是:postgresql-14.7.tar.gz 操作系统是:CentOS-stream9
二、安装依赖包
在要安装postgresql数据库的Linux服务器(hostname:hdp001)上执行以下命令安装所需要的依赖包:
yum install -y perl-ExtUtils-Embed readline-devel zlib-devel pam-devel libxml2-devel libxslt-devel openldap-devel python-devel gcc-c++ openssl-devel cmake
三、安装postgres
1、上传安装包并将postgresql-14.7.tar.gz解压,我是将安装包传的目录/home/appview/dev_package,目录自己决定
[root@hdp001 dev_package]# cd /home/appview/dev_package/ [root@hdp001 dev_package]# ll -rw-r--r-- 1 appview appview 29070900 7月 6 16:55 postgresql-14.7.tar.gz [root@hdp001 pgsql]# pwd
2、解压压缩包
[root@hdp001 pgsql]# tar -zxvf postgresql-14.7.tar.gz # 解压过程略过了,太多了
3、进入解压后的文件夹
[root@hdp001 dev_package]# cd postgresql-14.7. [root@hdp001 postgresql-14.7.]# ls aclocal.m4 configure contrib doc HISTORY Makefile src config configure.in COPYRIGHT GNUmakefile.in INSTALL README
4、编译postgresql源码
[root@hdp001 postgresql-14.7.]# ./configure ############################################################# 这里我选择默认的安装目录所有不指定了,默认为/usr/local/pgsql -–prefix=prefix 安装到prefix指向的目录; --without-readline 选项的作用是禁用对Readline库的使用,用于命令行编辑和历史记录 我在内网安装的时候通常加上这个,不加的话会报错,无法进行编译下面这个 ############################################################ # 以下根据需求自行选择 -–bindir=dir 安装应用程序到dir;默认为prefix/bin -–with-docdir=dir 安装文档到dir;默认为prefix/doc -–with-pgport=port 设置默认的服务器端网络连接服务TCP端口号 -–with-tcl 为服务端提供Tcl存储过程支持 -–with-perl 为服务端提供Perl存储过程支持 -–with-python 为服务端提供Python存储过程支持 [root@hdp001 postgresql-14.7.]# make # 过程略过 [root@hdp001 postgresql-14.7.]# make install # 过程略过 [root@hdp001 psql]# ls bin include lib share
四、创建用户组postgres并创建用户postgres
[root@hdp001 postgresql-14.7.]# groupadd postgres [root@hdp001 postgresql-14.7.]# useradd -g postgres postgres [root@hdp001 postgresql-14.7.]# id postgres 用户id=1002(postgres) 组id=1002(postgres) 组=1002(postgres)
五、创建postgresql数据库的数据主目录并修改文件所有者
这个数据库主目录是随实际情况而不同,这里我们的主目录是在/pgsql/postgresql/data目录下:
[root@hdp001 postgresql-14.7]# cd /usr/local/pgsql/ [root@hdp001 pgsql]# mkdir data [root@hdp001 pgsql]# chown -R postgres:postgres /usr/loc