วิธีเชื่อมต่อ Postgres กับเซิร์ฟเวอร์ localhost โดยใช้ pgAdmin บน Ubuntu


104

ฉันติดตั้ง Postgres ด้วยคำสั่งนี้

sudo apt-get install postgresql postgresql-client postgresql-contrib libpq-dev

ใช้psql --versionกับเทอร์มินัลฉันได้รับpsql (PostgreSQL) 9.3.4

จากนั้นฉันติดตั้งpgadminด้วย

sudo apt-get install pgadmin3

ต่อมาฉันเปิด UI และสร้างเซิร์ฟเวอร์ด้วยข้อมูลนี้

ป้อนคำอธิบายภาพที่นี่

แต่ข้อผิดพลาดนี้ปรากฏขึ้น

ป้อนคำอธิบายภาพที่นี่

จะแก้ไขได้อย่างไร


ดาวน์โหลด postgresql ของ v9.3 จากลิงค์นี้https://www.enterprisedb.com/downloads/postgres-postgresql-downloads#windowsและเรียกใช้ pgadmin III อีกครั้งคุณจะได้รับโฮสต์ท้องถิ่นที่ติดตั้งแล้วไม่จำเป็นต้องเชื่อมต่อ
Dhavalkumar Prajapati

คำตอบ:


29

dbคุณไม่ได้สร้างผู้ใช้ หากเป็นเพียงการติดตั้งใหม่ผู้ใช้เริ่มต้นคือpostgresและรหัสผ่านควรว่างเปล่า หลังจากเข้าถึงแล้วคุณสามารถสร้างผู้ใช้ที่คุณต้องการได้


43
หากฉันทำเช่นนั้นข้อผิดพลาดนี้จะปรากฏขึ้น Error connecting to the server: fe_sendauth: no password supplied
TuGordoBello

ที่นี่ใน opens ใช้รหัสผ่านผู้ใช้ postgres ไม่ว่างเปล่า แต่ไม่ได้กำหนด (เครื่องหมายอัศเจรีย์ใน / etc / shadow) ไม่สามารถล็อกอินด้วยรหัสผ่านได้
Str.

เพิ่งทดสอบเพื่อตรวจสอบและใช่ Pg จะปล่อยออกมาpassword authentication failedสำหรับผู้ใช้ที่ไม่มีตัวตนเมื่อใช้md5auth
Craig Ringer

1
คุณสร้างผู้ใช้อย่างไร
ahnbizcad

2
"เกิดข้อผิดพลาดในการเชื่อมต่อกับเซิร์ฟเวอร์: fe_sendauth: ไม่มีรหัสผ่านที่ระบุ"
Cerin

175

แก้ไขรหัสผ่านสำหรับบทบาท postgres:

sudo -u postgres psql postgres

alter user postgres with password 'postgres';

ตอนนี้เชื่อมต่อกับ pgadmin โดยใช้ชื่อผู้ใช้ postgres และรหัสผ่าน postgres

ตอนนี้คุณสามารถสร้างบทบาทและฐานข้อมูลโดยใช้ pgAdmin

จะเปลี่ยนรหัสผ่านผู้ใช้ PostgreSQL ได้อย่างไร?


10
หรือคุณสามารถ .. 'sudo -u postgres psql' แล้วพิมพ์ '\ password' กด Enter ใส่รหัสผ่านใหม่.
Jay Modi

1
คำตอบนี้ควรได้รับการยอมรับ ขอบคุณ. สิ่งนี้ช่วยได้มาก
Pramesh Bajracharya

25

ช่วยฉัน:


1. เปิดไฟล์ pg_hba.conf

sudo นาโน /etc/postgresql/9.x/main/pg_hba.conf

และเปลี่ยนบรรทัดนี้:

Database administrative login by Unix domain socket
local   all             postgres                                md5

ถึง

Database administrative login by Unix domain socket
local   all             postgres                                trust
  1. รีสตาร์ทเซิร์ฟเวอร์

    sudo service postgresql เริ่มต้นใหม่

  2. เข้าสู่ระบบ psqlและตั้งรหัสผ่าน

    psql -U postgres

ALTER USER postgres with password 'new password';

  1. เปิดไฟล์ อีกครั้งpg_hba.confและเปลี่ยนบรรทัดนี้:
