我已经使用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不起作用?
答案 0 :(得分:2)
我如何修复此问题是运行brew doctor
,您可能会看到postgresql在警告中:这表示您的酒窖中有未链接的桶。
尝试运行brew link postgresql
。它将显示已创建的一些符号链接。然后再次运行init db ...
。
希望这有帮助!
答案 1 :(得分:0)
你是谁登录的?
当你执行sudo或su - 时,它将运行root的init脚本,例如.bashrc和.bash_profile。
这些可能会在root,postgres和你之间建立不同的可执行搜索路径。
尝试类似sudo initdb
或su - 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
希望能帮到你