PG

PostgreSQL16安装流程(Centos7)

已邀请:

1.安装准备

操作系统:CentOS Linux 7 (Core)

PostgreSQL版本:PostgreSQL16.0

Pg安装包下载:https://www.postgresql.org/ftp/source/



2.安装依赖包

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



报错:Could not retrieve mirrorlist http://mirrorlist.centos.org/?release=7&arch=x86_64&repo=os&infra=stock error was 14:curl#6 – “Could not resolve host:mirrorlist.centos.org:未知的错误”。

检查网络配置正常,报错没解决,后来决定更新yum源。

备份当前的yum源:

mv /etc/yum.repos.d/CentOS-Base.repo /etc/yum.repos.d/CentOS-Base.repo.backup

下载新的CentOS-Base.repo 到/etc/yum.repos.d/:

CentOS 7

wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

或者

curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo

清空并生成缓存:

yum clean all

yum makecache

(备注:yum 会把下载的软件包和header存储在cache中(默认路径/var/cache/yum/),而不自动删除。如果觉得占用磁盘空间,可以使用yum clean指令进行清除,更精确的用法是yum clean headers清除header,yum clean packages清除下载的rpm包,yum clean all全部清除。)

再次安装依赖包:

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

3.创建目录

创建目录:mkdir -p /opt/pgsql/postgresql

解压安装包,进入解压后的文件:tar zxvf postgresql-16.0.tar.gz



编译postgresql源码:./configure --prefix=/opt/pgsql/postgresql

源码编译安装:make && make install

4.创建用户组、用户

groupadd postgres

useradd -g postgres postgres

id postgres

5.创建postgresql的数据主目录并修改文件所有者

mkdir data

chown postgres:postgres data

ls -al



6.配置环境变量

配置环境变量:进入home/postgre目录,编辑修改.bash_profile文件。



插入如图内容(根据个人的安装路径编辑):



source .bash_profile使环境变量生效



7.使用initdb初始化数据库

su - postgres切换到postgre用户



initdb初始化数据库



8.配置服务

进入/opt/pgsql/postgresql/data目录下的Postgresql.conf,配置postgreSQL服务的相应参数。





参数“listen_addresses”表示监听的IP地址,默认是在localhost处监听,只接受来自本机的localhost的连接请求,这会让远程的主机无法登陆到数据库。将行开头的#号去掉,把这个地址改为*,就可以监听本地的所有地址。

进入/opt/pgsql/postgresql/data目录下的pg_hba.conf文件,插入如图内容,这样局域网的人才能访问。



9.设置PostgreSQL开机自启动

su root切换到root用户

cd /root/postgresql-16.0/contrib/start-scripts进入contrib/start-scripts

chmod a+x linux

cp linux /etc/init.d/postgresql

vi /etc/init.d/postgresql

添加linux文件属性并复制到/etc/init.d目录下,更名为postgresql然后修改/etc/init.d/postgresql文件的两个变量(PostgreSQL的开机自启动脚本位于postgreSQL源码目录的contrib/start-scripts路径下,Linux文件是Linux系统上的启动脚本)



设置postgresql服务开机自启动:

chkconfig --add postgresql

chkconfig



10.设置防火墙

systemctl status firewalld检查防火墙状态,这里已经启动了

firewall-cmd --permanent --zone=public --add-service=postgresql添加postgresql服务到防火墙

firewall-cmd --reload加载



11.启动数据库

启动PostgreSQL服务,查看相关进程,尝试登录

service postgresql start

ps -ef | grep postgres

su – postgres

psql

在筑梦之路中,PostgreSQL数据库是一个不可或缺的组件。本文将详细介绍如何通过yum、编译和docker三种方式安装PostgreSQL 16数据库,以帮助读者根据实际需求选择合适的安装方式。
一、yum方式安装

安装yum源
首先,需要安装PostgreSQL的yum源。可以访问PostgreSQL的官方网站下载相应的yum源配置文件,并按照说明进行安装。
执行yum命令
安装完成后,可以通过执行以下命令来安装PostgreSQL 16数据库:
sudo yum install postgresql-16
初始化数据库
安装完成后,需要初始化数据库并启动服务。可以使用以下命令:
sudo postgresql-16-setup initdb
sudo systemctl start postgresql-16
二、编译方式安装
获取源码
首先,需要从PostgreSQL的官方网站下载相应的源码包。可以访问PostgreSQL的官方网站,选择适合自己操作系统的版本进行下载。
解压源码包
将下载的源码包解压到指定的目录中。可以使用以下命令:
tar -zxvf postgresql-16.tar.gz
cd postgresql-16
配置编译选项
在解压后的目录中,需要配置编译选项。可以使用以下命令:
shell ./configure --prefix=/usr/local/pgsql-16 --with-pgport=5432 --with-perl --with-python --with-tcl --with-openssl --with-pam --without-ldap --without-krb5 --without-pam --without-libiconv --with-identmap=ident --with-readline --with-uuid-ossp --with-libxml --with-xslt --with-gs--with-ossp make && sudo make install其中,—prefix参数指定安装路径,—with-pgport指定端口号,—with-perl、—with-python等参数分别指定是否启用Perl、Python等扩展。可以根据实际需求进行配置。
编译安装
执行以下命令进行编译和安装:
shell make && sudo make install编译完成后,PostgreSQL 16数据库将被安装到指定的目录中。
初始化数据库
进入安装目录下的bin目录,执行以下命令来初始化数据库:
shell ./initdb -D /usr/local/pgsql-16/data初始化完成后,可以启动数据库服务。执行以下命令:
shell ./pg_ctl -D /usr/local/pgsql-16/data -l logfile start启动成功后,可以通过psql等工具连接到数据库进行使用。
三、docker方式安装
拉取镜像文件
首先,需要从Docker Hub上拉取PostgreSQL 16的镜像文件。可以使用以下命令:
shelldocker pull postgres:16这将从Docker Hub上下载PostgreSQL 16的镜像文件。
运行容器实例化数据库服务
执行以下命令来运行容器并实例化数据库服务:shelldocker run --name mydb -e POSTGRES_PASSWORD=mysecretpassword -d postgres:16其中,—name参数指定容器的名称,POSTGRES_PASSWORD参数设置数据库的密码,-d参数表示在后台运行容器。容器运行后,PostgreSQL 16数据库将被启动并在其中运行。默认情况下,容器的端口号为5432。可以通过以下命令连接到容器:shelldocker exec -it mydb psql -U postgres这将连接到名为mydb的容器中的PostgreSQL数据库,并使用postgres用户进行登录。总结:通过yum、编译和docker三种方式都可以安装PostgreSQL 16数据库。yum方式适合批量部署和自动化部署场景;编译方式可以根据实际需求定制安装选项;docker方式则适合快速部署和容器化场景。根据实际需求选择合适的安装方式可以更好地满足项目需求。

要回复问题请先登录注册