pg_configcompliation 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.confPg'nin nasıl takıldığına bağlı olarak başka yerlerde de görünebilir. Standart konumdur pg_hba.confdahilinde 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.confsormak 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/pathbaş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, PGDATABASEvs 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.confdüzeltmek için bulamazsınız .
Diğer bir seçenek de pskomutun çıktısına bakmak ve postmaster veri dizini argümanının -Dburada görülebilir olup olmadığını görmek.
ps aux | grep 'postgres *-D'
çünkü pg_hba.confveri 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 initdbkendi 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_lsclusterspg_wrapper
Bağlanamıyorsanız (Pg çalışmıyorsa veya pg_hba.confbağlanmak için düzenlemeniz gerekiyor ), pg_hba.confdosyaları aramak zorundasınız . Mac ve Linux'ta böyle bir şey sudo find / -type f -name pg_hba.confolacak. Ardından, PG_VERSIONeğ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.confiç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 psveri dizini -Dargümanının eşleşip eşleşmediğini görmek için çalışan postgres komut satırını kontrol edin .