我需要访问pg_hba.conf
才能尝试修复我的破坏的postgres开发数据库,该数据库在RAILS_ENV=development rails s
的<{p}}上出错
PG::ConnectionBad
fe_sendauth: no password supplied
这篇文章至少似乎表明此类访问可能有所帮助:PG::ConnectionBad: fe_sendauth: no password supplied
问题是,即使我知道路径
/Library/PostgreSQL/9.3/data/pg_hba.conf
当我真正尝试进入它时:
cd /Library/PostgreSQL/9.3/data/
我得到:cd:cd:13: permission denied: /Library/PostgreSQL/9.3/data/
看似明显的解决办法是sudo,所以我试试看:
sudo cd /Library/PostgreSQL/9.3/data/
没有任何反应。从字面上看,下一行显示我仍然正是我所在的位置。怎么能否定sudo?我怎样才能访问此文件或修复我的问题?
谢谢!
答案 0 :(得分:2)
此:
sudo cd /Library/PostgreSQL/9.3/data/
在cd
下运行sudo
命令。 sudo
实际上运行了shell的{em>新实例(/bin/sh
或其他),然后在shell中运行命令。
当前目录是当前进程的属性。它由新的子进程继承,但它更改 not 会传播到父进程。
你所做的相当于:
sh -c 'cd /tmp'
它创建一个新的shell,cds到一个位置,然后退出。 cd
的效果只影响那个shell,所以它实际上没有做任何事情。
您应该做的是使用sudo
通过绝对路径在文本编辑器中打开文件,例如:
sudo nano /Library/PostgreSQL/9.3/data/pg_hba.conf
(nano
是一个简单且用户友好的命令行文本编辑器;我假设您在此问题时不知道如何使用vi
。)