Problemas de instalação do Postgresql no OS X

5

Eu usei o Fink para instalar o postgresql no os x. quando tento iniciar o psql, recebo:

psql: 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"?

Eu nunca instalei o postgresql antes, então não tenho certeza de onde procurar. Tem alguma sugestão?

    
por Tony 20.07.2009 / 22:43

4 respostas

3

Isso significa que o daemon do PostgreSQL não está em execução. Você vai querer encontrar onde o daemon está instalado. Por padrão, ele deve ser instalado em / usr / local / pgsql. Se estiver lá, inspecione para ver se existe um diretório / usr / local / pgsql / data. Se não houver o seguinte:

/ usr / local / pgsql / bin / initdb -D / usr / local / pgsql / data

então, se for bem sucedido, execute

/ usr / local / pgsql / bin / pg_ctl -D / usr / local / pgsql / data start

E isso deve colocá-lo no caminho certo.

    
por 21.07.2009 / 02:40
2

Parece-me que você está tentando executar o PostgresSQL na sua conta de usuário atual. Eu não sei as propriedades do fink para PostgreSQL, mas os daemons associados devem rodar sob uma conta de usuário dedicada (digamos postgres por exemplo).

Primeiro, identifique o diretório de dados, no qual o PostgresSQL armazena seus arquivos de dados e configuração. Suas mensagens de erro parecem dizer que isso pode ser "/Library/PostgreSQL/8.4/data". Este diretório deve pertencer ao postgres -user e ter privilégios rwx para ele. Eu acho que o Fink já o criou, então confira os logs de instalação.

Olhe dentro deste diretório (você pode precisar su / sudo porque você pode não ter privilégios suficientes para fazê-lo com seu usuário do console). Se houver alguns arquivos, por exemplo. postgresql.conf, um monte de pg_ * e alguns outros arquivos, todos pertencentes a postgres , o diretório de dados parece estar bem, caso contrário, invoque o seguinte (substitua o caminho binário, postgres -user e o caminho de dados com seus valores de sistema, veja man initdb para mais opções):

sudo -u postgres /usr/local/pgsql/bin/initdb  -D /Library/PostgreSQL/8.4/data

É importante sudo como o usuário postgres aqui, porque a conta de usuário que o postgres deamons executa, terá que ter os direitos de acesso sufficients.

Além disso, você terá que iniciar o deamon com o sudo (isso deve ser tratado mais tarde por uma entrada do lauchctl, ou algo similar), então:

sudo -u postgres /usr/local/pgsql/bin/pg_ctl -D /Library/PostgreSQL/8.4/data

Você sempre pode recriar o diretório de dados, mas certifique-se de fazer um backup e não sobrescrevê-lo quando o postgres ainda estiver em execução.

    
por 21.07.2009 / 16:59
1

Você pode verificar se o Postgresql está em execução e ouvindo com:

lsof -i |grep LISTEN

    
por 11.08.2009 / 22:35
0

Parece que você não iniciou o servidor e, possivelmente, não executou initdb

Se você tiver mais problemas, a maneira mais fácil (e recomendada pelo postgresql) de instalar o postgresql no Mac OS X é através do instalador da GUI fornecido por EnterpriseDB . Ele até lida com várias versões muito bem.

    
por 21.07.2009 / 00:16