it-swarm.asia

الاتصال بخادم PostgreSQL: FATAL: لا يوجد إدخال pg_hba.conf للمضيف

مرحبًا ، أنا أحاول تشغيل موقع ويب تم إرساله إلي ولكن بعد ظهور هذا الخطأ

connect to PostgreSQL server: FATAL: no pg_hba.conf entry for Host "4X.XXX.XX.XXX", user "userXXX", database "dbXXX", SSL off in C:\xampp\htdocs\xmastool\index.php on line 37

بعد Googling تقول أنني أحتاج فقط لإضافة إدخال في ملف pg_hba.conf لهذا المستخدم المحدد. هذا هو ملف pg_hba.conf.

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# IPv4 local connections:
local dbXXX userXXX md5
Host    dbXXX  userXXX  XX.XXX.XXX.XXX           md5
Host    all             all             127.0.0.1/32            md5
# IPv6 local connections:
Host    all             all             ::1/128                 md5
# Allow replication connections from localhost, by a user with the
# replication privilege.
#Host    replication     postgres        127.0.0.1/32            md5
#Host    replication     postgres        ::1/128                 md5

ولكن بعد القيام بذلك ، لا يزال الخطأ مستمرا. قمت بإعادة تشغيل خادم XAMPP عدة مرات ولكن لم تظهر أي تغييرات. شكرا مقدما

204
Jin

قم بإضافة أو تحرير السطر التالي في postgresql.conf:

listen_addresses = '*'

أضف السطر التالي باعتباره السطر الأول من pg_hba.conf. يسمح بالوصول إلى جميع قواعد البيانات لجميع المستخدمين بكلمة مرور مشفرة:

# TYPE DATABASE USER CIDR-ADDRESS  METHOD
Host  all  all 0.0.0.0/0 md5

أعد تشغيل Postgresql بعد إضافة هذا بـ service postgresql restart أو الأمر المكافئ للإعداد الخاص بك.

244
Jérôme Radix

يعمل هذا الحل مع IPv4/IPv6

nano /var/lib/pgsql/data/pg_hba.conf

أضف في النهاية

Host all all      ::1/128      md5
Host all postgres 127.0.0.1/32 md5

ثم قم بإعادة تشغيل خدمة postgresql

/etc/init.d/postgresql restart
25
Jose Nobile

الطريقة التي حللت بها كانت:

تمت إضافة السطر على النحو التالي في pg_hba.conf:

hostnossl    all          all            0.0.0.0/0  trust        

وتم تعديل هذا في postgresql.conf ، كما هو موضح:

listen_addresses = '*'  

كان لدي هذا المثال يعمل على Centos 7. و Postgres 9.5 في VM في Azure ، بالنظر إلى هذا كان POC (دليل على المفهوم) لن ترغب في الاتصال بدون SSL في بيئة المنتج الفعلية الخاصة بك.

للاتصال بالمثيل الذي كنت أستخدمه pgAdmin 4 على macOS Sierra.

13
Roberto Lopez

Fresh Postgres 9.5 install، Ubuntu.

كان المفتاح --- local نوع الاتصال ، حيث يستخدم psql اتصال مقبس المجال.

pg_hba.conf

# TYPE DATABASE USER CIDR-ADDRESS  METHOD
local all all md5
Host  all  all 0.0.0.0/0 md5
6
willianpts
  1. أضف السطر التالي في أسفل pg_hba.conf:

    hostnossl all all 0.0.0.0/0 md5

  2. إضافة/تعديل السطر في postgresql.conf:

    listen_addresses = '*'

  3. تأكد من أن المستخدم المتصل لديه كلمة مرور: (على سبيل المثال ، قم بتوصيل مستخدم باسم postgres)

    أ. قم بتشغيل الأمر psql التالي باستخدام حساب المستخدم postgres:

    Sudo -u postgres psql postgres

    ب. قم بتعيين كلمة المرور:

    # \password postgres

enter image description here

4
nguyên

حدث لي نفس الخطأ عندما حاولت الاتصال بقاعدة بيانات محلية باستخدام نفق SSH. لقد قمت بحلها عن طريق تغيير اسم المضيف من localhost إلى 127.0.0.1.

3
Finesse

تعليمات لمستخدمي دبيان.

تسجيل الدخول كمستخدم posgres:

$ Sudo su - postgres

احصل على موقع pg_hba.conf عن طريق الاستعلام عن قاعدة البيانات:

$ psql -c "SHOW hba_file;"

              hba_file               
-------------------------------------
/etc/postgresql/11/main/pg_hba.conf
(1 row)

افتح pg_hba.conf:

nano /etc/postgresql/11/main/pg_hba.conf

أضف التهيئة حيث تقول "ضع التهيئة الفعلية هنا":

# TYPE DATABASE USER CIDR-ADDRESS  METHOD
Host  all  all 0.0.0.0/0 md5

تسجيل الخروج إلى المستخدم الخاص بك:

$ exit
logout

أعد تشغيل خادم postgres لتصبح التغييرات سارية المفعول:

$ Sudo systemctl restart postgresql
2
Eugene Kulabuhov

ابحث عن ملف التكوين الصحيح:

su - postgres -c "psql -t -P format=unaligned -c 'show hba_file';"

أضف ما يلي في نهاية الملف:

local all all peer

ثم أعد تشغيل تطبيق PostgreSQL:

/bin/systemctl restart postgresql*.service
2
Feriman

عملت هذه لي أدناه: (pg_hba.conf)

# TYPE  DATABASE        USER            ADDRESS                 METHOD
# "local" is for Unix domain socket connections only     
local   all             all                                     md5
# IPv4 local connections:
Host    all             all             127.0.0.1/32            trust
Host    all             all             0.0.0.0/0               trust
# IPv6 local connections:
Host    all             all             ::1/128                 trust
Host    all             all             0.0.0.0/0               trust

ثقة

السماح بالاتصال دون قيد أو شرط. تسمح هذه الطريقة لأي شخص يمكنه الاتصال بخادم قاعدة بيانات PostgreSQL بتسجيل الدخول مثل أي مستخدم PostgreSQL يرغب فيه ، دون الحاجة إلى كلمة مرور أو أي مصادقة أخرى.

mD5

مطالبة العميل بتوفير كلمة مرور مزدوجة التجزئة لـ MD5 للمصادقة.

الرجوع لمزيد من هنا

1
Ravistm

في حالتي ، اضطررت إلى إضافة السطر بالضبط كما هو مقترح في معلومات الخطأ. لا يمكن تجاوزه بإضافة "جميع" المستخدمين مع جميع عناوين IP كقاعدة. الآن مثل:

PosgreSQL 10.5 على CentOS 7.

# IPv4 local connections:
Host    all             all             127.0.0.1/32                    md5
Host    <db_name>       postgres        <my_client_machine_ip>/32       md5
1
WesternGun