สมมติว่าคุณเห็นข้อความนี้:
FATAL: Ident authentication failed for user "..."
สาเหตุของข้อความแสดงข้อผิดพลาดนี้คืออะไร
สมมติว่าคุณเห็นข้อความนี้:
FATAL: Ident authentication failed for user "..."
สาเหตุของข้อความแสดงข้อผิดพลาดนี้คืออะไร
คำตอบ:
หมายความว่า Postgres พยายามตรวจสอบสิทธิ์ผู้ใช้โดยใช้โปรโตคอล Identity และไม่สามารถทำได้ Ident auth ทำงานเช่นนี้:
pg_hba.conf
ไฟล์ของคุณ(ใน/etc/postgres-something/main
) กำหนด 'Ident' เป็นโปรโตคอลในการเชื่อมต่อกับฐานข้อมูลdb
สำหรับผู้ใช้ที่เชื่อมต่อจากโฮสต์ที่แน่นอนสาเหตุและวิธีแก้ไขที่เป็นไปได้:
sudo apt-get install oidentd
)CREATE ROLE foo
และทำ /etc/postgresql/.../main/pg_ident.conf
อีกวิธีหนึ่งคือเพิ่มรายการไปยังบางทีคุณอาจต้องการเชื่อมต่อด้วยรหัสผ่านไม่ใช่รหัสประจำตัว แก้ไขpg_hba.conf
ไฟล์อย่างเหมาะสม ตัวอย่างเช่นการเปลี่ยนแปลง:
host all all 127.0.0.1/32 ident
ไปยัง
host all all 127.0.0.1/32 md5
ไม่แน่ใจเกี่ยวกับสาเหตุ แต่สิ่งนี้แก้ไขได้สำหรับฉัน:
ใน pg_hba.conf
เปลี่ยนเป็น:
โฮสต์ทั้งหมด 127.0.0.1/32 md5
ข้อผิดพลาดที่แน่นอน: Caused by: org.postgresql.util.PSQLException: FATAL: Ident authentication failed for user "postgres"
บน CentOS ให้เพิ่มบรรทัดต่อไปนี้ลงใน/var/lib/pgsql/9.3/data/pg_hba.conf
:
host all all 127.0.0.1/32 trust
และคอมเม้นท์รายการอื่น ๆ
แน่นอนการตั้งค่านี้ไม่ปลอดภัย แต่ถ้าคุณแค่ยุ่งเกี่ยวกับการพัฒนา VM อย่างฉันก็อาจจะดี ...
หากคุณยังไม่ได้ลองให้ลองตรวจสอบไฟล์ pg_hba.conf ของคุณ มันจะมีชื่อบางอย่างเช่น /var/lib/pgsql/9.3/data/pg_hba.conf (Fedora 20) คุณอาจต้องใช้ 'find / -name pg_hba.conf' เพื่อค้นหา
ที่ด้านล่างของไฟล์ให้เปลี่ยนค่า 'วิธี' เป็น 'ความไว้วางใจ' สำหรับการทดสอบในท้องถิ่น (ดู postgres docs สำหรับข้อมูลทั้งหมด) รีบูทเครื่องเพื่อให้แน่ใจว่าทุกอย่างเริ่มสะอาดและมีการอ่านพารามิเตอร์ใหม่
หวังว่านี่จะช่วยรักษาความเศร้าโศกของคุณได้ มันแก้ไขปัญหาของฉันใน Fedora 20 ด้วย PostgreSQL 9.3
pg_ctl reload
จากคอนโซลหรือSELECT pg_reload_conf();
เมื่อเรียกใช้งาน SQL ในฐานะผู้ใช้ที่มีสิทธิ์
/var/lib/psql/data