Error establishing a database connection Hatası Çözümü

Error Establishing a Database Connection Hatası (Kesin Çözüm Rehberi)

Web sitenizi açtığınızda beyaz bir ekran üzerinde “Error establishing a database connection” hatasıyla mı karşılaşıyorsunuz?
Bu hata özellikle WordPress sitelerinde çok yaygındır ve genellikle veritabanı bağlantı sorunu anlamına gelir.

Panik yapmayın…
Bu yazıda, adım adım bu hatanın neden kaynaklandığını ve nasıl çözülebileceğini anlatıyoruz.
Yazının sonunda siz de kendi sitenizi birkaç dakika içinde yeniden çalışır hale getirebileceksiniz.


Bu Hata Nedir?

Error establishing a database connection” mesajı, WordPress’in MySQL veritabanına bağlanamadığını gösterir.
Basitçe söylemek gerekirse, WordPress sitenizin dosyaları sunucuda duruyor ama veritabanına ulaşamıyor.

WordPress, her sayfayı açarken şu işlemi yapar:

  1. wp-config.php dosyasındaki veritabanı bilgilerini okur.
  2. MySQL veritabanına bağlanır.
  3. Sitedeki yazı, sayfa, ayar gibi verileri çeker.

Eğer bu bağlantı başarısız olursa, işte o meşhur hata karşınıza çıkar.


Başlıca Nedenler

Bu hatanın ortaya çıkmasının birkaç yaygın sebebi vardır:

  1. Yanlış veritabanı bilgileri (wp-config.php hatası)
  2. MySQL servisinin çökmesi veya geçici olarak kapanması
  3. Veritabanı tablolarının bozulması (örneğin wp_options tablosu)
  4. Kullanıcı yetkilerinin eksik olması
  5. Sunucu kaynaklarının dolması (CPU, RAM, “Too many connections” hatası)
  6. DNS veya taşıma kaynaklı yönlendirme hataları

Şimdi bu nedenleri tek tek çözüm yollarıyla inceleyelim.


1. wp-config.php Dosyasını Kontrol Edin

Bu dosya sitenizin kök dizininde (public_html) bulunur.
WordPress’in veritabanına nasıl bağlanacağını bu dosya belirler.

Gerekli satırlar:

define('DB_NAME', 'veritabani_adi');
define('DB_USER', 'veritabani_kullanici_adi');
define('DB_PASSWORD', 'veritabani_sifresi');
define('DB_HOST', 'localhost');

Yapmanız gerekenler:

  • cPanel → File Managerpublic_htmlwp-config.php dosyasını açın.
  • DB_NAME, DB_USER, DB_PASSWORD, DB_HOST değerlerinin doğru olduğundan emin olun.
  • cPanel’deki MySQL® Databases sayfasından bu bilgileri karşılaştırın.

Eğer emin değilseniz, MySQL kullanıcı şifresini sıfırlayıp yeniden yazabilirsiniz.


2. MySQL Servisi Çökmüş Olabilir

Bazı durumlarda, veritabanı sunucusu geçici olarak devre dışı kalabilir.
Bunu test etmek için:

  1. cPanel’e giriş yapın.
  2. phpMyAdmin’i açın.
  3. Eğer tabloları görüyorsanız → MySQL çalışıyor.
    Eğer hata alıyorsanız → Hosting destek ekibinize şu mesajı iletin:

“Merhaba, web sitemde ‘Error establishing a database connection’ hatası alıyorum.
cPanel erişimim mevcut ancak veritabanına bağlanamıyorum.
MySQL servisinde bir sorun olup olmadığını kontrol eder misiniz?”


3. Veritabanı Tablolarını Onarın

Bazı durumlarda, özellikle wp_options veya wp_posts gibi tablolar “crashed” olabilir.

phpMyAdmin üzerinden çözüm:

  1. cPanel → phpMyAdmin’e girin.
  2. Sol taraftan veritabanınızı seçin.
  3. Sağda tüm tabloları işaretleyin.
  4. Alttaki açılır menüden “Repair table” seçeneğini seçin.

