Blogchevron_rightSunucu Yönetimichevron_rightDatabase Connection Refused Hatası Çözüm Rehberi

Database Connection Refused Hatası Çözüm Rehberi

S
Serversium
calendar_today27 Mayıs 2026
schedule5 dk okuma
Database Connection Refused Hatası Çözüm Rehberi

Sunucularda "Database Connection Refused" Hatalarının Çözümü

"Database Connection Refused" (Veritabanı Bağlantısı Reddedildi) hatası, sunucu yönetiminde en sık karşılaşılan sorunlardan biridir. Bu hata, uygulamanızın veritabanına bağlanamaması durumunda ortaya çıkar ve web sitenizin veya uygulamanızın çalışmamasına neden olur. Araştırmalara göre, veritabanı bağlantı hataları %15 oranında tüm sunucu arızalarına katkıda bulunmaktadır.

Database Connection Refused Hatası Nedir?

Bu hata, istemci (uygulama veya web sunucusu) veritabanı sunucusuna bağlanmayı denediğinde, sunucunun bağlantıyı kabul etmemesi durumunda oluşur. Hata mesajı genellikle "Connection refused" veya "Unable to connect to database" şeklinde görünür. Bu sorun, hem MySQL/MariaDB hem de PostgreSQL gibi popüler veritabanı sistemlerinde karşınıza çıkabilir.

Bağlantının reddedilmesi birkaç farklı senaryoda gerçekleşebilir: veritabanı sunucusu çalışmıyor olabilir, port kapalı olabilir, firewall kuralları bağlantıyı engelliyor olabilir veya kimlik doğrulama başarısız olmuş olabilir.

Bu Hatanın Yaygın Nedenleri

1. Veritabanı Sunucusunun Çalışmaması

En temel neden, veritabanı hizmetinin çalışmamasıdır. MySQL veya PostgreSQL servisinin durmuş olması, bağlantı isteklerinin reddedilmesine neden olur. Sunucu yeniden başlatıldığında veya beklenmedik şekilde kapandığında bu sorun sıklıkla yaşanır.

2. Yanlış Port Yapılandırması

Veritabanı varsayılan olarak 3306 (MySQL) veya 5432 (PostgreSQL) portlarını kullanır. Uygulama yapılandırmasındaki port numarası yanlışsa, bağlantı reddedilir. Port değiştirilmişse, bu değişiklik uygulama tarafında da güncellenmelidir.

3. Firewall ve Güvenlik Duvarı Engellemeleri

Sunucu güvenlik duvarı (iptables, ufw veya firewallD) veritabanı portunu engelliyor olabilir. Yerel bağlantıde çalışan bir uygulama, sunucu dışından erişimde başarısız olabilir. Bu, özellikle yüksek erişilebilirlik (HA) ortamlarında kritik bir sorundur.

4. Bağlantı Sınırlarının Aşılması

Veritabanı sunucusu, eş zamanlı bağlantı sayısı için bir sınır belirler. Maksimum bağlantı sayısına ulaşıldığında, yeni bağlantı talepleri reddedilir. Yoğun trafiğe sahip uygulamalarda bu sorun sıkça görülür.

5. Kullanıcı İzinleri ve Kimlik Doğrulama

Veritabanı kullanıcısının host izinleri yanlış yapılandırılmışsa, bağlantı reddedilir. MySQL'de 'localhost' yerine '%' veya spesifik IP adresi kullanılmalıdır.

Adım Adım Çözüm Yöntemleri

1. Veritabanı Servisini Kontrol Edin

Öncelikle veritabanı servisinin çalışıp çalışmadığını kontrol edin:

systemctl status mysql
systemctl status mariadb
systemctl status postgresql

Servis çalışmıyorsa şu komutla başlatın:

systemctl start mysql

Otomatik başlatma için:

systemctl enable mysql

2. Port Dinleme Durumunu Kontrol Edin

Veritabanının hangi portu dinlediğini öğrenmek için:

netstat -tlnp | grep mysql
ss -tlnp | grep postgres

Çıktıda port numarasını ve dinleme durumunu (LISTEN) görmeniz gerekir. Port görünmüyorsa, MySQL InnoDB yapılandırma rehberimizi inceleyerek ayarları kontrol edin.

3. Firewall Kurallarını İnceleyin

Firewall'un veritabanı portuna izin verdiğinden emin olun:

sudo ufw allow 3306/tcp
sudo firewall-cmd --permanent --add-port=3306/tcp
sudo firewall-cmd --reload

4. Bağlantı Testi Yapın

Komut satırından doğrudan veritabanına bağlanmayı deneyin:

mysql -u kullaniciadi -p -h localhost
psql -U kullaniciadi -h localhost

Bağlantı başarısız olursa, hata mesajı sorunun kaynağını belirlemenize yardımcı olur.

MySQL/MariaDB Bağlantı Sorunları

MySQL ve MariaDB'de "Connection Refused" hatası alıyorsanız, aşağıdaki adımları izleyin:

my.cnf Yapılandırması

MySQL yapılandırma dosyasında (genellikle /etc/mysql/my.cnf veya /etc/my.cnf) bind-address ayarını kontrol edin:

[mysqld]
bind-address = 0.0.0.0  # Tüm arayüzlerden bağlantıya izin verir
# veya
bind-address = 127.0.0.1  # Sadece yerel bağlantı

Dışarıdan bağlantı için 0.0.0.0 veya spesifik IP adresi kullanmalısınız.

Kullanıcı İzinlerini Kontrol Edin

MySQL'de kullanıcı izinlerini görüntüleyin:

SELECT user, host FROM mysql.user WHERE user = 'kullaniciadi';

Uzaktan bağlantı için kullanıcı '%' host iznine sahip olmalıdır:

CREATE USER 'kullaniciadi'@'%' IDENTIFIED BY 'sifre';
GRANT ALL PRIVILEGES ON veritabaniadi.* TO 'kullaniciadi'@'%';
FLUSH PRIVILEGES;

Max Connections Ayarını Artırın

Bağlantı sınırlarını kontrol edin ve artırın:

SHOW VARIABLES LIKE 'max_connections';
SET GLOBAL max_connections = 500;

Bu değişikliği kalıcı yapmak için my.cnf dosyasına ekleyin.

PostgreSQL Bağlantı Sorunları

PostgreSQL için çözüm adımları benzer şekildedir:

pg_hba.conf Dosyası

PostgreSQL'in kimlik doğrulama yapılandırması /etc/postgresql/version/main/pg_hba.conf dosyasındadır:

host    all             all             0.0.0.0/0            md5
host    all             all             ::/0                 md5

Bu ayar, tüm IP adreslerinden gelen bağlantılara izin verir. Daha güvenli bir yapılandırma için spesifik IP aralıkları belirtin.

postgresql.conf Ayarları

PostgreSQL yapılandırma dosyasında (postgresql.conf) dinleme adresini ayarlayın:

listen_addresses = '*'
port = 5432

Değişikliklerden sonra PostgreSQL servisini yeniden başlatmayı unutmayın:

systemctl restart postgresql

Önleme Stratejileri

Veritabanı bağlantı hatalarını önlemek için proaktif adımlar atmanız önerilir:

1. Monitoring ve Alerting

Veritabanı bağlantı durumunu sürekli izleyen bir izleme sistemi kurun. Bağlantı kesintilerinde anında bildirim alın.

2. Otomatik Yeniden Başlatma

Veritabanı servisi durduğunda otomatik olarak başlayacak şekilde yapılandırın:

systemctl enable mysql
systemctl enable postgresql

3. Connection Pooling

Bağlantı havuzlama kullanarak aşırı bağlantı taleplerini yönetin. Bu, Ansible ile sunucu otomasyonu yaparak yapılandırılabilir.

4. Düzenli Yedekleme

Yedekleme stratejileri oluşturarak, veritabanı arızalarında hızlı kurtarma sağlayın.

5. Yüksek Erişilebilirlik Çözümleri

Kritik uygulamalar için yüksek erişilebilirlik (HA) mimarisi kullanın. Bu, tek nokta arızasını ortadan kaldırır.

Karşılaştırma: MySQL vs PostgreSQL Bağlantı Sorunları

Özellik MySQL/MariaDB PostgreSQL
Varsayılan Port 3306 5432
Kimlik Dosyası my.cnf postgresql.conf
Kimlik Doğrulama mysql.user tablosu pg_hba.conf
Bağlantı Limiti max_connections max_connections
Uzaktan Bağlantı bind-address ayarı listen_addresses ayarı

Sonuç

"Database Connection Refused" hatası, doğru teşhis ve çözüm adımlarıyla kolayca giderilebilir bir sorundur. Öncelikle veritabanı servisinin çalışıp çalışmadığını, ardından port yapılandırmasını, firewall kurallarını ve kullanıcı izinlerini kontrol edin. Sorunun kaynağını belirlemek için hata loglarını inceleyin ve sistemli bir şekilde排除 edin.

Uzun vadeli çözüm için monitoring sistemleri kurun, bağlantı havuzlama kullanın ve yüksek erişilebilirlik mimarileri tercih edin. Bu önlemler, veritabanı bağlantı kesintilerinin iş sürekliliğinizi etkilemesini önleyecektir.

Sunucu altyapınızla ilgili daha fazla bilgi için Serversium platformumuzu ziyaret edebilir veya hakkımızda sayfamızı inceleyebilirsiniz.

library_booksBenzer İçerikler

Cloud Sunucu Nedir? Avantajları ve Detaylı Rehber
Sunucu Yönetimi
calendar_today5 Nisan 2026
schedule5 dk

Cloud Sunucu Nedir? Avantajları ve Detaylı Rehber

Cloud sunucular, dinamik kaynak dağıtımıyla işletmelerin kesintisiz büyümesini sağlar. Avantajlardan karşılaştırmalara tüm detaylar bu rehberde yer alıyor.

S
Serversiumarrow_forward
Linux vs Windows Sunucu: Hangisi Projeye Uygun?
Sunucu Yönetimi
calendar_today6 Nisan 2026
schedule5 dk

Linux vs Windows Sunucu: Hangisi Projeye Uygun?

Linux ve Windows Sunucu arasındaki teknik farkları, maliyet avantajlarını ve proje uyumluluğunu detaylı olarak karşılaştırıyoruz. Yazılım stack'inize en uygun işletim sistemini seçmek için kapsamlı rehberimizle doğru altyapı kararını verin.

S
Serversiumarrow_forward
Plesk Kurulumu - Ubuntu 24 Üzerinde Adım Adım Rehber
Sunucu Yönetimi
calendar_today16 Nisan 2026
schedule5 dk

Plesk Kurulumu - Ubuntu 24 Üzerinde Adım Adım Rehber

Ubuntu 24 üzerinde Plesk kurulumunu adım adım öğrenin. Bu rehberde sistem gereksinimleri, kurulum adımları ve temel yapılandırma ayarlarını bulabilirsiniz.

S
Serversiumarrow_forward