Saya menggunakan aplikasi PostgreSql untuk mac ( http://postgresapp.com/ ). Saya pernah menggunakannya di komputer lain, tetapi ini membuat saya kesulitan ketika menginstal di macbook saya. Saya telah menginstal aplikasi dan saya berlari:
psql -h localhost
Ia mengembalikan:
psql: FATAL: database "<user>" does not exist
Sepertinya saya bahkan tidak bisa menjalankan konsol untuk membuat database yang ingin dicari. Hal yang sama terjadi ketika saya menjalankan:
psql
atau jika saya meluncurkan psql dari menu drop down aplikasi:
Statistik mesin:
OSX 10.8.4
psql (PostgreSQL) 9.2.4
Bantuan apa pun dihargai.
Saya juga berusaha menginstal PostgreSql via homebrew dan saya mendapatkan masalah yang sama. Saya juga membaca halaman dokumentasi aplikasi yang menyatakan:
Ketika Postgres.app pertama kali dijalankan, itu menciptakan database $ USER, yang merupakan database default untuk psql ketika tidak ada yang ditentukan. Pengguna default adalah $ USER, tanpa kata sandi.
Jadi sepertinya aplikasi ini tidak menghasilkan $ USER tetapi saya telah menginstal-> uninstall-instal ulang beberapa kali sekarang jadi pasti ada sesuatu dengan mesin saya.
Saya menemukan jawabannya tetapi saya tidak yakin bagaimana cara kerjanya sebagai pengguna yang menjawab di utas ini -> Menjalankan Postgresql Di Mac: Basis data "postgres" tidak ada tidak menindaklanjuti. Saya menggunakan perintah berikut untuk mendapatkan psql untuk membuka:
psql -d template1
Saya akan membiarkan yang ini tidak terjawab sampai seseorang dapat memberikan penjelasan mengapa ini berhasil.
sumber
psql -d postgres -U postgres -h localhost
ditunjukkan? Tanpa flag, default untuk pengguna CLI, dan saya akan mengatakan itu default ke admin "postgres" db tapi saya tidak punya mac untuk diuji.createdb <user>
bekerja untukku.psql -U user -d postgres
, ini memastikan bahwa, pengguna terhubung ke database postgres, yang sudah ada. Jadi kita harus melewati database juga saat login.Jawaban:
Tampaknya manajer paket Anda gagal membuat database bernama $ user untuk Anda. Alasannya itu
bekerja untuk Anda adalah bahwa template1 adalah database yang dibuat oleh postgres itu sendiri, dan hadir pada semua instalasi. Anda tampaknya dapat masuk ke template1, jadi Anda harus memiliki beberapa hak yang diberikan kepada Anda oleh database. Coba ini di prompt shell:
dan kemudian lihat apakah Anda bisa masuk lagi dengan
Ini hanya akan membuat database untuk pengguna login Anda, yang saya pikir adalah apa yang Anda cari. Jika createb gagal, maka Anda tidak memiliki hak yang cukup untuk membuat database Anda sendiri, dan Anda harus mencari cara untuk memperbaiki paket homebrew.
sumber
$ createdb -h localhost
untuk memecahkan kesalahancould not connect to database postgres: could not connect to server
. Setelah itu saya dapat terhubung ke konsol postgresql viapsql -h localhost
.-d template1
perintah pertama Anda? Saya telah melihat "template1" dalam tutorial di seluruh Internet tetapi hanya berfungsi untuk membingungkan saya. Pendekatan yang lebih logis akan, menurut pendapat saya 1) Buat pengguna PostgreSQL misalnya "usera" 2) Buat database dengan nama yang sama dengan pengguna "usera" (Saya pikir ini gila tapi sepertinya PostgreSQL membutuhkannya) 3) Masuk ke PostgreSQL sebagai "postgres" pengguna super dan tetapkan hak istimewa basis data "usera" kepada pengguna "usera" (oh my god, apakah ini benar-benar kehidupan nyata?)Dari terminal, Jalankan perintah pada jendela command prompt Anda. (Tidak di dalam psql) .
Dan kemudian coba jalankan postgres lagi.
sumber
createdb
Secara default, postgres mencoba untuk terhubung ke database dengan nama yang sama dengan pengguna Anda. Untuk mencegah perilaku default ini, cukup tentukan pengguna dan basis data:
sumber
psql -U Username -f create_db.sql
ini akan mengembalikan kesalahan:database Username doesn't exists
psql -U Username postgres
ketika Anda belum memiliki basis datasudo -i -u postgres
createuser --interactive
createdb <username_from_step_3>
psql
pada prompt perintah.psql (x.x.x) Type "help" for help.
sumber
Login menggunakan database template1 default:
Buat database dengan ID pengguna Anda:
Keluar lalu masuk lagi
sumber
Saya menghadapi kesalahan yang sama ketika saya mencoba membuka postgresql di mac
Saya menemukan perintah sederhana ini untuk menyelesaikannya:
metode1
dan ketik
Metode 2:
sumber
Punya masalah yang sama, sederhana
psql -d postgres
melakukannya (Ketikkan perintah di terminal)sumber
Kesalahan ini juga dapat terjadi jika variabel lingkungan PGDATABASE diatur ke nama database yang tidak ada.
Di OSX, saya melihat kesalahan berikut ketika mencoba meluncurkan psql dari menu Postgress.app:
psql: FATAL: database "otherdb" does not exist
Solusi untuk kesalahan adalah dengan menghapus
export PGDATABASE=otherdb
dari~/.bash_profile
:Lebih lanjut, jika PGUSER diatur ke sesuatu selain nama pengguna Anda, kesalahan berikut akan terjadi:
psql: FATAL: role "note" does not exist
Solusinya adalah dengan menghapus
export PGUSER=notme
dari~/.bash_profile
.sumber
Pasca instalasi postgres, dalam versi kasus saya adalah 12.2, saya memang menjalankan perintah di bawah ini
createdb
.sumber
Karena pertanyaan ini adalah yang pertama dalam hasil pencarian, saya akan memberikan solusi yang berbeda untuk masalah yang berbeda di sini, agar tidak memiliki judul duplikat.
Pesan kesalahan yang sama bisa muncul ketika menjalankan file kueri
psql
tanpa menentukan database. Karena tidak adause
pernyataan di postgresql, kita harus menentukan database pada baris perintah, misalnya:sumber
Seperti yang dinyatakan oleh dokumentasi yang dibuat :
Jadi jika distribusi OS / postgresql tertentu melakukan hal yang berbeda, itu tentu bukan default / standar (hanya diverifikasi bahwa
initdb
pada openSUSE 13.1 menciptakan DB "postgres", tetapi bukan "<user>"). Singkatnya,psql -d postgres
diharapkan dapat digunakan saat menggunakan pengguna selain "postgres".Jelas jawaban yang diterima, berjalan
createdb
untuk membuat DB bernama seperti pengguna, berfungsi juga, tetapi membuat DB berlebihan.sumber
memiliki masalah dengan menggunakan driver JDBC, jadi kita hanya perlu menambahkan database (mungkin berlebihan tergantung pada alat yang dapat Anda gunakan) setelah nama host di URL, misalnya
jdbc:postgres://<host(:port)>/<db-name>
perincian lebih lanjut didokumentasikan di sini: http://www.postgresql.org/docs/7.4/static/jdbc-use.html#JDBC-CONNECT
sumber
Terhubung ke postgres melalui superuser yang ada.
Buat Database dengan nama pengguna yang Anda hubungkan ke postgres.
Sekarang cobalah terhubung melalui nama pengguna
sumber
Coba gunakan-
psql -d postgres
Saya juga menghadapi masalah yang sama ketika saya berlari
psql
sumber
Pertama, akan sangat membantu untuk membuat database dengan nama yang sama dengan penggunaan Anda saat ini, untuk mencegah kesalahan ketika Anda hanya ingin menggunakan database default dan membuat tabel baru tanpa mendeklarasikan nama db secara eksplisit.
Ganti "skynotify" dengan nama pengguna Anda:
-d secara eksplisit mendeklarasikan database mana yang akan digunakan sebagai default untuk pernyataan SQL yang tidak secara eksplisit memasukkan nama db selama sesi interaktif ini.
DASAR-DASAR UNTUK MENDAPATKAN GAMBAR JELAS DARI APA PostverQL SERVER Anda di dalamnya.
Anda harus terhubung ke database yang ada untuk menggunakan psql secara interaktif. Untungnya, Anda dapat meminta daftar database psql:
.
Ini TIDAK memulai konsol interaktif, itu hanya menampilkan tabel berbasis teks ke terminal.
Seperti jawaban lain mengatakan, postgres selalu dibuat, jadi Anda harus menggunakannya sebagai basis data failafe Anda ketika Anda hanya ingin konsol mulai bekerja di database lain. Jika tidak ada di sana, maka daftarkan database dan kemudian gunakan salah satu dari mereka.
Dengan cara yang sama, pilih tabel dari database:
Basis data "postgres" saya tidak memiliki tabel, tetapi basis data apa pun yang akan menampilkan tabel berbasis teks ke terminal (standar keluar).
Dan untuk kelengkapan, kita juga dapat memilih semua baris dari tabel:
.
Bahkan jika ada nol baris dikembalikan, Anda akan mendapatkan nama bidang.
Jika tabel Anda memiliki lebih dari selusin baris, atau Anda tidak yakin, akan lebih berguna untuk memulai dengan jumlah baris untuk memahami berapa banyak data dalam database Anda:
.
Dan jangan sampai "1 baris" membingungkan Anda, itu hanya mewakili berapa banyak baris yang dikembalikan oleh permintaan, tetapi 1 baris berisi jumlah yang Anda inginkan, yaitu 0 dalam contoh ini.
CATATAN: db yang dibuat tanpa pemilik yang ditentukan akan dimiliki oleh pengguna saat ini.
sumber
Saya mencoba beberapa solusi ini, tetapi mereka tidak cukup berhasil (meskipun mereka sangat di jalur yang benar!)
Pada akhirnya kesalahan saya adalah:
ketika saya menjalankan perintah berikut:
psql
Jadi saya menjalankan dua perintah ini:
CATATAN: ini akan menghapus db, tetapi saya tidak membutuhkannya dan untuk beberapa alasan saya tidak dapat lagi mengakses pqsl, jadi saya menghapus dan menciptakannya kembali. Kemudian
psql
bekerja lagi.sumber
Tidak yakin apakah sudah ditambahkan dalam jawaban, Anatolii Stepaniuk menjawab sangat membantu yaitu sebagai berikut.
sumber
Mengalami masalah ini ketika menginstal postgresql via homebrew.
Harus membuat pengguna super "postgres" default dengan:
sumber
Saya masih memiliki masalah di atas setelah menginstal postgresql menggunakan homebrew - Saya mengatasinya dengan meletakkan / usr / local / bin di jalur saya sebelum / usr / bin
sumber
Di dalamnya penjelasan yang paling sederhana; itu masalah noob. Hanya mengetik
akan menghasilkan respons ini.
akan berhasil tanpa kesalahan jika pengguna memiliki izin untuk mengakses db.
Seseorang dapat masuk ke rincian variabel lingkungan yang diekspor tetapi itu tidak perlu .. ini terlalu mendasar untuk gagal karena alasan lain.
sumber
pgres