Bu işlem çoğu durumda sorunu çözer.

Manuel SQL ile onarım:

REPAIR TABLE `wp_options`;

Eğer bu işe yaramazsa:

REPAIR TABLE `wp_options` USE_FRM;

Not: Eğer “last repair failed” hatası alırsanız, tablo ciddi şekilde bozulmuştur.
Bu durumda yedekten geri yükleme yapmanız gerekir.


4. Kullanıcı Yetkilerini Kontrol Edin

  1. cPanel → MySQL® Databases sayfasına gidin.
  2. “Add User to Database” kısmında veritabanı ve kullanıcıyı seçin.
  3. “ALL PRIVILEGES” işaretleyin ve kaydedin.

Bu adım, veritabanı kullanıcısına tam erişim izni verir.


5. Basit Bağlantı Testi (dbtest.php)

Sorunun nerede olduğunu anlamak için basit bir test dosyası oluşturabilirsiniz:

  1. public_html içine dbtest.php isminde bir dosya ekleyin.
  2. İçine şu kodu yapıştırın: <?php $link = mysqli_connect("localhost", "DB_USERIN", "DB_SIFREN", "DB_ADIN"); if (!$link) { die("Bağlantı hatası: " . mysqli_connect_error()); } echo "Bağlantı başarılı!"; ?>
  3. Tarayıcıdan https://siteniz.com/dbtest.php adresine gidin.

Sonuçlar:

  • “Bağlantı başarılı!” → WordPress içinde sorun var.
  • “Access denied” → Veritabanı bilgileri hatalı.

6. WP_ALLOW_REPAIR ile Otomatik Onarım

WordPress, veritabanı onarımı için gizli bir araç sunar.

  1. wp-config.php dosyasına şunu ekleyin: define('WP_ALLOW_REPAIR', true);
  2. Tarayıcıdan şu adresi açın: https://siteniz.com/wp-admin/maint/repair.php
  3. “Repair Database” veya “Repair and Optimize Database” seçeneğini kullanın.
  4. İşlem bitince yukarıdaki satırı dosyadan kaldırmayı unutun.

7. Hosting Kaynak Limitlerini Kontrol Edin

Bazı paylaşımlı hostinglerde CPU, RAM veya MySQL bağlantı limiti dolduğunda bu hata görülebilir.

cPanel → Metrics > Resource Usage kısmına gidin.
“Faults” veya “MySQL connection limit reached” hataları varsa hosting planınızı yükseltmeyi düşünün.


Sonuç

Error establishing a database connection” hatası ilk bakışta ciddi görünse de, aslında birkaç temel kontrolle kolayca çözülebilir.

Özetle:

  • wp-config.php bilgilerini doğrulayın.
  • phpMyAdmin’de tablo onarın.
  • Gerekirse WP repair aracını kullanın.
  • MySQL servisinin çalıştığından emin olun.

Eğer tüm adımları denediğiniz halde sorun devam ediyorsa, profesyonel destek almanız önerilir.
(Bazı durumlarda tablonun fiziksel dosyaları bozulabilir.)


Sık Sorulan Sorular

1. Bu hata hosting değiştirince mi olur?
Evet, taşıma sırasında DB_HOST değeri değişirse bağlantı kopabilir.

2. Veritabanı onarımı site verilerini siler mi?
Hayır, “repair table” komutu sadece bozuk indeksleri düzeltir, içerikleri silmez.

3. Yedek yoksa kurtarma mümkün mü?
Kısmen. Eğer tablo dosyaları (.frm, .ibd) sağlam kaldıysa, manuel kurtarma yapılabilir.


Son Söz

“Error establishing a database connection” hatası, WordPress kullanıcılarının en sık karşılaştığı ama aynı zamanda en kolay çözülebilen hatalardan biridir.

Bu rehberdeki adımları uygulayarak sitenizi dakikalar içinde tekrar yayına alabilirsiniz.
Dilersen yorum kısmında kendi yaşadığınız hatayı paylaşabilir, diğer kullanıcılara da yardımcı olabilirsiniz.

Yorum bırakın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Scroll to Top