Saya lupa bagaimana saya memulai PostgreSQL terakhir kali (berbulan-bulan yang lalu) dan saya tidak ingat di mana direktori data berada. The postgres
perintah tampaknya memerlukan lokasi direktori data.
Saya menggunakan MacOsX jika itu membantu.
/usr/local/postgres
tidak ada di Mac saya.
Dengan menggunakan jawaban yang disediakan di bawah ini, saya menemukan bahwa jawabannya ada di sini:
/usr/local/var/postgres
postgresql
mac-os-x
membeli secara acak
sumber
sumber
data
adalah/usr/local/var/postgres
Jawaban:
Jika Anda dapat terhubung ke database dengan akses superuser, maka
adalah jalan terpendek.
Jika server tidak berjalan dan Anda lupa di mana direktori data berada, maka Anda harus menebak sendiri. Konvensi khusus sistem operasi atau riwayat shell mungkin memberikan petunjuk.
sumber
Anda juga dapat menanyakannya
sumber
pg_config
memperlihatkan banyak informasi termasuk direktori data:Ini mungkin merupakan hal yang spesifik untuk pembuatan bir; tanpa minuman saya tidak tahu apa yang ditampilkan.
sumber
pg_config --configure
tidak sama dengan yangbrew info postgresql
direkomendasikan (yang merupakan$(brew --prefix)/var/postgres
dan bukan symlink ke yang terdaftar). Tampaknya rumusnya agak longgar dalam menggunakan flag konfigurasi dengan benar.postgresql-<ver>
paket apt, tetapi membutuhkan jugapostgresql-server-dev-<ver>
$(brew --prefix postgresql)/homebrew.mxcl.postgresql.plist
, lihat untuk jalan mengikuti-D
(ada/usr/local/var/postgres
di tambang).Di Ubuntu \ Debian, coba
pg_lsclusters
perintah.Di mesin saya:
sumber
Jika Anda tidak dapat masuk (misalnya, lupa kata sandi Anda) tetapi layanan sedang berjalan, karena MacOS X adalah varian posix, Anda selalu dapat memeriksa
ps
untuk melihat apakah itu dilewatkan sebagai argumen:Pada kotak linux dengan dua instance postgres berjalan:
sumber
Buka postgresql.conf, buka baris:
adalah jawaban anda
sumber
postgresql.conf
find / -iname "postgresql.conf" 2>/dev/null
untuk mencari tahupostgresql.conf
tidak memilikidata_directory
definisi. Ini hanya dirujuk dalam komentar:#data_directory = 'ConfigDir' # use data in another directory
Versi modern dari klien desktop PostgreSQL untuk OSX memiliki dialog "Pengaturan Server" yang nyaman yang akan memungkinkan Anda tidak hanya untuk mendaftar direktori data tetapi membukanya secara langsung.
Sangat berguna jika Anda mengalami kerusakan mesin acak yang meninggalkan file kunci.
sumber
Pada OS X 10.8 dan 10.9 (bukan 10.10) dengan aplikasi server diinstal, di jendela terminal, ketik
Pada OS X 10.9 Mavericks, ini adalah output yang saya dapatkan dari itu, yang termasuk direktori data.
Saya baru saja mencoba ini di Yosemite (OS X 10.10) dan postgres tidak lagi terdaftar sebagai layanan di bawah serveradmin (walaupun postgres diinstal).
tidak mencantumkan postgres
sumber
Pada Windows Server 2012, perintah
pg_config
itu tidak mengungkapkan direktori data untuk beberapa alasan gila. Tapi saya menemukannya dengan melihat fileC:\Program Files\PostgreSQL\9.4\pg_env.bat
yang berisi baris ini:Itulah jawaban yang saya butuhkan.
sumber
Bagaimana dengan menggunakan utilitas standar pg_config seperti
pg_config --bindir
One juga bisa mendapatkan parameter konfigurasi yang digunakan untuk mengkompilasi PostgreSQL dan menguraikannya denganpg_config --configure
sumber
--bindir
menunjukkan lokasi file executable, bukan direktori data.--configure
OK, meskipun kita harus menguraikan output sedikit.Seperti yang ditunjukkan, seseorang juga dapat menggunakan
ps
untuk menangkap lokasi data seperti:ps -e |egrep postgres|egrep -E '[[:blank:]]+\-D'| perl -pe 's/^.*[[:blank:]]+-D[[:blank:]]+(\S+).*?$/$1/'
.Ini akan berhasil sebagian besar waktu. Ini akan mengembalikan sesuatu seperti
/usr/local/pgsql/data
atau di mana pun itu ditentukan dalam parameter PostgreSQL saat diluncurkan.sumber
Berdasarkan jawaban oleh @Matthew Mark Miller, pada macOS 10.14 menggunakan Postgres 11 terletak di:
sumber
Generalisasi dari 2 jawaban teratas:
Untuk menampilkan direktori data secara langsung di baris perintah:
Untuk juga melihat semua jalur yang ditentukan lainnya ke file dan direktori:
Output sampel:
(Di Windows, ganti
LIKE '/%'
denganLIKE '%/%'
karena jalur dimulai dengan huruf drive)sumber