Postgresql官网的安装推荐方式是通过包管理器方式来安装,并且最新版本的已经不提供二进制包,只提供源码包,需要自行编译来进行安装,网上教程眼花缭乱,因此下面通过自己实际操作来演示下银河麒麟v10如何编译安装postgresql
环境准备:
postgresql-16.3.tar.gz
银河麒麟V10

源码下载地址:https://www.postgresql.org/ftp/source/
1、首先安装依赖包,命令如下:
yum install readline-devel libicu-devel perl* zlib*
2、执行命令编译并安装postgresql,如下:
./configure --prefix=/usr/local/postgresql16.3makemake install
安装后,在目录postgresql16.3下可以看到编译后的文件,如图:

3、创建用户和用户组,给安装目录赋权,命令如下:
groupadd postgresuseradd -m -g postgres postgreschown postgres:postgres -R usr/local/postgresql16.3
4、创建数据目录,并设置属主以及属组,如下:
mkdir -p data/postgresql/datachown -R postgres:postgres /data/postgresql
5、初始化数据库,首先登录postgres,通过initdb命令初始化,如图:
su - postgres/usr/local/postgresql16.3/bin/initdb -D /data/postgresql/data -E UTF8 --locale=en_US.UTF-8

初始化完成后,可以看到数据目录下内容如图:

6、启动postgresql,执行如下命令:
su - postgres/usr/local/postgresql16.3/bin/pg_ctl -D /data/postgresql/data -l /data/postgresql/data/postgresql.log start
启动后查看输出的日志信息postgresql.log,内容如图:

停止方法:
su - postgres/usr/local/postgresql16.3/bin/pg_ctl -D /data/postgresql/data -l /data/postgresql/data/postgresql.log stop
7、编写服务启动文件,通过systemctl托管,编辑/lib/systemd/system/postgresql.service,内容如下:
[Unit]Description=PostgreSQL RDBMS[Service]Type=oneshotExecStart=/usr/local/postgresql16.3/bin/pg_ctl -D /data/postgresql/data -l /data/postgresql/data/postgresql.log startExecStop=/usr/local/postgresql16.3/bin/pg_ctl -D /data/postgresql/data -l /data/postgresql/data/postgresql.log stopRemainAfterExit=onUser=postgresGroup=postgres[Install]WantedBy=multi-user.target
最后通过如下命令来管理启动或者停止即可,如下:
systemctl start postgresqlsystemctl stop postgresql
注:如果通过postgres来使用systemctl命令需要配置下sudo,默认情况下只能本地连接,如果需要远程客户端连接需要修改postgresql.conf和pg_hba.conf等配置文件后才可以
文章转载自运维DevOps,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




