PhpPgAdmin में लॉग इन नहीं कर सकते


10

मैं अपने परीक्षण मशीन पर phpPgAdmin स्थापित करने की कोशिश कर रहा हूं ताकि मैं psqlCLI का उपयोग किए बिना हमेशा पोस्टग्रेक्यूएल के साथ इंटरफ़ेस कर सकूं । मेरे पास आरपीएम रिपॉजिटरी के माध्यम से पोस्टग्रेक्यूएल 9.1 स्थापित है, जबकि मैंने phpPgAdmin 5.0.4 "मैन्युअल रूप से" (phpPgAdmin वेबसाइट से संग्रह को निकालकर) स्थापित किया है। रिकॉर्ड के लिए, मेरा होस्ट ओएस सेंटोस 6.2 है।

मैंने निम्नलिखित कॉन्फ़िगरेशन परिवर्तन पहले ही कर दिए हैं:

PostgreSQL

  • अंदर pg_hba.conf, मैंने सभी METHODको md5 में बदल दिया ।
  • मैंने पोस्टग्रेज खाते को एक पासवर्ड दिया
  • मैंने एक पासवर्ड के साथ एक नया खाता नाम वेबर जोड़ा (ध्यान दें कि मैंने खाते के लिए कुछ और नहीं किया है, इसलिए मैं बिल्कुल नहीं कह सकता कि मुझे पता है कि इसकी क्या अनुमति है और सभी)

phpPgAdmin config.inc.php

  • के लिए लाइन बदल दी $conf['servers'][0]['host'] = '';है $conf['servers'][0]['host'] = '127.0.0.1';(मैं भी वहाँ मूल्य के रूप में स्थानीय होस्ट का उपयोग करने की कोशिश की है)।
  • को सेट $conf['extra_login_security']करें false

जब भी मैं phpPgAdmin में लॉग इन करने की कोशिश करता हूं, मुझे "लॉगिन विफल" मिलता है, भले ही मैं सफल क्रेडेंशियल (जो काम करता हूं) का उपयोग करता हूं psql। मैं अक्सर पूछे जाने वाले प्रश्न 3 में पूछे गए चरणों में से कुछ के माध्यम से जाने की कोशिश की है , लेकिन यह अभी तक वहाँ अच्छी तरह से काम नहीं किया है। यह संभवतः मदद नहीं करता है कि यह मेरा पहला दिन है PostgreSQL के साथ काम करना। मैं MySQL से बहुत परिचित हूं, लेकिन मुझे उस प्रोजेक्ट के लिए PostgreSQL का उपयोग करना होगा, जिस पर मैं काम कर रहा हूं।

किसी को भी कैसे मदद करने के लिए कुछ की पेशकश कर सकता phpPgAdmin CentOS 6.2 पर स्थापित करने के लिए? अगर मैंने अभी तक अपने कॉन्फ़िगरेशन में कुछ गलत किया है, तो कुछ / सब कुछ दूर उड़ाना कोई बड़ी बात नहीं है, क्योंकि ऐसा नहीं है कि मैंने अभी तक कोई डेटा संग्रहीत किया है!

मैं आपके पास किसी भी अंतर्दृष्टि की सराहना कर सकता हूं!

जवाबों:


7

खैर, मुझे यह समझ में आया - यह PostgreSQL के साथ अनुभवहीनता का एक संयोजन था और phpPgAdmin से बहुत गैर-वर्णनात्मक त्रुटियां थीं।

यह बताता है कि मेरे पास टीसीपी / आईपी एक्सेस सक्षम नहीं था, जिसका अर्थ था कि कोई भी PHP एप्लिकेशन डेटाबेस (एस) तक नहीं पहुंच सकता है । इसे ठीक करने के लिए, मुझे दो बदलाव करने पड़े:

  • यह बेहतर होगा यदि मैं सेट काम करने के लिए लग रहा था listen_addressesकरने के लिए '*'में postgresql.conf। मुझे यकीन नहीं है कि यह पूरी तरह से आवश्यक है या नहीं, लेकिन इस तरह की एक अच्छी तरह से फ़ायरवॉल मशीन पर, यह एक समस्या नहीं होनी चाहिए।
  • मुझे setsebool -P httpd_can_network_connect_db 1अपाचे को वास्तव में प्रोग्राम और कनेक्ट के साथ प्राप्त करने के लिए एक टर्मिनल विंडो से कमांड चलाना था । मुझे याद नहीं है कि अगर मुझे इस कदम के बाद PostgreSQL को फिर से शुरू करना पड़ा, लेकिन यह शायद चोट नहीं पहुंचाएगा।

