0224---linux环境下 postgresql 切换到 postgres用户,终端显示为 -bash-4.2$ 的解决办法

文章讲述了在Centos7系统上安装Postgresql14后,切换到postgres用户出现-bash-4.2$提示符的问题。原因在于postgres用户的家目录不在常规的/home下。提供了两种解决方案:一是修改postgres用户的家目录至/home/postgres并拷贝必要文件;二是不改变家目录,而是修改.bash_profile引入.bashrc。推荐使用第二种方法,以保持数据库管理的便利性。

linux环境下 postgresql 切换到 postgres用户,终端显示为 -bash-4.2$ 的解决办法

一 问题说明

​ 最近在华为云服务器上安装Postgresql14数据库,操作系统是 Centos7,按照Postgresql 官方提供的脚本进行了二进制方式的安装,但在切换到数据库超级用户 postgres时,终端的提示符是 -bash-4.2$,没有显示用户名,不符合常规预期。

[root@wy ~]# su - postgres
Last login: Fri Feb 24 09:29:03 CST 2023 on pts/0
-bash-4.2$

二 原因分析

​ 在postgresql 二进制安装方式下,安装系统自动创建了超级用户postgres,他的家目录并不在 /home 下,而是在 /var/lib/pgsql,这可以通过如下二种方式进行确认。

  1. pwd命令
[root@wy ~]# su - postgres
Last login: Fri Feb 24 09:50:56 CST 2023 on pts/0
-bash-4.2$ pwd
/var/lib/pgsql
  1. 查看 passwd 文件
...
postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
...

二 解决方法

方法1 通过修改postgres的家目录

  1. 以root用户登录,修改 /etc/passwd文件中postgres用户的家目录
vim   /etc/passwd
.....
#postgres:x:26:26:PostgreSQL Server:/var/lib/pgsql:/bin/bash
postgres:x:26:26:PostgreSQL Server:/home/postgres:/bin/bash
......
  1. 创建postgres的家目录,并拷贝2个文件
mkdir -p /home/postgres
cp /etc/skel/.bashrc /home/postgres
cp /etc/skel/.bash_profile /home/postgres
chown -R postgres:postgres /home/postgres
  1. 修改后的效果
[root@wy ~]# su - postgres
[postgres@wy ~]$ pwd
/home/postgres

方法2 修改postgres家目录的内容

因为官方把postgresql系统的超级用户的家目录设置为 /var/lib/pgsql 是有一定道理的,因为创建的数据库也默认是在此目录下,数据库管理员在操作数据库时有一定的便利性。

# 切换到postgres用户
[root@wy ~]# su - postgres
cp /etc/skel/.bashrc  /var/lib/pgsql

# 修改 .bash_profile文件,增加如下内容

if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

方法2是值得推荐的方法,修改后的效果如下

[root@wy ~]# su - postgres
Last login: Fri Feb 24 11:12:31 CST 2023 on pts/0
[postgres@wy ~]$ pwd
/var/lib/pgsql
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值