PostgreSQL Uzaktan Bağlantı Nasıl Açılır? (DBeaver & pgAdmin)
postgresql.confdosyasını açıp listen_addresses = '*' ayarını yapın.pg_hba.confdosyasına host all all 0.0.0.0/0 md5 satırını ekleyin.- PostgreSQL servisini yeniden başlatın (
sudo systemctl restart postgresql). - Sunucu güvenlik duvarında (Firewall) 5432 portunu dış erişime açın.
PostgreSQL veritabanına farklı bir bilgisayardan veya sunucudan erişmek istediğinizde, varsayılan güvenlik ayarları nedeniyle bağlantınız reddedilir. Bu rehberde, DBeaver, PgAdmin veya backend uygulamalarınızla PostgreSQL uzaktan bağlantı açma işlemini adım adım öğreneceksiniz.
1. PostgreSQL Uzaktan Bağlantı Neden Gereklidir?
Güvenlik gerekçesiyle PostgreSQL kurulumu tamamlandığında sadece localhost üzerinden bağlantı kabul eder. Ancak aşağıdaki senaryolarda remote connection açmak zorunludur:
- Uzak (remote) bir Ubuntu sunucusundaki veritabanına bağlanmak.
- Kişisel bilgisayarınızdaki DBeaver, TablePlus veya PgAdmin üzerinden görsel yönetim yapmak.
- Backend (Spring Boot, Node.js vb.) uygulamanızın farklı bir sunucudan veritabanına erişmesi.
2. postgresql.conf Dosyasının Yolunu Bulma
Yapılandırma ayarlarına başlamadan önce, konfigürasyon dosyanızın sunucudaki tam yolunu öğrenmelisiniz. Sunucunuza SSH ile bağlanıp şu komutu çalıştırın:
psql -c "SHOW config_file;"
3. listen_addresses Ayarını Düzenleme
PostgreSQL'in dışarıdan gelen istekleri dinleyebilmesi için ana ayar dosyasını (genellikle /etc/postgresql/12/main/postgresql.conf) nano veya vim editörü ile açın:
sudo nano /etc/postgresql/12/main/postgresql.conf
Dosyada aşağıdaki satırı (başında # yorum işareti olabilir) bulun:
#listen_addresses = 'localhost'
Yorum işaretini kaldırın ve değeri yıldız (*) ile değiştirin:
listen_addresses = '*'
Not: Bu ayar, sunucunun tüm ağ arayüzlerinden gelen bağlantıları kabul etmesini sağlar.
4. pg_hba.conf Dosyasında Bağlantı Yetkisi Verme
Bağlantıyı açtık, ancak hangi IP adreslerinin giriş yapabileceğini de pg_hba.conf (Host-Based Authentication) dosyasından belirlemeliyiz.
sudo nano /etc/postgresql/12/main/pg_hba.conf
Dosyanın en alt satırına inip şu yapılandırmayı ekleyin:
# TYPE DATABASE USER ADDRESS METHOD
host all all 0.0.0.0/0 md5
0.0.0.0/0 yazmak, dünyadaki herkesin veritabanınıza erişmeyi deneyebileceği anlamına gelir. Üretim ortamlarında buraya sadece uygulamanızın veya ofisinizin statik IP adresini yazmanız tavsiye edilir.
5. Servisi Yeniden Başlatma ve Firewall Port Ayarı
Değişikliklerin geçerli olması için PostgreSQL servisini yeniden başlatın:
sudo systemctl restart postgresql
PostgreSQL varsayılan olarak 5432 portunu kullanır. Eğer sunucunuzda UFW (Uncomplicated Firewall) aktifse, bu portu dışarıya açmanız gerekir:
sudo ufw allow 5432/tcp
6. DBeaver veya PgAdmin ile Bağlantı Kurma
Artık veritabanınız uzaktan yönetilmeye hazır. DBeaver, PgAdmin, TablePlus veya DataGrip gibi bir SQL istemcisini açıp şu bilgileri girerek bağlantıyı test edebilirsiniz:
- Host: Sunucunuzun dış (Public) IP adresi
- Port: 5432
- Database: Bağlanacağınız veritabanı adı
- User: PostgreSQL kullanıcı adı (örn:
postgres) - Password: Veritabanı şifreniz
Eğer "Connection Refused" (Bağlantı Reddedildi) hatası alırsanız, sunucu sağlayıcınızın (AWS, DigitalOcean, Azure) harici güvenlik duvarı ayarlarından (Security Groups) 5432 portuna izin verip vermediğinizi kontrol edin.