एक अंतिम नोट: मैंने कुछ चीजों को एक लाइन tcpip_socket=trueमें बदलने का सुझाव देते हुए देखा postgresql.conf। यह जाहिरा तौर पर PostgreSQL 9.1 में काम नहीं करता है । वास्तव में, मैंने इसे जोड़ने के बाद शुरू करने से इनकार कर दिया। तो यह मत करो।

वैसे भी, उम्मीद है कि यह किसी ऐसे व्यक्ति की मदद कर सकता है जो मैंने किया था!


सुरक्षा संवर्धित लिनक्स (SELinux) के साथ सिस्टम पर, httpd_can_network_connect_dbध्वज को स्थापित करना setseboolआवश्यक है।
उत्तरार्ध

बस स्पष्ट करने के लिए, आपको जरूरी नहीं कि टीसीपी / आईपी का उपयोग करने के लिए phpPgAdmin (या अन्य PHP स्क्रिप्ट) प्राप्त करने में सक्षम होना चाहिए पोस्टग्रेज से कनेक्ट करने के लिए यदि आप एक ही सर्वर पर हैं, तो आप एक स्थानीय यूनिक्स सॉकेट के माध्यम से वैकल्पिक कनेक्ट के रूप में कर सकते हैं। आप शायद अभी भी SELinux संबंधित समस्याओं में भाग लेंगे।
xzilla

0

जब तक मैं आपका समाधान नहीं देख लेता, मैं phpPgAdmin सेट नहीं कर सका। अपना समाधान पूरा करने के लिए:

  • यह सेट listen_addressकरने के लिए उपयोगी नहीं है कि '*'क्या आपका phpPgAdmin सर्वर आपके पोस्टग्रैस्क्ल सर्वर (9.2 मेरे लिए) की तुलना में एक ही कंप्यूटर पर है, तो आप इसे सेट कर सकते हैं localhost
  • केवल एक चीज जो उपयोगी है वह है SELinux बूलियन सेट करना।

0

मैंने उपरोक्त समाधान की कोशिश की, लेकिन फिर भी 'लॉगिन विफल' संदेश मिला। हल करने के लिए, मुझे यह सुनिश्चित करना था कि IPv6 फ़ाइल passwordमें भी सेट है pg_hba.conf। इसलिए करते हैं: vi /var/lib/pgsql/9.4/data/pg_hba.confऔर तदनुसार संपादित करें। फिर httpd और postgresql (जो भी संस्करण आप उपयोग कर रहे हैं, दोनों को फिर से शुरू करें)


0

ठीक है, डिफ़ॉल्ट उपयोगकर्ता पोस्टग्रेज है और नई स्थापना का कोई पासवर्ड नहीं है। तो उपयोगकर्ता बॉक्स में इसे डालें और पासवर्ड बॉक्स को साफ़ करें। पर क्लिक करें। किया हुआ।

आप का उपयोग किया है pgAdmin4 और पहली बार प्रवेश करने पर एक पासवर्ड पासवर्ड है कि आपके द्वारा दर्ज उपयोगकर्ता के लिए उपयोग कर postgres । अब phppgadmin टाइप में यूजर नेम और उस पासवर्ड को पासवर्ड बॉक्स में पोस्ट करता है। पर क्लिक करें। किया हुआ। धन्यवाद


0

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सीएलआई से जुड़ता हूं और लापता भूमिका / उपयोगकर्ता (मेरे मामले में gitlab-www) बनाता हूं :

# sudo -u postgres psql
CREATE USER "gitlab-www" WITH PASSWORD 'YouKnow..' CREATEDB CREATEROLE SUPERUSER LOGIN;

और फिर, लॉगिन प्रक्रिया खुले यह दरवाजे हैं।


सामान्य तौर पर, सहकर्मी प्रमाणीकरण दिए गए उपयोगकर्ता को केवल कमांड लाइन (जैसे psql) के माध्यम से Postgres तक पहुंचने में सक्षम करेगा, और आमतौर पर phpPgAdmin के साथ काम नहीं करेगा। एक नया उपयोगकर्ता बनाना एक अच्छा समाधान है, लेकिन आप बस pg_hba.conf में प्रमाणीकरण विधि भी बदल सकते हैं।
xzilla
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.