-bash:initdb:命令未找到

时间:2014-11-19 00:22:06

标签: macos postgresql postgresql-9.3 .profile

我已经使用EnterpriseDB安装安装了PostgreSQL。

我运行sudo ./postgresql-9.3.5-3-osx.app/Contents/MacOS/installbuilder.sh --mode unattended然后运行open /Applications/TextEdit.app .profile来编辑我在/ Users / Dhruv中新创建的.profile文件,以添加行source /Library/PostgreSQL/9.3/pg_env.sh.

正在运行createuser Dhruv --pwprompt --username=postgres

  

-bash:createuser:command not found

然后运行unknown-88-1f-a1-1b-c2-ec:9.3 dhruv$ sudo -u postgres /bin/createuser和其他各种方法,我可以使用某种密码提示设置一些东西。我之后知道这一点,因为我使用了sudo -u postgres /Library/PostgreSQL/9.3/bin/createuser

  

createuser:新角色的创建失败:ERROR:role" postgres"已存在

然后运行initdb -D /Library/PostgreSQL/9.3/data I get

  

-bash:initdb:找不到命令。

同样地,如果我尝试相同的事情,但连接到postgres,sudo su - postgres然后initdb -D /Library/PostgreSQL/9.3/data我再次

  

-bash:initdb:找不到命令。

不知所措。 1)我怎么知道这个假设角色的详细信息" postgres"我神奇地创造了2)为什么initdb不起作用?

3 个答案:

答案 0 :(得分:2)

我如何修复此问题是运行brew doctor,您可能会看到postgresql在警告中:这表示您的酒窖中有未链接的桶。 尝试运行brew link postgresql。它将显示已创建的一些符号链接。然后再次运行init db ...

希望这有帮助!

答案 1 :(得分:0)

你是谁登录的?

当你执行sudo或su - 时,它将运行root的init脚本,例如.bashrc和.bash_profile。

这些可能会在root,postgres和你之间建立不同的可执行搜索路径。

尝试类似sudo initdbsu - postgres -c initdb的内容......无论哪个用户都正确构建了路径,以便设置路径。

您也可以在自己的环境中复制路径/ lib创建代码,但如果它被更改,则会中断。

答案 2 :(得分:0)

同样的事发生在我身上。我是来自Linux的OS X的新手,这就是我必须做的事情。我通过自制软件安装了postgres,当我这样做时,我注意到它将下载的所有内容放到:/ usr / local / Cellar / postgresql /($ postgres_version)/

当我进入该文件夹时,我看到了一个名为bin的目录,所以我在这里看到了initdb。所以我不得不将其添加到我的路径中,以便我可以使用命令:

$ export PATH = / usr / local / Cellar / postgresql / 9.4.4 / bin:$ PATH

希望能帮到你