帮助在 ubuntu 中安装 postgres

帮助在 ubuntu 中安装 postgres

我正在尝试在最新的 ubunutu 中安装 postgresql,并且我正在关注这些说明。当我sudo -u postgres psql postgres收到此错误时:could not change directory to "/home/james"

我将非常感激您的帮助。

答案1

听起来您用来运行 psql 的用户 postgres 可能无法读取您正在执行语句的目录(/home/james/)

  • sudo=s巫婆服务 - 西南
  • u = “作为用户”
  • postgres = 要切换到的用户
  • psql = 要执行的命令
  • postgres = 要连接的数据库

我在这里猜测,但我认为 sudo 将在当前目录中为 postgres 打开一个新的 shell/环境并在那里执行 psql。如果不允许 psql 读取当前目录,则可能会发生此错误。

尝试在执行命令之前切换目录:

cd /tmp

答案2

我知道这已经很老了,但是这个问题在谷歌上排名很高,我更喜欢我的答案。:)

在该 sudo 命令中插入 -i - 除非您执行 -i 命令(模拟初始登录),否则 sudo 也不会更改 $HOME 的值i。这还会加载 postgres 用户的 .profile 等。因此,您要运行的是:

sudo -i -u postgres psql postgres

演示时间!

sauer@pyro:~$ sudo -u postgres sh -c 'echo $HOME'
/home/sauer
sauer@pyro:~$ sudo -i -u postgres sh -c 'echo $HOME'
/var/lib/postgresql

顺便说一句,单引号对于该示例很重要。:)

相关内容