Error Establishing a Database Connection Hatası

error-establishing-a-database-connection

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

Error Establishing a Database Connection hatası bir çok sebepten kaynaklanabilen, 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 bugün kü 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, wordpress 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ı.

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 farklı bir hata alıyorsanız, “One or more database tables are unavailable. The database may need to be repaired” gibi, yapmanız gereken sadece wordpress sitenizin veritabanını onarmak.

Bunu aşağıdaki kodu wp-config.php dosyanıza ekleyerek yapabilirsiniz.

define('WP_ALLOW_REPAIR', true);

Kod ekleme işlemini gerçekleştirdikten sonra http://www.sizinsiteniz.com/wp-admin/maint/repair.php adresine gidin ve karşınıza aşağıdaki resimdeki 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ışardanda 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ıda 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.

Kod ekleme işleminden sonra tarayıcınızdan testconnectiong.php isminde oluşturduğunuz dosyanın 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 demektir ki ziyaretçilerinizin wordpress sitenizin veritabanına bağlanması için yeterli izinleri var. 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 vardır.

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 olabileceğinin işareti olabilir.

Benim başıma geldiğinde ben 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 resetlendiğ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.

Yazar:

  1. aliye   •  

    teşekkürler

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Şu HTML etiketlerini ve özelliklerini kullanabilirsiniz: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>