Blog / Makaleler

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:

Terminal
sudo dnf -y install https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm

2. 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:

Terminal
sudo dnf -qy module disable postgresql

3. Kurmak

PostgreSQL 16'nın hem sunucu hem istemci tarafını kuruyoruz:

Terminal
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:

Terminal
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb

Ardından servisi başlatıp açılışta otomatik çalışacak şekilde ayarlıyoruz:

Terminal
sudo systemctl enable --now postgresql-16

PostgreSQL artık çalışıyor. Güvenlik duvarı için:

Terminal
sudo firewall-cmd --permanent --add-service=postgresql
sudo firewall-cmd --reload

Uzaktan 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:

Kod
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):

Kod
host    all    all    0.0.0.0/0    scram-sha-256

Eski 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:

Terminal
sudo systemctl restart postgresql-16
Bu yazıyı paylaşXFacebook