psql Centos7安装postgresql-12

之前在centos7上下的postgresql,它的数据库实例在 “var/lib/pgsql/” 下。这就导致了系统用户的"postgres"的家目录跟postgresql数据库目录不在同一目录下。因此,今天趁着有闲暇时间把数据库装到"postgres"目录下,顺便把版本从11升到12。

首先是下载postgresql。根据官网提示可以一键完成。PostgreSQL: Linux downloads (Red Hat family)

选择好版本后,点击 “Copy Script” 复制安装命令,即可一键安装。

安装完后,就有了一个用户 – postgres。把这个用户删除。

 userdel -g 701 postgres
 # 如果之前安装过或什么的导致有进程还在,删除不了的,用 "kill id" 删除进程,再用上面命令。

随后再添加"postgres"用户,将"postgres"的HOME目录建在 "/home"下:

 

 groupadd -g 701 postgres
 useradd -g 701 -u 701 -s /bin/bash -m postgres

接着配置postgres用户的".bashrc"内容。

 

切换为postgres,“cd ~” 进入postgres的家目录下。打开".bashrc"文件, " vim .bashrc" 。

将下面内容放在文件最后。

 export PATH=/usr/pgsql-12/bin:$PATH
 export LD_LIBRARY_PATH=/usr/pgsql-12/lib:$LD_LIBRARY_PATH
 export PGDATA=/home/postgres/pgdata 
 # $PGDATA环境变量制定的数据库是 "/home/postgres/pgdata"
 export PGHOST=/tmp

之后打开"/home/postgres/pgdata/postgresql.conf" , " vim /home/postgres/pgdata/postgresql.conf "。

 

在文件末尾添加以下内容:

 unix_socket_directories = '/tmp' # 注意:前面没有 '#',可能新的一行首位有'#',去掉\
 # 添加这个

之后就完成了。

 

 每次都要启动postgresql服务:
 # 我的centos7的是 
systemctl start postgresql-12 # -<版本号>
也可以用pg_ctl,pgctl是管理postgresql数据库的服务工具
pg_ctl start

 

 

Centos下安装postgreSQL

解决:“userdel: user xxxx is currently used by process xxx” 的问题

PostgreSQL修炼之道:从小工到专家 [第二版] P10, P27

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

golemon.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值