Error Establishing a Database Connection Hatası [Detaylı Çözüm]

Wordpress Dersleri

Error Establishing a Database Connection hatası bir çok sebepten ortaya çıkabilen, wordpress kullanıcıların sıklıkla karşılaştığı en baş ağrıtıcı sorunlardan bir tanesidir.

Error Establishing a Database Connection hatası web sitenizde hiç bir değişiklik yapmadığınız halde bile karşınıza çıkabilir.

Daha dün kendi sitemde bu hatayla karşılaştım ve problemi bulup düzeltmem yarım saatimi aldı. Sorunu ararken farkettim ki, bununla ilgili yazılmış detaylı bir Türkçe makale yok.

Bende bu yazımda sizlere Error Establishing a Database Connection hatası almanıza nelerin sebebiyet verdiğini ve bu sorunu nasıl çözeceğinizi detaylı bir şekilde anlatmaya çalışacağım.

Önemli: Alttaki işlemleri uygulamadan önce sitenizin yedeğini almanızı şiddetle tavsiye ederim. Eğer site yedeği almayı bilmiyorsanız, WordPress Site Yedeği Alma – Site Yedekleme başlıklı yazımda yedekleme işlemini nasıl yapacağınızı detaylı anlattım.

Neden Error Establishing a Database Connection Hatası Alıyoruz?

#Error Establishing a Database Connection hatası almanızın sebebi,  site dosyalarınızın veritabanıyla bağlantı kuramamasından kaynaklıdır.

Hatanın ana sebebini tam olarak biliyoruz fakat hatayı baş ağrıtan bir hata yapan, wordpress site dosyalarınızla veritabanı arasındaki bağlantı kopukluğunun bir çok sebepten kaynaklanabiliyor olması.

WordPress veritabanı kullanıcı adınızın veya şifrenizin veya veritabanı isminizin yanlış olması veya değiştirilmiş olması, vetabanı sunucunuzdan cevap alamıyor olmanız yada veritabanınız çökmüş olması gibi durumları Error Establishing a Database Connection hatasına sebep olan durumlar olarak gösterebiliriz.

Adım 1: Error Establishing a Database Connection hatası /wp-admin/ Uzantasında da Oluşuyor mu?

Error Establishing a Database Connection hatası aldığınızda ilk yapmanız gereken bu hatanın sitenizin admin panelinde de oluşup oluşmadığını kontrol etmek. Yani, sitenizin ön yüzü ile arka yüzü (admin paneli) için gösterilen hata mesajı aynı mı ?

Sitenizin iki yüzü de Error Establishing a Database Connection hatasını mı gösteriyor yoksa admin panelinde farklı bir hata mı alıyorsunuz ?

Eğer Error Establishing a Database Connection hatası admin panelinizde de (dashboard) oluşuyorsa yani sitenizin tamamı için bu hatayı alıyorsanız, bu kısmı atlayarak aşağıda bulunan ikinci adıma geçin.

Eğer admin panelinde “One or more database tables are unavailable. The database may need to be repaired”  gibi farklı bir hata alıyorsanız, yapmanız gereken sadece wordpress sitenizin veritabanını onarmak.

Veritabanı onarmayı ise alttaki kodu wp-config.php dosyanıza ekleyerek yapabilirsiniz;

define('WP_ALLOW_REPAIR', true);

Kod ekledikten sonra http://www.sizinsiteniz.com/wp-admin/maint/repair.php adresine gidin ve karşınıza alttaki resimde olduğu gibi bir ekran çıkacaktır.

Error Establishing a Database Connection Hatası


Bu noktada repair database yada repair and optimize database butonlarından birine tıklayarak veritabanınızı onarabilirsiniz.

Önemli:Bu işlemle, yani yukarıda wp-config.php dosyasına eklediğimiz koddan dolayı aslında http://www.sizinsiteniz.com/wp-admin/maint/repair.php adresimizi herkese görünür kıldık yani herhangi biri bu url adresine girip sitenizin veritabanı onarma işlemini dışardan da yapabilir.

#O yüzden bu işlemi tamamladıktan sonra wp-config.php adresine tekrar girip eklediğimiz kodu silmeniz gerekli.

Eğer veritabanınızı onardıktan sonra hala aynı hatayı almaya devam ediyorsanız ozaman yazımı okumaya devam etmelisiniz.

Adım 2: Wp-Config Dosyasını Kontrol Etme

