连接到服务器Postgres时权限被拒绝

时间:2016-02-23 00:19:39

标签: postgresql

我通过Homebrew安装Postgres9.5.1。但是,我在使用" createdb"创建数据库时遇到问题。最初消息说:" createdb:命令未找到"。然后我卸载并安装Homebrew并更新Postgres。

然而,现在我收到一个新错误:

 createdb: could not connect to database template1: could not connect to      server: No such file or directory
     Is the server running locally and accepting
     connections on Unix domain socket "/tmp/.s.PGSQL.5432"?

我尝试了几件事,例如:

 $rm /usr/local/var/postgres/postmaster.pid

回馈:

"许可被拒绝"

此外:

 $postgres -D /usr/local/var/postgres
 postgres cannot access the server configuration file                "/usr/local/var/postgres/postgresql.conf": Permission denied

或者:

 $grep unix_socket /usr/local/var/postgres/postgresql.conf
 grep: /usr/local/var/postgres/postgresql.conf: Permission denied

我不知道该怎么做,我真的不明白发生了什么。感谢。

1 个答案:

答案 0 :(得分:7)

在处理这个问题好几天后,我终于通过Homebrew卸载和安装Postgresql并启动服务器来解决它。我就这样做了:

确保Xcode(适用于Os X用户)是最新的

  xcode-select --install

安装Homebrew

  ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"

  brew doctor
  brew search
  brew install postgres
  brew update

应该安装Postgres。现在,请确保您拥有使用它所需的权限,这是通过允许您的用户获得此类权限来完成的:

  sudo chown -R :admin /usr/local

应该解决权限问题。现在你(正如我所做的)可能面临与服务器相关的问题。

     psql -U postgres -p 5432 -h localhost

这样可以解决问题:

     launchctl unload ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist
     mv /usr/local/var/postgres /usr/local/var/postgres-deletemewhenitsallgood
     initdb /usr/local/var/postgres -E utf8
     launchctl load ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist

     rm -rf /usr/local/var/postgres && initdb /usr/local/var/postgres -E utf8

现在可以使用以下命令启动数据库服务器:

pg_ctl -D /usr/local/var/postgres -l logfile start

不要忘记将此命令行调整为您的特定案例和地址。

祝你好运