Saya memiliki skenario berikut:
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=#
Saya mencoba masuk ke postgresql
server yang diinstal di sistem saya sebagai pengguna postgres
. Saya dapat masuk hanya jika saya menentukan -h localhost
. Sedangkan psql
dokumentasi mengatakan bahwa:
Jika Anda menghilangkan nama host, psql akan terhubung melalui soket domain Unix ke server di host lokal, atau melalui TCP / IP ke host lokal di mesin yang tidak memiliki soket domain Unix.
Ref: http://www.postgresql.org/docs/current/static/app-psql.html#R2-APP-PSQL-CON
Mengapa saya tidak dapat masuk tanpa menentukan host, apakah ada beberapa file konfigurasi yang memerlukan perubahan untuk hal-hal yang terjadi seperti yang diceritakan dalam psql
dokumentasi?
postgresql
12.04
disajikan89
sumber
sumber
.psqlrc
yang menentukan default - atau hanya mengeditpg_hba.conf
untuk menggunakanmd5
otentikasi untuklocal
koneksi (soket unix). Lihat dokumentasi untukpg_hba.conf
danpsql
.Jawaban:
Bahkan, ini berfungsi seperti yang didokumentasikan.
Ketika nama host dihilangkan,
psql
sambungkan ke soket Unix-domain yang jalurnya dikompilasi. Bagian itu berfungsi dalam kasus Anda, jika tidak maka akan menghasilkan pesan kesalahan yang berbeda dari apa yang ditampilkan pertanyaan.Pesan kesalahan dalam pertanyaan:
berkaitan dengan fakta bahwa hanya postgres pengguna Unix yang memiliki izin untuk terhubung sebagai postgres pengguna basis data saat menggunakan soket domain Unix. Ini dikonfigurasi dalam
pg_hba.conf
file.apa yang biasanya Anda lakukan di Ubuntu ketika Anda masuk sebagai pengguna normal, tetapi Anda adalah administrator sistem:
sumber
sudo -u postgresql psql
kesudo -u postgres psql
. Saya mencoba mengedit. Tetapi tidak bisa, karena hasil edit hanya memiliki <6 karakter.Jika Anda tidak suka koneksi standar melalui soket unix, Anda dapat mengatur variabel lingkungan
PGHOST
. saya sudahdi saya
~/.bashrc
, untuk terhubung ke server dengan nama itu. Beberapa variabel lingkungan yang lebih berguna didokumentasikan di http://www.postgresql.org/docs/9.5/static/libpq-envars.htmlsumber