Centos üzerine PostgreSQL 12 kurulumu
Bu yazı 2020 yılından. Anlatılan sürümler, fiyatlar ve adresler o günden bu yana değişmiş olabilir.
Bu yazıda PostgreSQL veritabanını CentOS/Rocky/AlmaLinux sunuculara kurmayı anlatacağım. PostgreSQL, güçlü ve ücretsiz bir açık kaynak veritabanı sistemi; özellikle veri bütünlüğü ve karmaşık sorgular konusunda çok tercih edilir.
Güncelleme (Kasım 2026): Bu yazıyı 2020'de PostgreSQL 12 için yazmıştım. PostgreSQL 12'nin desteği Kasım 2024'te bitti, CentOS 7 ve 8'in desteği de bitti. Bu yüzden yazıyı güncel sürümlere göre düzenledim. Aşağıdaki komutlarda sürüm numarasını değiştirerek istediğiniz PostgreSQL sürümünü kurabilirsiniz; ben güncel ve uzun destekli bir sürüm olan PostgreSQL 16'yı örnek aldım.
Dağıtım notu
Yeni sunucu kuruyorsanız CentOS yerine Rocky Linux ya da AlmaLinux (sürüm 9) kullanın. Aşağıdaki komutlar bunların 9. sürümü (EL9) içindir; EL8 için adreslerdeki EL-9 kısmını EL-8 yapın. Hâlâ CentOS 7'deyseniz önce depo arşiv düzeltmesini yapmanız gerekir (bu konuyu diğer CentOS 7 yazılarımda anlatmıştım).
1. Depoyu eklemek
PostgreSQL'in resmi deposunu (PGDG) sunucumuza ekliyoruz:
sudo dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm2. Yerleşik modülü kapatmak
Rocky/AlmaLinux'ta sistemin kendi içinde gelen bir postgresql modülü var; PGDG deposundan kuracağımız sürümle çakışmaması için onu kapatıyoruz:
sudo dnf -qy module disable postgresql3. Kurmak
PostgreSQL 16'nın hem sunucu hem istemci tarafını kuruyoruz:
sudo dnf -y install postgresql16-server postgresql16(Başka bir sürüm istiyorsanız 16 yerine onu yazın, örneğin postgresql17-server.)
4. Veritabanını ilk kez hazırlamak
Kurulumdan sonra veritabanının ilk kez oluşturulması (initdb) gerekiyor:
sudo /usr/pgsql-16/bin/postgresql-16-setup initdbArdından servisi başlatıp açılışta otomatik çalışacak şekilde ayarlıyoruz:
sudo systemctl enable --now postgresql-16PostgreSQL artık çalışıyor. Güvenlik duvarı için:
sudo firewall-cmd --permanent --add-service=postgresql
sudo firewall-cmd --reloadUzaktan erişim (opsiyonel)
PostgreSQL varsayılan olarak yalnızca sunucunun kendi üzerinden bağlantı kabul eder. Başka bir makineden bağlanmak istiyorsanız iki dosyayı düzenlemeniz gerekir (ikisi de /var/lib/pgsql/16/data/ dizininde):
1. postgresql.conf dosyasında listen_addresses satırını bulup şöyle yapın:
listen_addresses = '*'2. pg_hba.conf dosyasının sonuna, hangi ağdan bağlanılacağını belirten bir satır ekleyin (buradaki IP aralığını kendi ağınıza göre daraltın, 0.0.0.0/0 herkese açar ve risklidir):
host all all 0.0.0.0/0 scram-sha-256Eski yazıda sadece listen_addresses'ten bahsetmiştim ama pg_hba.conf satırı olmadan uzak bağlantı yine de reddedilir, o yüzden ikisini birlikte yapın. Değişikliklerden sonra servisi yeniden başlatın:
sudo systemctl restart postgresql-16