ล็อกอินการดูแลระบบฐานข้อมูลโดยซ็อกเก็ตโดเมน Unix
    ความไว้วางใจของ postgres ในท้องถิ่นทั้งหมด

ถึง

    ล็อกอินการดูแลระบบฐานข้อมูลโดยซ็อกเก็ตโดเมน Unix
    local postgres md5
  1. รีสตาร์ทเซิร์ฟเวอร์

    sudo service postgresql เริ่มต้นใหม่


มันได้ผล.

ป้อนคำอธิบายภาพที่นี่


ลิงค์ที่เป็นประโยชน์
1: PostgreSQL (จาก ubuntu.com)


สิ่งนี้ช่วยแก้ปัญหาของฉันได้ แต่คุณสามารถอธิบายได้ว่าทำไมการเปลี่ยนการเข้าสู่ระบบผู้ดูแลระบบ db ให้เชื่อถือก่อนที่จะตั้งรหัสผ่าน postgres จึงเป็นสิ่งจำเป็นในบางกรณี
HostMyBus

@HostMyBus สวัสดีคนจริงฉันจำไม่ได้เลยในกรณีนี้ ลองขุดคำตอบจากเว็บ (ฉันคิดว่ามีคำอธิบายที่ดีเกี่ยวกับเรื่องนี้)
Artem Solovev

@HostMyBus นี่คือคุณสมบัติด้านความปลอดภัย หากตั้งค่าเป็นความไว้วางใจผู้ใช้ใด ๆ บนเครื่องสามารถล็อกอินเข้าสู่ฐานข้อมูลได้
Simon Zyx

และคุณไม่ต้องการมันจริงๆ: เพียงใช้คำตอบ WiredIn
Simon Zyx

4

สร้างผู้ใช้ก่อน คุณต้องทำสิ่งนี้ในฐานะผู้ใช้ postgres เนื่องจากบัญชีระบบ postgres ไม่มีการกำหนดรหัสผ่านคุณสามารถตั้งรหัสผ่านก่อนหรือดำเนินการดังนี้:

sudo /bin/bash
# you should be root now  
su postgres
# you are postgres now
createuser --interactive

และโปรแกรมจะแจ้งให้คุณทราบ


sudo -u postgres -iจะนำไปสู่คำถามรหัสผ่าน ไม่มีรหัสผ่านในระบบของฉันที่คุณสามารถป้อนได้ ข้อเสนอของฉันใช้ได้ผลเสมอ (อืมหวังว่า)
Str.

sudo -u postgress -iไม่นำไปสู่คำถามรหัสผ่าน (อย่างน้อยใน Ubuntu ของฉันหลังจากการติดตั้งเริ่มต้น) อย่างใดอย่างหนึ่งcreateuser --interactiveไม่ได้นำไปสู่การใช้รหัสผ่านพรอมต์ ... :(
OndřejDoněk

@ OndřejDoněkข้อเสนอของฉันคือ sudo / bin / bash ก่อนคุณทำอย่างนั้นหรือ?
Str.

คุณควรพิมพ์บทบาทอะไร
ahnbizcad

$ createuser --interactive ป้อนชื่อบทบาทที่จะเพิ่ม: postgres บทบาทใหม่จะเป็น superuser หรือไม่? (y / n)y
Elise Chant

2

ก่อนอื่นคุณควรเปลี่ยนรหัสผ่านโดยใช้เทอร์มินัล (ชื่อผู้ใช้คือ postgres)

postgres = # \ รหัสผ่าน postgres

จากนั้นคุณจะได้รับแจ้งให้ป้อนรหัสผ่านและยืนยัน

ตอนนี้คุณจะสามารถเชื่อมต่อโดยใช้ pgadmin ด้วยรหัสผ่านใหม่


0

หากคุณเปิดpsqlคอนโซลในหน้าต่างเทอร์มินัลโดยพิมพ์

$ psql

ชื่อผู้ใช้ของคุณเป็นผู้ใช้ขั้นสูงจะแสดงก่อน=#ตัวอย่างเช่น:

elisechant=#$

นั่นจะเป็นชื่อผู้ใช้ที่คุณควรใช้สำหรับ localhost

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