暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

银河麒麟V10编译安装postgresql

运维DevOps 2024-07-29
19

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.3
      make
      make install
      复制

      安装后,在目录postgresql16.3下可以看到编译后的文件,如图:

      3、创建用户和用户组,给安装目录赋权,命令如下:

        groupadd postgres
        useradd -m -g postgres postgres
        chown postgres:postgres -R usr/local/postgresql16.3
        复制

        4、创建数据目录,并设置属主以及属组,如下:

          mkdir -p data/postgresql/data
          chown -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=oneshot
                  ExecStart=/usr/local/postgresql16.3/bin/pg_ctl -D /data/postgresql/data -l /data/postgresql/data/postgresql.log start
                  ExecStop=/usr/local/postgresql16.3/bin/pg_ctl -D /data/postgresql/data -l /data/postgresql/data/postgresql.log stop
                  RemainAfterExit=on
                  User=postgres
                  Group=postgres


                  [Install]
                  WantedBy=multi-user.target
                  复制

                  最后通过如下命令来管理启动或者停止即可,如下:

                    systemctl start postgresql
                    systemctl stop postgresql
                    复制

                    注:如果通过postgres来使用systemctl命令需要配置下sudo,默认情况下只能本地连接,如果需要远程客户端连接需要修改postgresql.conf和pg_hba.conf等配置文件后才可以

                    文章转载自运维DevOps,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

                    评论