วิธีการทำให้ psql เริ่มต้นที่ localhost?


10

ฉันมีสถานการณ์ต่อไปนี้:

saji@geeklap:~$ psql -U postgres
psql: FATAL:  Ident authentication failed for user "postgres"

saji@geeklap:~$ psql -h localhost -U postgres
Password for user postgres: 
psql (8.4.14)
SSL connection (cipher: DHE-RSA-AES256-SHA, bits: 256)
Type "help" for help.

postgres=# 

ฉันพยายามที่จะเข้าสู่เซิร์ฟเวอร์ที่ติดตั้งในระบบของฉันเป็นผู้ใช้postgresql postgresฉันสามารถเข้าสู่ระบบ -h localhostแต่ถ้าฉันระบุ ในขณะที่psqlเอกสารอธิบายว่า:

หากคุณไม่ใช้ชื่อโฮสต์ psql จะเชื่อมต่อผ่านซ็อกเก็ต Unix-domain กับเซิร์ฟเวอร์บนโลคัลโฮสต์หรือผ่าน TCP / IP ไปยัง localhost บนเครื่องที่ไม่มีซ็อกเก็ต Unix-domain

Ref: http://www.postgresql.org/docs/current/static/app-psql.html#R2-APP-PSQL-CON

ทำไมฉันไม่สามารถเข้าสู่ระบบโดยไม่ระบุโฮสต์มีไฟล์การกำหนดค่าบางอย่างที่ต้องการการเปลี่ยนแปลงใด ๆ ที่จะเกิดขึ้นตามที่บอกไว้ในpsqlเอกสารประกอบ?


สร้าง.psqlrcที่ระบุค่าเริ่มต้น - หรือเพียงแค่แก้ไขpg_hba.confเพื่อใช้การmd5รับรองความถูกต้องสำหรับlocalการเชื่อมต่อ (ซ็อกเก็ตยูนิกซ์) โปรดดูเอกสารสำหรับและpg_hba.conf psql
Craig Ringer

คำตอบ:


7

ในความเป็นจริงมันทำงานเป็นเอกสาร

เมื่อไม่ได้ระบุชื่อโฮสต์ให้psqlเชื่อมต่อกับซ็อกเก็ต Unix-domain ที่มีการรวบรวมเส้นทางส่วนนั้นทำงานในกรณีของคุณมิฉะนั้นจะส่งข้อความแสดงข้อผิดพลาดที่แตกต่างจากคำถามที่แสดง

ข้อความแสดงข้อผิดพลาดในคำถาม:

psql: FATAL:  Ident authentication failed for user "postgres"

เกี่ยวข้องกับข้อเท็จจริงที่ว่าผู้ใช้ Unix เท่านั้นที่ postgres ได้รับอนุญาตให้เชื่อมต่อในฐานะผู้ใช้ฐานข้อมูล postgres เมื่อใช้ซ็อกเก็ต Unix โดเมน นี่คือการกำหนดค่าในpg_hba.confไฟล์

โดยทั่วไปคุณควรทำอะไรใน Ubuntu เมื่อคุณเข้าสู่ระบบในฐานะผู้ใช้ปกติ แต่คุณเป็นผู้ดูแลระบบ:

$ sudo -u postgres psql

1
ขอบคุณ .. กรุณาเปลี่ยนไปsudo -u postgresql psql sudo -u postgres psqlฉันพยายามแก้ไข แต่ทำไม่ได้เนื่องจากการแก้ไขมีเพียง <6 ตัวอักษร
saji89

13

หากคุณไม่ชอบค่าเริ่มต้นของการเชื่อมต่อผ่านซ็อกเก็ตยูนิกซ์คุณสามารถตั้งค่าตัวแปรสภาพแวดล้อมPGHOSTได้ ฉันมี

export PGHOST="db"

ในของฉัน~/.bashrcเพื่อเชื่อมต่อกับเซิร์ฟเวอร์ด้วยชื่อนั้น ตัวแปรสภาพแวดล้อมที่ใช้งานง่ายอีกสองสามอย่างได้รับการบันทึกไว้ที่http://www.postgresql.org/docs/9.5/static/libpq-envars.html

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.