pg_config
compliation bilgileri için, uzantıların ve istemci programlarının PostgreSQL ile derleme ve bağlantı kurmalarına yardımcı olmak içindir. Makinedeki aktif PostgreSQL örnekleri, sadece ikili dosyalar hakkında hiçbir şey bilmiyor.
pg_hba.conf
Pg'nin nasıl takıldığına bağlı olarak başka yerlerde de görünebilir. Standart konumdur pg_hba.conf
dahilinde data_directory
(içinde olabilir veritabanının /home
, /var/lib/pgsql
, /var/lib/postgresql/[version]/
, /opt/postgres/
istedikleri yerde ancak kullanıcılar ve paketleyiciler koyabilirsiniz, vs vs vs). Ne yazık ki.
Bulmanın tek geçerli yolu pg_hba.conf
, çalışan bir PostgreSQL örneğine nerede olduğunu pg_hba.conf
sormak veya sysadmin'e nerede olduğunu sormaktır. Datadir'in nerede olduğunu sormaya ve ayrıştırmaya bile güvenemezsiniz, postgresql.conf
çünkü bir init betiği Pg'yi -c hba_file=/some/other/path
başlatırken olduğu gibi bir paramdan geçebilir .
Yapmak istediğin şey PostgreSQL'e sormak:
SHOW hba_file;
Bu komut bir süper kullanıcı oturumunda çalıştırılmalıdır, bu nedenle kabuk komut dosyası yazmak için şöyle bir şey yazabilirsiniz:
psql -t -P format=unaligned -c 'show hba_file';
ve çevre değişkenlerini ayarlamak PGUSER
, PGDATABASE
vs bağlantısı doğru olduğundan emin olmak için.
Evet, bu bir miktar tavuk ve yumurta problemidir, çünkü kullanıcı bağlantı kuramazsa (örneğin, düzenlemeyi değiştirdikten sonra pg_hba.conf
) pg_hba.conf
düzeltmek için bulamazsınız .
Diğer bir seçenek de ps
komutun çıktısına bakmak ve postmaster veri dizini argümanının -D
burada görülebilir olup olmadığını görmek.
ps aux | grep 'postgres *-D'
çünkü pg_hba.conf
veri dizininde olacaktır (eğer Debian / Ubuntu'da veya bazı türevlerde değilseniz ve paketlerini kullanmıyorsanız).
Debian / Ubuntu paketlerinden kurulu PostgreSQL ile özellikle Ubuntu sistemlerini hedefliyorsanız, biraz daha kolaylaşır. Elde derlenmiş bir kaynaktan initdb
kendi Pd'leri için verdikleri bir Pg ile veya / opt, vb. İçerisine yüklenen bir EnterpriseDB Pg ile uğraşmak zorunda değilsiniz pg_wrapper
. Debian / Ubuntu çoklu sürüm Pg PostgreSQL kullanan yöneticisi, komut gelen .pg_lsclusters
pg_wrapper
Bağlanamıyorsanız (Pg çalışmıyorsa veya pg_hba.conf
bağlanmak için düzenlemeniz gerekiyor ), pg_hba.conf
dosyaları aramak zorundasınız . Mac ve Linux'ta böyle bir şey sudo find / -type f -name pg_hba.conf
olacak. Ardından, PG_VERSION
eğer birden fazla varsa, doğru PostgreSQL sürümü olduğundan emin olmak için dosyayı aynı dizinde kontrol edin . (Eğer pg_hba.conf
içindedir /etc
/, bu görmezden, bunun yerine üst dizin adı). Aynı PostgreSQL sürümü için birden fazla veri dizininiz varsa, veritabanı boyutuna bakmanız gerekir, düzenlemekte olduğunuz yerde ps
veri dizini -D
argümanının eşleşip eşleşmediğini görmek için çalışan postgres komut satırını kontrol edin .