2013-10-03 2 views
1

확인. 나는 며칠 동안이 문제를 해결하려고 노력 해왔다. PostgreSQL을 3 회 설치, 제거 및 재설치했습니다. 나는이 포럼에서 정확하게 지시에 따라 : https://dba.stackexchange.com/questions/42048/cant-connect-to-the-postgres-server-ls-tmp-s-pgsql-5432-no-such-file-or-dir왜 postgresql 서버를 실행할 수 없습니까?

나는 많은 포럼이 해결책을 찾았을, 그래서 실행하려고 :

$ mkdir /var/pgsql_socket/ 
$ sudo mkdir /var/pgsql_socket/ 
$ ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/ 

하지만이 작동하지 않았다. 서버를 시작하려고하면 다른 하나가 실행 중이며 데이터베이스를 만들거나 "psql"을 입력 할 때마다 계속 실패합니다.

다음 경로를 변경하기 위해 다음을 실행하려고했습니다. 내 버전으로 포스트 그레스의 OS X에 내장 된 버전의 명령으로 작동 듯 :

$ cd /usr/local/bin 
$ rm postgres 
$ ln -s /Library/PostgreSQL/9.2/bin/postgres postgres 
$ rm psql 
$ ln -s /Library/PostgreSQL/9.2/bin/psql psql 
$ rm pg_ctl 
$ ln -s /Library/PostgreSQL/9.2/bin/pg_ctl pg_ctl 

을 그럼 나는이 포스트 그레스에 대한 사용자 작성하려면 다음을 실행 :

$ sudo -u postgres createuser --superuser $Sarah 
$ sudo -u postgres createuser --superuser user_sarah 
$ sudo -u postgres psql postgres 

을하지만 말을 계속 "알 수없는 사용자 포스트그레스" n은 Ruby pg gem을 설치하려고했지만, 필요한 라이브러리에 문제가 있다고해서 실패했습니다.

터미널에서 시도한 모든 내용의 텍스트 파일을 저장했습니다. 내가 게시해야하는지 알려주세요. 감사.

업데이트 : 내가 이것을 실행하려고 : $ pg_ctl -D /usr/local/var/postgres -l /usr/local/var/postgres/server.log start 나는이 얻을 : 나는이 문제에 게시 된 본 다른 오류의 많은 다른 -bash: /usr/local/bin/pg_ctl: No such file or directory .

+0

컴퓨터에'postgres' 계정이 있습니까? 알지 못하는 사용자를 말하고 있기 때문에 나는 추측하고 있습니다 ... –

+0

그래서'createuser'로 시도한 것과 다른 점이 있습니까? 그렇다면 아니오. 내가 찾은 것과 다른 방식으로 해보려고했다.이 에러는'createuser : 새 역할 생성 실패 : ERROR : 역할 "Sarah"already exists' – tinytown

+0

pg를 다운로드 한 곳부터 시작하여 설치 지침이 적용되는 위치를 알려준다. –

답변

1

먼저, 실행중인 전자 메일 관리자가 없는지 확인해야합니다. ps -ef | grep postmaster. 일단 포스트 마스터가 실행되고 있지 않다는 것을 확인한 후에는 postgresql 명령 initd를 조사해야합니다. 서버 설치에 따라 설치되거나 설치되지 않을 수 있습니다. 포스트그레스를 시작하기 전에 데이터베이스를 만들어야합니다. 나에게 들리는 것은 메인 postgresql 명령을/usr/bin에 설치하지 않은 것 같고, pg_ctl은 이들 중 하나이다.

FYI : postgres 계정은 로그인 계정이 아니며 postgresql을 설치할 때 자동으로 만들어 지므로 설치가 잘되어 있으면 있어야합니다. postgres가 sudoers 파일에없는 경우에는 postgres로 sudo 할 수 없습니다.

+0

포스트 마스터 실행에 문제가 있습니까? – thedanotto

+0

일반적으로 포스트 마스터가 이미 실행중인 경우 postgres에서 initd를 실행하지 않습니다. 근심, 나는 그것이 어떻게 반응 할 것인지 모른다. –

1

PostgreSQL의 홈 브루 (homebrew) 설치에서는 postgres 계정을 생성하거나 필요로하지 않으므로 sudo -u postgres 또는 ps -fu postgres의 모든 언급은 귀하의 사례에는 적용되지 않습니다.

명령 brew info postgresql은 시작 및 중지에 대한 다양한 정보를 출력하므로 읽을 수 있습니다. 반대로 무작위 사용자가 작동하지 않는 설치를 "고정"하는 방법에 대해 맹목적으로 믿고 싶지는 않습니다. 사실, 웹은 MacOS X의 PostgreSQL과 관련하여 충격적인 양의 충고를하고 있습니다. 그리고 저에게 dba.se에 링크 된 대답이 그들 사이에 있습니다. 처음부터 끝까지 잘못되었으므로 답으로 받아 들여지지 않았 음을 명심해야합니다. 확실히 저자는 잘 의미하지만, 자신의 상황이 다른 시설에 일반화 될 수 없음을 알지 못합니다.

최악의 부분은 제안 /Library/PostgreSQL/9.2/bin/ 안에 가정 등가물로 /usr/local/bin/에 바이너리 postgres, psql, pg_ctl와 소프트 링크를 삭제하는 것입니다. 나에게 그것은 자작 설치를 어기는 것이다. 이 작업을 수행 한 후이 오류를 얻을 의심 할 여지가 :

/usr/local/bin/pg_ctl: No such file or directory

그래서 내 대답은 다음 깨끗한 상태에서 다시 시작하는 모든 포스트 그레스, 당신은 실행 명령 /usr/local/bin에서 있는지 확인하기 위해 양조와 PostgreSQL을 다시 설치하는 것 및 PG와 관련된 것에 의심이가는 경우 항상 pg_ctl에 전달 된 서버 로그 파일을 먼저 읽으십시오.

관련 문제