WordPress dosyaları arasında en önemli dosyalardan biride wp-config.php dosyasıdır. Bu dosya veritabanınızla site dosyalarınızın birbirine bağlamasını sağlar.

Eğer veritabanı şifrenizi yada kullanıcı adınızı değiştirdiyseniz ve bu değişikliği wp-config.php dosyanızda belirtmediyseniz bu durum Error Establishing a Database Connection hatası almaza sebebiyet verir.

Yeni veritabanı kullanıcı adınızı ve şifrenizide wp-config.php dosyasında düzenlerseniz sorun ortadan kalkar. Sorun bu değilse okumaya devam…

Öncelikle yapmanız gereken wp-config-php dosyanıza gidip tüm bilgilerin doğruluğunu kontrol etmeniz.

define('DB_NAME', 'database-name');
define('DB_USER', 'database-username');
define('DB_PASSWORD', 'database-password');
define('DB_HOST', 'localhost');

Önemli: Db_host kısmı herzaman localhost olmayabilir. Bu genelde böyledir fakat bazı host firmaları farklı prefixler kullanabilmektedir. Bunu hostunuza sorup  DB_HOST’un “localhost” olup olmadığını teyid edebilirsiniz.

Fakat söylediğim gibi bu, çoğu host firmasında localhost olarak geçer o yüzden bunu Error Establishing a Database Connection hatası almanıza sebep olacak son varsayım olarak düşünmenizi tavsiye ederim.

Eğer kontrol ettiğiniz herşey doğruysa veya yanlışı düzelttikten sonra hala Error Establishing a Database Connection hatası alıyorsanız bu, hatanın MySQL üzerinde olduğuna işarettir.

Adım 3: MySQL Serverını Kontrol Etme

Error Establishing a Database Connection hatası almanıza sebep olan bir diğer etken ise sitenizin çok fazla trafik alması olabilir.

Buda serverınızın yani hostunuzun aldığınız trafiği kaldıramamasına yani Error Establishing a Database Connection hatası almanıza sebep olur ki özelliklede paylaşımlı hosting (public hosting) kullanıyorsanız.

Bu durumda yapabileceğiniz en iyi şey hostunuzla bağlantı kurup MySQL serverınızın trafiği kaldırıp kaldırmadığını sormanızdır.

Eğer bu işlemi hostunuzla bağlantıya geçmeden kendiniz yapmak istiyorsanız, aynı server üzerindeki diğer web sitelerinizi kontrol edin eğer o sitelerinizde de aynı hatayı alıyorsanız, Error Establishing a Database Connection hatası almanızın kesin sebebi MySQL serverınızdan kaynaklıdır.

1-Eğer aynı server üzerinde başka bir siteniz yoksa cPanel’inize gidip phpmyadmin üzerinden veritabanınıza bağlanın. Eğer bağlanabiliyorsanız, birde kullanıcıların veritabanınıza ulaşma izinlerini kontrol etmeniz gerekli.

Bunu yapmak için sitenizde testconnection.php isminde bir dosya oluşturun ve aşağıdaki kodu bu dosyanın içine yapıştırın.

<?php
$link = mysql_connect('localhost', 'veritabanı_isminiz', 'veritabanı_şifreniz');
if (!$link) {
die('Could not connect: ' . mysql_error());
}
echo 'Connected successfully';
mysql_close($link);
?>

Önemli:Şifre kısmını ve kullanıcı adını kendi kullanıcı bilgilerinizle değiştirdiğinizden emin olun.

Kodu ekledikten sonra tarayıcınızdan testconnectiong.php isminde oluşturduğunuz URL adresine gidin ( siteniz.com/testconnection.php )

Eğer adrese gittiğinizde “Connected successfully” mesajı alırsanız, yani başarılı bir şekilde bağlantı sağlarsanız bu ziyaretçilerinizin wordpress sitenizin veritabanına bağlanması için yeterli izinleri olduğunu gösterir.

Eğer burda bir hata alıryosanız öncelikle wp-config.php dosyanıza geri dönüp tekrar herşeyi gözden geçirin ve bu işlemi tekrar gerçekleştirin. Eminim ki atladığınız bir nokta var.

2-Eğer cPanel’inize gidip phpmyadmin üzerinden veritabanınıza bağlanmaya çalıştığınızda bağlanamıyor ve alttaki gibi bir hata alıyorsanız;

Access denied for user ‘foo’@’%’ (using password: YES)

