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

你可能感兴趣的:(postgresql)