psql
CLI 를 항상 사용하지 않고도 PostgreSQL과 인터페이스 할 수 있도록 테스트 시스템에서 phpPgAdmin을 설정하려고합니다 . RPM 저장소를 통해 PostgreSQL 9.1을 설치하고 phpPgAdmin 5.0.4를 “수동으로”설치했습니다 (phpPgAdmin 웹 사이트에서 아카이브를 추출하여). 기록상 호스트 OS는 CentOS 6.2입니다.
이미 다음과 같은 구성을 변경했습니다.
PostgreSQL
- 내부
pg_hba.conf
에서 모든METHOD
s를 md5로 변경했습니다 . - 나는 postgres 계정에 암호를 주었다
- 비밀번호가있는 webuser라는 새 계정을 추가했습니다 (계정에 대해 다른 작업을 수행하지 않았으므로 사용 권한 및 모든 권한을 정확히 알고 있다고 말할 수는 없습니다)
phpPgAdmin config.inc.php
- 줄
$conf['servers'][0]['host'] = '';
을 변경했습니다$conf['servers'][0]['host'] = '127.0.0.1';
(localhost를 값으로 사용해 보았습니다). - 설정
$conf['extra_login_security']
에false
.
phpPgAdmin에 로그인을 시도 할 때마다 성공적인 자격 증명 (에서 작동하는 자격 증명)을 사용하더라도 “로그인 실패”가 표시 psql
됩니다. FAQ의 질문 3에 언급 된 단계 중 일부를 시도했지만 지금까지 제대로 작동하지 않았습니다. 이것이 PostgreSQL로 작업하는 첫날이라는 데 도움이되지 않을 것입니다. 나는 MySQL에 대해 매우 친숙하지만 작업중 인 프로젝트에 PostgreSQL을 사용해야합니다.
CentOS 6.2에서 phpPgAdmin을 설정하는 방법에 대한 도움을 줄 수 있습니까? 지금까지 구성에서 끔찍한 잘못을 저지른 경우 아직 데이터를 저장하지 않은 것처럼 무언가를 날려 버리는 것은 큰 의미가 없습니다!
당신이 가진 통찰력에 감사드립니다!
답변
글쎄, 나는 PostgreSQL의 경험과 phpPgAdmin의 매우 비 설명적인 오류의 조합이라는 것을 알았습니다.
TCP / IP 액세스가 활성화되어 있지 않기 때문에 PHP 응용 프로그램이 데이터베이스에 액세스 할 수 없습니다 . 이 문제를 해결하려면 두 가지 사항을 변경해야했습니다.
- 그것은 더 나은 내가 설정 한 경우 일 것 같았다
listen_addresses
에'*'
에서postgresql.conf
. 이것이 완전히 필요한지 확실하지 않지만이 방화벽과 같은 잘 방화벽이있는 컴퓨터에서는 문제가되지 않습니다. setsebool -P httpd_can_network_connect_db 1
Apache가 실제로 프로그램을 사용하여 연결하도록 터미널 창에서 명령을 실행해야했습니다 . 이 단계 후에 PostgreSQL을 다시 시작해야했는지 기억이 나지 않을 것입니다.
마지막 참고 사항 :에서 줄 tcpip_socket=true
을 바꿀 것을 제안하는 몇 가지 사항을 보았습니다 postgresql.conf
. 이것은 PostgreSQL 9.1 에서는 작동하지 않습니다 . 사실, 그것을 추가 한 후에는 시작을 거부했습니다. 그러지 마
어쨌든, 이것이 내가 한 것과 같은 문제에 부딪 치는 사람을 도울 수 있기를 바랍니다!
답변
솔루션을 볼 때까지 phpPgAdmin을 설정할 수 없습니다. 솔루션을 완료하려면 다음을 수행하십시오.
- phpPgAdmin 서버가 postgresql 서버 (9.2)와 동일한 컴퓨터에 있으면 설정
listen_address
하는 것이 유용하지 않습니다 .'*'
localhost
- 유용한 유일한 것은 SELinux 부울을 설정하는 것입니다.
답변
위의 솔루션을 시도했지만 여전히 ‘로그인 실패’메시지가 나타납니다. 해결하려면 파일 password
에서 IPv6도 설정해야 pg_hba.conf
합니다. 그렇게하십시오 : vi /var/lib/pgsql/9.4/data/pg_hba.conf
그에 따라 편집하십시오. 그런 다음 httpd 및 postgresql을 모두 다시 시작하십시오 (사용중인 버전이 무엇이든간에)
답변
기본 사용자는 postgres 이며 새로운 설치 암호는 없습니다. 따라서 사용자 상자에 이것을 넣고 암호 상자를 지우십시오. 딸깍 하는 소리. 끝난.
pgAdmin4 를 사용 하고 처음 로그인 할 때 사용자 postgres에 사용하는 비밀번호 인 비밀번호를 입력 한 경우 . 이제 phppgadmin에서 postgres를 사용자 이름으로 입력하고 암호 상자에 해당 암호를 입력하십시오. 딸깍 하는 소리. 끝난. 감사합니다
답변
GitLab-CE 서버에서 실행 하면 로그 파일에 수신되는 메시지는 다음과 같습니다.
tail -f -n 8 /var/log/postgresql/postgresql-*-main.log
......
2019-07-24 16:33:15.073 EDT [9640] postgres@template1 LOG: provided user name (postgres) and authenticated user name (gitlab-www) do not match
2019-07-24 16:33:15.073 EDT [9640] postgres@template1 FATAL: Peer authentication failed for user "postgres"
2019-07-24 16:33:15.073 EDT [9640] postgres@template1 DETAIL: Connection matched pg_hba.conf line 85: "local all postgres peer"
그래서 psql
cli 를 통해 연결 하고 누락 된 역할 / 사용자 (제 경우 gitlab-www
)를 만듭니다 .
# sudo -u postgres psql
CREATE USER "gitlab-www" WITH PASSWORD 'YouKnow..' CREATEDB CREATEROLE SUPERUSER LOGIN;
그런 다음 로그인 프로세스가 문을 엽니 다.