本文最后更新于:2022-06-10T22:52:14+08:00
安装依赖 1 yum install -y readline-devel zlib-devel make gcc
创建用户组和用户、密码 1 2 3 groupadd -g 1000 postgres useradd -g 1000 -u 1000 postgres passwd postgres
安装完才发现有更简单的方法!
打开postgresql
的官网安装教程:https://www.postgresql.org/download/linux/redhat/ ,选择一下系统
就会发现安装如下的命令行:
1 2 3 4 5 yum install https://download.postgresql.org/pub/repos/yum/reporpms/EL-7-x86_64/pgdg-redhat-repo-latest.noarch.rpm yum install postgresql12-server /usr/pgsql-12/bin/postgresql-12-setup initdb systemctl enable postgresql-12 systemctl start postgresql-12
安装前准备 1 2 3 mkdir -p /opt/pg12/{data,backup,scripts,archive_wals} chown -R postgres.postgres /opt/pg12/ chmod 0700 /opt/pg12/data
解压编译安装 1 2 3 4 tar -zxvf postgresql-12.3.tar.gz ./configure --prefix=/opt/pg12 --with-pgport=5432 gmake world gmake install-world
配置环境变量 1 2 3 4 # 切换到postgres账户 su - postgres# 编辑用户下配置文件 vim /home/postgres/.bashrc
编辑内容如下:
1 2 3 4 5 6 7 PG_HOME=/opt/pg12/ LD_LIBRARY_PATH=$PG_HOME/lib:$LD_LIBRARY_PATH PATH=$PG_HOME/bin:$PATH PKG_CONFIG_PATH=$PG_HOME/lib/pkgconfig:$PKG_CONFIG_PATH export PKG_CONFIG_PATH LD_LIBRARY_PATH
source /etc/profile
更新配置!
初始化数据库 1 2 3 # 在postgres账户下执行 /opt/pg12/bin/initdb -D /opt/pg12/data/ -W /opt/pg12/bin/pg_ctl -D /opt/pg12/data/ -l logfile start
启动数据库
设置监听 修改postgres/data
目录下的pg_hba.conf
修改IPv4
一行内容如下:
1 2 host all all 0.0.0.0/0 trust
修改postgresql.conf
:
1 vim $PGDATA /postgresql.conf
修改监听一节如下:
1 2 3 listen_addresses = '*' port = 5432
wq!
保存退出。 重启pg服务生效
1 pg_ctl restart -D $PGDATA
设置开机自启动 创建 postgresql.service
服务脚本
1 vim /usr/lib/systemd/system/postgresql.service
编辑内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 [Unit] Description=PostgreSQL database server After=network.target [Service] Type=forking User=postgres Group=postgres Environment=PGPORT=5432 Environment=PGDATA=/opt/pg12/data OOMScoreAdjust=-1000 ExecStart=/opt/pg12/bin/pg_ctl start -D ${PGDATA} -s -o "-p ${PGPORT} " -w -t 300 ExecStop=/opt/pg12/bin/pg_ctl stop -D ${PGDATA} -s -m fast ExecReload=/opt/pg12/bin/pg_ctl reload -D ${PGDATA} -s TimeoutSec=300 [Install] WantedBy=multi-user.target
如果之前使用pg_ctl restart -D $PGDATA
启动过,先停止pg_ctl stop -D $PGDATA
更新设置:
配置开机自启动:
1 systemctl enable pgserver.service
常用指令 启动服务
1 systemctl start postgresql.service
停止服务
1 systemctl stop postgresql.service
重启服务
1 2 systemctl restart postgresql.service service postgresql restart
使服务自动启动
1 systemctl enable postgresql.service
使服务不自动启动
1 systemctl disable postgresql.service
检查服务状态
1 2 systemctl status postgresql.service systemctl is-active postgresql.service
显示所有已启动的服务
1 systemctl list-units --type =service