PostgreSQL Kurulumu: Ubuntu 22.04 ve AlmaLinux 9
Ubuntu 22.04 ve AlmaLinux 9'da PostgreSQL kurulumu, pg_hba.conf yapılandırması, kullanıcı/veritabanı oluşturma ve remote bağlantı.
PostgreSQL Nedir?
PostgreSQL (Postgres), açık kaynaklı, ACID uyumlu ve genişletilebilir bir nesne-ilişkisel veritabanı yönetim sistemidir. 35 yılı aşkın geliştirme geçmişiyle sektörde en güvenilir veritabanı sistemlerinden biri olarak kabul görmektedir. JSON/JSONB, diziler (arrays), tam metin arama, coğrafi sorgulamalar (PostGIS) gibi gelişmiş veri tiplerini desteklemesiyle MySQL'den ayrışır.
PostgreSQL, özellikle karmaşık sorgular, büyük veri setleri ve ileri düzey veri tipleri gerektiren uygulamalar için tercih edilir. Django, Rails, Laravel gibi web çerçeveleri de PostgreSQL'i birinci sınıf veritabanı olarak destekler.
Ubuntu 22.04'te PostgreSQL Kurulumu
Resmi PostgreSQL Deposu ile Kurulum
sudo apt install -y postgresql-common
sudo /usr/share/postgresql-common/pgdg/apt.postgresql.org.sh
# PostgreSQL 16 kurun
sudo apt install -y postgresql-16
sudo systemctl start postgresql
sudo systemctl enable postgresql
sudo systemctl status postgresql
AlmaLinux 9'da PostgreSQL Kurulumu
sudo dnf install -y https://download.postgresql.org/pub/repos/yum/reporpms/EL-9-x86_64/pgdg-redhat-repo-latest.noarch.rpm
sudo dnf -qy module disable postgresql
sudo dnf install -y postgresql16-server
sudo /usr/pgsql-16/bin/postgresql-16-setup initdb
sudo systemctl enable postgresql-16
sudo systemctl start postgresql-16
İlk Yapılandırma
postgres Kullanıcısı ile Giriş
sudo -u postgres psql
-- postgres kullanıcısı için şifre belirle
ALTER USER postgres WITH PASSWORD 'GucluSifre2024!';
-- Yeni uygulama veritabanı ve kullanıcısı oluştur
CREATE USER app_user WITH PASSWORD 'AppSifre2024!';
CREATE DATABASE app_db OWNER app_user ENCODING 'UTF8' LC_COLLATE='tr_TR.UTF-8' LC_CTYPE='tr_TR.UTF-8';
GRANT ALL PRIVILEGES ON DATABASE app_db TO app_user;
-- Kullanıcıyı listele
\du
-- Veritabanlarını listele
\l
\q
pg_hba.conf Yapılandırması
Bu dosya PostgreSQL'in istemci kimlik doğrulamasını kontrol eder:
sudo nano /etc/postgresql/16/main/pg_hba.conf # Ubuntu
# AlmaLinux: /var/lib/pgsql/16/data/pg_hba.conf
# TYPE DATABASE USER ADDRESS METHOD
local all postgres peer
local all all md5
host all all 127.0.0.1/32 md5
host all all ::1/128 md5
# Uzak erişim için (belirli IP):
host app_db app_user 192.168.1.0/24 md5
postgresql.conf Optimizasyonu
sudo nano /etc/postgresql/16/main/postgresql.conf
listen_addresses = 'localhost' # Uzak için: '*'
port = 5432
max_connections = 100
shared_buffers = 256MB # RAM'in %25'i
effective_cache_size = 1GB # RAM'in %75'i
work_mem = 4MB
maintenance_work_mem = 64MB
wal_buffers = 16MB
checkpoint_completion_target = 0.9
log_timezone = 'Europe/Istanbul'
timezone = 'Europe/Istanbul'
sudo systemctl restart postgresql
Uzak Bağlantı Yapılandırması
# postgresql.conf içinde:
listen_addresses = '*'
# pg_hba.conf içinde belirli IP ekleyin:
host all all ISTEMCI_IP/32 md5
# Güvenlik duvarında port açın:
sudo ufw allow from ISTEMCI_IP to any port 5432
Temel PostgreSQL Komutları
-- Veritabanına bağlan
\c app_db
-- Tablo oluştur
CREATE TABLE users (
id SERIAL PRIMARY KEY,
username VARCHAR(50) UNIQUE NOT NULL,
email VARCHAR(100) UNIQUE NOT NULL,
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
);
-- Veri ekle
INSERT INTO users (username, email) VALUES ('admin', 'admin@example.com');
-- Tüm tabloları listele
\dt
-- Sorgu çalıştır
SELECT * FROM users;
-- Tablo yapısını göster
\d users
-- Çıkış
\q
Yedekleme ve Geri Yükleme
# Tek veritabanı yedekleme
sudo -u postgres pg_dump app_db > /tmp/app_db_backup.sql
# Sıkıştırılmış yedek
sudo -u postgres pg_dump app_db | gzip > /backup/app_db_$(date +%Y%m%d).sql.gz
# Geri yükleme
sudo -u postgres psql app_db < /tmp/app_db_backup.sql
# Tüm veritabanlarını yedekle
sudo -u postgres pg_dumpall > /tmp/all_databases.sql
Sık Karşılaşılan Sorunlar
FATAL: role "kullanici" does not exist
sudo -u postgres createuser --interactive
Bağlantı Reddedildi (Connection Refused)
sudo systemctl status postgresql
sudo tail -f /var/log/postgresql/postgresql-16-main.log
sudo netstat -tlnp | grep 5432
Sonuç
PostgreSQL 16'yı Ubuntu 22.04 veya AlmaLinux 9 üzerine başarıyla kurdunuz. pg_hba.conf ile kimlik doğrulama, postgresql.conf ile performans optimizasyonu ve pg_dump ile yedekleme konularını öğrendiniz. PostgreSQL'in güçlü SQL desteği ve gelişmiş özellikleri modern uygulamalar için mükemmel bir temel sunar.
Yorumlar
Henüz yorum yok. İlk yorumu siz yapın!