Temel Yapılandırma

Bu bölümde PostgreSQL kurulumu sonrası yapılması gereken temel yapılandırma adımları, önemli yapılandırma dosyaları ve servis yönetimi anlatılacaktır.

Yapılandırma Dosyaları

PostgreSQL'in ana yapılandırma dosyaları genellikle veritabanı kümesinin (data directory) içinde bulunur. Bu dizinin konumu dağıtıma ve kuruluma göre değişebilir, ancak genellikle şuralarda bulunur:

  • RHEL Tabanlı: /var/lib/pgsql/<sürüm>/data/ (Örn: /var/lib/pgsql/16/data/)

  • Debian Tabanlı: /etc/postgresql/<sürüm>/<küme_adı>/ (Örn: /etc/postgresql/16/main/)

Bu dizin içindeki en önemli iki yapılandırma dosyası şunlardır:

  1. postgresql.conf: Sunucunun ana yapılandırma dosyasıdır. Dinlenecek ağ arayüzleri (listen_addresses), port (port), bellek ayarları (shared_buffers, work_mem), loglama ayarları (log_destination, logging_collector), bağlantı limitleri (max_connections) gibi birçok parametreyi içerir. Değişikliklerin çoğu bu dosyada yapılır ve genellikle servisin yeniden başlatılmasını veya yeniden yüklenmesini (reload) gerektirir.

  2. pg_hba.conf (Host-Based Authentication): İstemci kimlik doğrulama kurallarını tanımlar. Hangi kullanıcıların, hangi veritabanlarına, hangi IP adreslerinden (veya soketlerden) ve hangi kimlik doğrulama yöntemleriyle (örn: trust, peer, scram-sha-256, md5) bağlanabileceğini belirler. Bu dosyadaki değişiklikler genellikle servisin yeniden yüklenmesi (reload) ile aktif hale gelir.

    • Önemli Not: Varsayılan olarak, PostgreSQL genellikle sadece yerel Unix soketi üzerinden peer veya trust kimlik doğrulamasına izin verir. Ağ üzerinden parola ile bağlanmak için pg_hba.conf dosyasını düzenlemeniz ve listen_addresses ayarını postgresql.conf içinde değiştirmeniz gerekir.

Servis Yönetimi (systemd)

systemd kullanan modern Linux dağıtımlarında PostgreSQL servisini yönetmek için systemctl komutu kullanılır. Servis adı genellikle sürüm numarasını içerir.

  • Servis Durumunu Kontrol Etme:

    # RHEL Tabanlı (Örn: Sürüm 16)
    sudo systemctl status postgresql-16
    
    # Debian Tabanlı (Örn: Sürüm 16, Küme 'main')
    sudo systemctl status postgresql@16-main
  • Servisi Başlatma:

    # RHEL Tabanlı
    sudo systemctl start postgresql-16
    
    # Debian Tabanlı
    sudo systemctl start postgresql@16-main
  • Servisi Durdurma:

    # RHEL Tabanlı
    sudo systemctl stop postgresql-16
    
    # Debian Tabanlı
    sudo systemctl stop postgresql@16-main
  • Servisi Yeniden Başlatma:

    # RHEL Tabanlı
    sudo systemctl restart postgresql-16
    
    # Debian Tabanlı
    sudo systemctl restart postgresql@16-main
  • Yapılandırmayı Yeniden Yükleme (Reload):postgresql.conf veya pg_hba.conf dosyalarında yapılan bazı değişiklikleri servisi tamamen durdurup başlatmadan uygulamak için kullanılır.

    # RHEL Tabanlı
    sudo systemctl reload postgresql-16
    
    # Debian Tabanlı
    sudo systemctl reload postgresql@16-main
  • Servisi Sistem Açılışında Etkinleştirme:

    # RHEL Tabanlı
    sudo systemctl enable postgresql-16
    
    # Debian Tabanlı
    sudo systemctl enable postgresql@16-main
  • Servisi Sistem Açılışında Devre Dışı Bırakma:

    # RHEL Tabanlı
    sudo systemctl disable postgresql-16
    
    # Debian Tabanlı
    sudo systemctl disable postgresql@16-main

Doğru servis adını bulmak için systemctl list-units | grep postgres gibi komutlar kullanılabilir.

Last updated