Serverlarınızda bir hata var demektir. Bu sadece serverlarınızın kapalı olduğu anlamına gelmez aynı zamanda kullanıcı izinlerinde de (user permission) bir problem olduğunun işareti olabilir.

Be bu hatayı aldığımda ve cPanel üzerinden phpmyadmin paneline ulaşım sağlamaya çalıştığımda bana #1215 – Access denied for user ‘taa’%’@’ (using password: YES) gibi bir hata verdi.

Turhost ile bağlantıya geçtiğimde kullanıcı izinlerinin (user’s permission) bir şekilde reset yediğini söylediler. Kendileride nasıl resetlendiğini bulamadı fakat kullanıcı izinlerimi değiştirdiklerinde sitem tekrar eski haline döndü.

Sonuç olarak  eğer cPanel üzerinden phpmyadmin paneline ulaşmaya çalışırken yada testconnection.php testini gerçekleştirdiğinizde (doğru veritabanı bilgileriyle) Error Establishing a Database Connection hatası almaya devam ediyorsanız, hostunuzlabağlantıya geçmelisiniz.


Umarım Error Establishing a Database Connection Hatası [Detaylı Çözüm] başlıklı yazımı yararlı bulmuşsunuzdur.Teşekkürlerinizi, yazımı sosyal mecralarda paylaşarak gösterebilirsiniz. Bu benim için fazlasıyla yeterli olacaktır.

İlgili gönderiler

Error Establishing a Database Connection Hatası [Detaylı Çözüm]” ile ilgili yorumlar;

  1. Furkan dedi ki:

    Tüm bunları yaptığınız halde beyaz ekran düzelmiyorsa, şunu yapın.

    wp-config.php dosyasında WP_CACHE true olarak duruyordur onu false olarak değiştirin sorun düzelecektir.

  2. anema dedi ki:

    Tüm bunları yapıp yine de aynı hatayı alanlar, cpaneldeki ana kullanıcı adınında aynı olup olmadığını kontrol etmeliler. Epey vaktimi aldı umarım faydalı olur.

  3. Seraphim dedi ki:

    Çok işime yaradı.
    Zaman zaman diğer yazılarınıza da bakıyorum.
    Harikasınız…

  4. coskun dedi ki:

    alahrazi olsun kardesim baya ograsmistim sayenizde cozdum emeginize saglik

  5. bi dost dedi ki:

    Allah razı olsun çok faydalı oldu …

  6. cömert dedi ki:

    2 saat uğraştığım sorunu sayenizde 10 dk içinde hallettim.
    Çok teşekkürler

  7. Kerem dedi ki:

    O kadar çok “Error Establishing a Database Connection hatası” demişsin ki, yarıda bırakıp yorum yazma gereği duydum. Emin olun bunların seo açısından hiçbir artısı yok. Yazıyı kirletmekten başka birşey değil. Kaliteli öz yazılar daha iyi bir seo’dur.

  8. balcihoca dedi ki:

    selamün aleyküm.sitemi yedekledim. bütün verileri
    sildim.Host kullanıcı siteyi değiştirt tim.geri yüklerken veritabanı hatası alıyorum bütün uğraşlarıma rağmen düzeltemedim

  9. H.EROL dedi ki:

    Saol kardeş Allah razı olsun. Büyük dertten kurtardın beni.

  10. ersin dedi ki:

    sitemde böyle bir sorun oluştu. admin panelime şifreleri doğru yazdığım halde girmedi daha sonra yukarıdaki hataları verdi. sayfa görünüyor ama admin adresine girerken veritabanı hatası veriyor. yardımcı olurmusunuz ?

  11. firewall dedi ki:

    fazla trafik olduğunda alıyorum ne yapmalıyım acaba

  12. veri kurtarma dedi ki:

    teşekkurler faydalı bir yazı olmuş

  13. yasinn dedi ki:

    Teşekkurler ! :)

  14. SeLoRe dedi ki:

    hocam bu hatayı zaman zaman sitemin trafiği arttığında alıyorum. sunucu olarak VPS kullanıyorum panel olarakta cpanel. bu sorunu gidermek için WHM panel den yapmam gereken bir ayar veya bir limit arttırma gibi bir şey mi var.

    1. burak oran dedi ki:

      Yazım genel olarak paylaşımlı hosting kullanıcıları için. Sizin probleminiz trafik yoğunluğundan kaynaklanıyorsa daha üst sunuculara geçmenizi tavsiye edierm.

  15. LEVENT dedi ki:

    sağol üstad, emeğine sağlık.

Bir yanıt yazın

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