# PostgreSQL数据库在Linux上的安装搭建(单例)
# 1. 环境信息
1. VMware Workstation Pro
2. CentOS-7-x86_64-Everything-2009
3. PostgreSQl 14.1
# 2. 问题
在 VMware 虚拟机中安装 PostageSQL 数据库(单例)
# 3. 操作步骤
# 3.1 虚拟机配置
1. 配置 VMware 虚拟机为NAT网络模式,共享物理机网络
2. 配置虚拟机的网络状态
vi /etc/sysconfig/network-scripts/ifcfg-ens33
3. 修改配置如下(配置完需要重启网络服务)
TYPE=Ethernet
PROXY_METHOD=none
BROWSER_ONLY=no
BOOTPROTO=static
DEFROUTE=yes
IPADDR=192.168.6.177
NETMASK=255.255.255.0
NAME=ens33
DNS1=223.5.5.5 #阿里yum源
DNS2=8.8.8.8
GATEWAY=192.168.6.2 #NAT模式下的虚拟网卡网关
UUID=96765599-1f43-4189-b998-b3f1ace198d1
DEVICE=ens33
ONBOOT=yes
4. 下载Cenos-7.repo到/etc/yum/repos.d/,并更名为CentOS-Base.repo
curl -o /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo
5. 本地缓存阿里源上的软件包信息
yum makecache
(注意:如果出现 timeout 报错,检查一下配置静态IP时,有没有配置DNS服务器,以及网关的配置)
# 3.2 添加数据库用户
groupadd postgres
useradd -g postgres postgres
passwd postgres
# 3.3 安装依赖
yum -y install lrzsz sysstat e4fsprogs ntp readline-devel zlib zlib-devel openssl openssl-devel pam-devel libxml2-devel libxslt-devel python-devel tcl-devel gcc make flex bison perl perl-devel perl-ExtUtils* OpenIPMI-tools systemtap-sdt-devel smartmontools libcurl vim wget systemd-devel
# 3.4 安装及修改配置文件
1. 下载解压PostgreSQL
mkdir -p /opt/soft
cd /opt/soft
wget https://ftp.postgresql.org/pub/source/v14.1/postgresql-14.1.tar.gz --no-check-certificate #跳过证书认证
tar zxvf postgresql-14.1.tar.gz
2. 源码安装
cd /opt/soft/postgresql-14.1
./configure --prefix=/usr/local/pgsql/14.1 # --prefix 指定安装路径
make world -j32 && make install-world -j32 # make world 构建所有内容
# make install-world 安装数据库和文档
3. 开启调试
./configure --prefix=/usr/local/pgsql/14.1/ --with-pgport=5432 --enable-dtrace --enable-debug # --with-pgport 调整默认端口 --enable-dtrace 允许动态跟踪工具 DTrace
#--enable-debug 把所有程序和库以带有调试符号的方式编译
2. 创建数据库目录及权限配置
mkdir -p /data/pgsql/14.1/pgdata
chown -R postgres:postgres /data/pgsql
chown -R postgres:postgres /usr/local/pgsql/14.1
chmod -R 775 /usr/local/pgsql/14.1 # 775满权限
4. 添加局部环境变量(/home/postgres/.bashrc)
export PGHOME=/usr/local/pgsql/14.1
export PGPORT=5432 # 默认端口5432(记得修改postgresql.conf文件)
export PGDATA=/data/pgsql/14.1/pgdata
export DATE=`date +"%Y%m%d%H%M"` # 日期格式
export PGUSER=postgres
export PGHOST=localhost
export PGDATABASE=postgres
export PATH=$PGHOME/bin:$PATH:.
export MANPATH=$PGHOME/share/man:$MANPATH
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
export LANG=en_US.utf8
export PG_OOM_ADJUST_FILE=/proc/self/oom_score_adj # 指定OOM调整文件
export PG_OOM_ADJUST_VALUE=0 # 指定OOM分数值
5. 修改完后刷新环境变量
source /home/postgres/.bashrc
6. 初始化
su - postgres
initdb -D /data/pgsql/14.1/pgdata -E UTF8 --locale=C -U postgres # 文件目录 编码 区域 用户
7.启动
pg_ctl -D /data/pgsql/14.1/pgdata -l logfile start
# 4. 使用图形化工具连接数据库
# 4.1 修改配置文件
1. 修改pg_hba.conf文件
vi /data/pgsql/14.1/pgdata/pg_hba.conf
添加一条路由记录
host all all 0.0.0.0/0 md5
2. 修改postgresql.conf文件
vi /data/pgsql/14.1/pgdata/postgresql.conf
listenaddress = '*'
3. 重启数据库服务
pg_ctl restart
3. 本地登录psql修改密码
/password
4. 防火墙放行5432端口
firewall-cmd --permanent --add-service=http
firewall-cmd --add-port=5432/tcp --permanent
firewall-cmd --reload