irpas技术客

centos7安装postgresql13.4并设置开机自启(亲测有效)_铁狮子头930212_centos postgresql 启动

大大的周 2005

一.OS环境+软件版本:

? ? ? ?1. Vmware虚拟机16+centos7、

? ? ? ? 2.PG版本:13.4

二.安装部署:

? ? ? ? 1.创建postgres用户:useradd -m -U postgres

? ? ? ? 2.安装各种依赖:yum install -y gcc.x86_64 glibc.x86_64 glibc-devel.x86_64 vim-enhanced.x86_64 gcc-java apr apr-devel openssl openssl-devel libgcc.x86_64 java-1.8.0-openjdk.x86_64 java-1.8.0-openjdk-devel.x86_64 perl-Module-Install.noarch

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??yum install -y readline-devel.x86_64

? ? ? ? 3.下载安装uuid ossp库:下载自行解决就行了。

? ? ? ? ? ? ? ? tar -xzvf uuid-1.6.2.tar.gz-->cd uuid-->./configure-->make && make install

? ? ? ? 4.下载安装部署postgresql13.4:

? ? ? ? ? ? ? ?a).?tar -xzvf postgresql-13.4.tar.gz-->cd postgresql-13.4.0-->./configure --prefix=/home/postgres --enable-thread-safety --with-uuid=ossp --with-libs=/usr/local/lib --with-includes=/usr/local/include-->make-->make install-->cd contrib-->make-->make install

? ? ? ? ? ? ? b).? 配置uuid软链接:find / -name libuuid.so.16-->ln -s /usr/local/lib/libuuid.so.16 /home/postgres/lib-->chown -R postgres.postgres /home/postgres/-->配置环境变量vi /home/postgres/.bashrc 添加export PGHOME=/home/postgres

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? export PGDATA=$PGHOME/data

? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?expot PATH=$PGHOME/.local/bin:$HOME/bin:$PGHOME/bin

-->source /home/postgres/.bashrc

? ? ? ? ? ? ?c). 初始化数据库:initdb -D? /home/postgres/data

? ? ? ? ? ? ?d). 启动数据库 pg_ctl -D?/home/postgres/data start

? ? ? ? ? ? ?e)可以修改pg_hba.conf和postgresql.conf两个配置文件,修改完后重启数据库即可。

自此,安装部署就完成了,安装部署也参考了很多资料,最终结合自己的实践完成此安装部署过程。接下来讨论下配置开机自启。

三.配置开机自启:

? ? ? ? 相信很多同学在百度的时候都会出现很多PG配置开机自启动的方法,其实核心无非三种方式:

????????1.配置/etc/rc.d/rd.local文件,添加一行su - postgres -c "/home/postgres/bin/pg_ctl -D /home/postgres/data start"此方法经过测试试验,不能达到每次开机都自启,故不是我们想要的方法。

? ? ? ? 2.执行[postgres@fcj2 ~]$ sudo find / -iname linux命令会找到/opt/postgresql-13.2/contrib/start-scripts/linux-->cp?/opt/postgresql-13.2/contrib/start-scripts/linux /etc/init.d/postgresql-->chmod a+x?/etc/init.d/postgresql-->vi?/etc/init.d/postgresql按照图示修改:

?-->修改完保存退出-->chkconfig --list

?-->chkconfig --add postgresql

?

-->chkconfig --list

?通过测试,此方法同第一种方法结果相同,无法保证每次重启服务器都能完成开机自启,接下来的第三种方法是亲测可行的。

? ? ? ? ?介绍第三种方法之前,先说个小知识点:就是RHEL 7/8系统替换了熟悉的初始化进程服务System V init,正式采用全新的systemd初始化进程服务,即将RHEL 5/6系统熟悉的service、chkconfig系统服务管理命令改为了systemctl命令来管理服务。因为我用的是centos7,所以这也有可能是为什么用前两种方法无法做到开机自启的原因吧。这段与本文章无直接关系,当作参考即可。

? ? ? ? 3.touch?/etc/systemd/system/postgresql.service-->vi?/etc/systemd/system/postgresql.service文件添加以下内容:

? ??

?注意:如果Type设置的是forking模式的话,一定要在下面加上PIDFile=/home/postgres/data/postmaster.pid 选项。

保存退出-->systemctl daemon-reload-->systemctl? enable postgresql-->systemctl? is-enabled postgresql-->systemctl?start postgresql-->systemctl? status postgresql

注意:在用此方法配置开机自启前需要将/etc/selinux/config配置文件的SELINUX设置为disabled,否则在执行systemctl?start postgresql命令时会报错。另外,当在网上查询此方法的操作时还会有这样的方式,即将开始的touch文件操作改为:touch /usr/lib/systemd/system/postgresql.service,ln -s /usr/lib/systemd/system/postgresql.service? /etc/systemd/system/这两步去完成,实际的RHEL7确实是通过这种方式完成的,但是通过我的测试,无法完成PG的开机自启,可能因为我操作的问题,也可能PG在这方面的支持存在问题。总之,以上介绍的第三种方法是可以实现PG开机自启的。

以上就是本次的分享,安装部署和配置开机自启两个过程都参考过网上的资料,但具体忘了是哪位大神的创作,在次不一一列举了,望见谅。感谢。

? ? ? ? ? ? ? ??

? ? ? ? ? ??


1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,会注明原创字样,如未注明都非原创,如有侵权请联系删除!;3.作者投稿可能会经我们编辑修改或补充;4.本站不提供任何储存功能只提供收集或者投稿人的网盘链接。

标签: #CentOS #postgresql #启动 #一OS环境软件版本 #1