Cách kết nối Postgres với máy chủ localhost bằng pgAdmin trên Ubuntu?


102

Tôi đã cài đặt Postgres bằng lệnh này

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

Sử dụng psql --versiontrên thiết bị đầu cuối tôi nhận đượcpsql (PostgreSQL) 9.3.4

sau đó tôi đã cài đặt pgadminvới

sudo apt-get install pgadmin3

Sau đó, tôi đã mở giao diện người dùng và tạo máy chủ với thông tin này

nhập mô tả hình ảnh ở đây

nhưng lỗi này xuất hiện

nhập mô tả hình ảnh ở đây

Làm thế nào tôi có thể sửa chữa nó?


tải xuống postgresql của v9.3 từ liên kết này https://www.enterprisedb.com/downloads/postgres-postgresql-downloads#windows và chạy lại pgadmin III, bạn sẽ nhận được máy chủ cục bộ đã cài đặt mà không cần kết nối.
Dhavalkumar Prajapati

Câu trả lời:


29

Bạn chưa tạo người dùng db. Nếu nó chỉ là một cài đặt mới, thì người dùng mặc định là người dùng postgresvà mật khẩu phải để trống. Sau khi bạn truy cập nó, bạn có thể tạo những người dùng mà bạn cần.


43
Nếu tôi làm điều đó, lỗi này xuất hiện Error connecting to the server: fe_sendauth: no password supplied
TuGordoBello

Ở đây trên opens sử dụng mật khẩu người dùng postgres không trống, nhưng không xác định (dấu chấm than trong / etc / shadow). Không thể đăng nhập bằng mật khẩu.
Str.

Chỉ được kiểm tra để xác minh và có, Pg phát ra password authentication failedcho người dùng không tồn tại khi sử dụng md5auth.
Craig Ringer

1
làm thế nào để bạn tạo một người dùng?
ahnbizcad

2
"Lỗi kết nối với máy chủ: fe_sendauth: không cung cấp mật khẩu"
Cerin

174

Sửa đổi mật khẩu cho các postgres vai trò:

sudo -u postgres psql postgres

alter user postgres with password 'postgres';

Bây giờ kết nối với pgadmin bằng cách sử dụng postgres tên người dùng và postgres mật khẩu

Giờ đây, bạn có thể tạo vai trò và cơ sở dữ liệu bằng pgAdmin

Làm cách nào để thay đổi mật khẩu người dùng PostgreSQL?


10
hoặc bạn có thể chỉ .. 'sudo -u postgres psql' và sau đó nhập '\ password'. Nhấn Enter. nhập mật khẩu mới.
Jay Modi

1
Điều này nên được chấp nhận câu trả lời. Cảm ơn bạn. Điều này đã giúp rất nhiều.
Pramesh Bajracharya

25

Nó giúp tôi:


1. Mở tệp pg_hba.conf

sudo nano /etc/postgresql/9.x/main/pg_hba.conf

và thay đổi dòng này:

Database administrative login by Unix domain socket
local   all             postgres                                md5

đến

Database administrative login by Unix domain socket
local   all             postgres                                trust
  1. Khởi động lại máy chủ

    khởi động lại dịch vụ sudo postgresql

  2. Đăng nhập vào psqlđặt mật khẩu

    psql -U postgres

ALTER USER postgres with password 'new password';

  1. Một lần nữa mở tệp pg_hba.conf và thay đổi dòng này:
Đăng nhập quản trị cơ sở dữ liệu bằng ổ cắm miền Unix
    địa phương tin cậy tất cả bưu điện

đến

    Đăng nhập quản trị cơ sở dữ liệu bằng ổ cắm miền Unix
    cục bộ tất cả postgres md5
  1. Khởi động lại máy chủ

    khởi động lại dịch vụ sudo postgresql


Nó hoạt động.

nhập mô tả hình ảnh ở đây


Liên kết hữu ích
1: PostgreSQL (từ ubuntu.com)


Điều này đã giải quyết được vấn đề của tôi, nhưng bạn có thể giải thích tại sao việc thay đổi thông tin đăng nhập quản trị viên db thành tin cậy trước khi đặt mật khẩu postgres là cần thiết trong một số trường hợp không?
HostMyBus

@HostMyBus Chào bạn, thực ra tôi không nhớ lại trường hợp này. Cố gắng đào một số câu trả lời từ các trang web (tôi nghĩ rằng đó là một lời giải thích tốt về điều đó)
Artem Solovev

@HostMyBus đây là một tính năng bảo mật. Nếu nó được đặt thành tin cậy, mọi người dùng trên máy đều có thể đăng nhập vào cơ sở dữ liệu.
Simon Zyx

Và bạn thực sự không cần nó: Chỉ cần sử dụng câu trả lời của WiredIn
Simon Zyx 28/02 '19

4

Tạo người dùng trước. Bạn phải làm điều này với tư cách là người đăng bài của người dùng. Vì tài khoản hệ thống postgres không được gán mật khẩu, bạn có thể đặt mật khẩu trước hoặc bạn thực hiện như sau:

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

và chương trình sẽ nhắc bạn.


sudo -u postgres -isẽ dẫn đến câu hỏi mật khẩu. Không có mật khẩu trên hệ thống của tôi mà bạn có thể nhập. Đề xuất của tôi luôn hoạt động (hm, hy vọng).
Str.

sudo -u postgress -ikhông dẫn đến câu hỏi về mật khẩu (ít nhất là trên Ubuntu của tôi sau khi cài đặt mặc định). Hoặc là createuser --interactivekhông dẫn đến mật khẩu nhanh chóng ... :(
Ondřej Doněk

@ OndřejDoněk đề xuất của tôi trước tiên là sudo / bin / bash, bạn có làm vậy không?
Str.

bạn nên nhập vai trò gì?
ahnbizcad

$ createuser --interactive Nhập tên vai trò cần thêm: postgres Vai trò mới có phải là người dùng siêu cấp không? (y / n)y
Elise Chant

2

Trước tiên, bạn nên thay đổi mật khẩu bằng thiết bị đầu cuối. (tên người dùng là postgres)

postgres = # \ mật khẩu postgres

Sau đó, bạn sẽ được nhắc nhập mật khẩu và xác nhận nó.

Bây giờ bạn sẽ có thể kết nối bằng pgadmin với mật khẩu mới.


0

nếu bạn mở psqlbảng điều khiển trong cửa sổ dòng lệnh, bằng cách nhập

$ psql

tên người dùng của bạn là siêu người dùng sẽ được hiển thị trước =#, ví dụ:

elisechant=#$

Đó sẽ là tên người dùng bạn nên sử dụng cho localhost.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.