WordPress Veritabanı Bağlantı Hatası Nasıl Çözülür?
WordPress veritabanı bağlantı hatası, sitenin her sayfasında yalnızca “Error establishing a database connection” yazısının (dil ayarına göre Türkçe karşılığının) göründüğü durumdur ve WordPress’in veritabanı sunucusuyla bağlantı kuramadığını gösterir. Yazılar, ayarlar ve kullanıcılar veritabanında durduğu için bağlantı olmadan tek bir sayfa bile oluşturulamaz; dosyalarınız ise yerinde ve sağlamdır.
Hata çoğunlukla bir taşımanın, şifre değişikliğinin ya da ani bir trafik artışının ardından ortaya çıkar ve çoğu durumda veri kaybı olmadan düzelir. Aşağıdaki kontrollerin tamamı panel ve dosya erişimiyle yapılabilir; LIONFIN WordPress hosting ya da cPanel hosting hesabınızda sunucu tarafında bir sorundan şüpheleniyorsanız müşteri panelinden destek talebi açmanız yeterlidir.
Kısa cevap
WordPress veritabanı bağlantı hatası (“Error establishing a database connection”), WordPress’in wp-config.php dosyasındaki bilgilerle MySQL ya da MariaDB sunucusuna bağlanamadığında görünür. En sık nedenler yanlış DB_NAME, DB_USER, DB_PASSWORD ya da DB_HOST değeri, kullanıcının veritabanına yetkilendirilmemesi, veritabanı sunucusunun yanıt vermemesi ve bozuk tablolardır. Çözüm, bu olasılıkları en kolay kontrol edilenden başlayarak sırayla elemektir.
WordPress veritabanı bağlantı hatası neden olur?
Bu hata, WordPress ile veritabanı sunucusu arasındaki bağlantının birkaç noktadan birinde kopmasıyla oluşur. Belirtiye bakarak olası nedeni hızla daraltabilirsiniz:
| Neden | Tipik belirti | Nerede kontrol edilir? |
|---|---|---|
| Yanlış veritabanı adı, kullanıcı ya da şifre | Taşıma ya da şifre değişikliğinden hemen sonra başlar, sürekli görünür | wp-config.php ve paneldeki veritabanı listesi |
| Kullanıcının veritabanında yetkisi yok | Yeni oluşturulan kullanıcıyla ilk denemede çıkar | cPanel MySQL Databases, Plesk Databases |
Hatalı DB_HOST | Sunucu ya da veritabanının yeri değiştikten sonra çıkar | wp-config.php, sağlayıcının bağlantı bilgisi |
| Veritabanı sunucusu kapalı ya da aşırı yüklü | Hata gelip gider; aynı sunucudaki başka siteler de etkilenir | Hosting desteği, kaynak kullanım grafikleri |
| Bozuk tablolar | Yönetim panelinde tabloların onarılması gerektiğini söyleyen uyarı | /wp-admin/maint/repair.php, phpMyAdmin |
Disk kotasının dolması da veritabanının yazamamasına ve benzer hatalara yol açabilir; bu olasılık son bölümde ele alınır.
Hatayı hangi sırayla teşhis etmelisiniz?
En hızlı sonuç, en kolay kontrol edilen nedenden en zoruna doğru ilerleyerek alınır:
- Kapsamı belirleyin. Hata hem sitede hem
/wp-adminadresinde mi çıkıyor, aynı hesaptaki diğer siteler çalışıyor mu? Tüm siteler etkileniyorsa sorun büyük olasılıkla sunucu tarafındadır. - Son değişikliği hatırlayın. Taşıma, şifre yenileme, eklenti kurulumu ya da PHP sürümü değişikliği çoğu zaman doğrudan ipucu verir.
- Bağlantı bilgilerini doğrulayın.
wp-config.phpiçindeki dört değeri paneldeki kayıtlarla karşılaştırın. - Bağlantıyı test edin. Küçük bir PHP betiği, MySQL’in döndürdüğü gerçek hata mesajını gösterir.
- Tabloları onarın. Bağlantı kuruluyor ama WordPress yine açılmıyorsa sorun tablolardadır.
- Kaynakları inceleyin. Hata aralıklı çıkıyorsa bağlantı sınırını ve disk kotasını kontrol edin; sonuç alamazsanız destek talebi açın.
wp-config.php içindeki veritabanı bilgileri nasıl doğrulanır?
WordPress veritabanına bağlanırken yalnızca wp-config.php dosyasındaki dört sabite bakar; bu değerlerden biri paneldeki kayıtla birebir aynı değilse bağlantı kurulamaz. Dosyayı dosya yöneticisinde ya da SFTP ile açıp ilgili satırları bulun:
define( 'DB_NAME', 'hesap_wpdb' );
define( 'DB_USER', 'hesap_wpkullanici' );
define( 'DB_PASSWORD', 'veritabani-sifresi' );
define( 'DB_HOST', 'localhost' );Karşılaştırırken şu ayrıntılara dikkat edin:
- cPanel, veritabanı ve kullanıcı adlarının başına hesap adını ve alt çizgiyi ekler (
hesap_wpdb); önek eksik yazılmışsa bağlantı kurulamaz. - Kopyalarken şifrenin başına ya da sonuna boşluk eklenmemiş olmalıdır.
- Şifre tek tırnak (
') içeriyorsa PHP dizesini bozar; şifreyi tırnaksız yeni bir değerle değiştirmek en temiz yoldur.
Şifreden emin değilseniz panelde kullanıcının şifresini yeniden belirleyin ve aynı değeri DB_PASSWORD satırına yazın. cPanel’de Databases → MySQL Databases → Current Users altındaki Change Password bağlantısı, Plesk’te Databases ekranındaki User Management bu işi görür.
Veritabanı kullanıcısının yetkisi nasıl kontrol edilir?
Kullanıcı adı ve şifre doğru olsa bile kullanıcı ilgili veritabanına atanmamışsa WordPress bağlanamaz. Bu durum özellikle elle kurulumda ve taşımada, veritabanı ile kullanıcı ayrı ayrı oluşturulup eşleştirilmeyi unuttuğunda görülür. cPanel’de kontrol şöyle yapılır:
- Databases → MySQL Databases sayfasını açın ve Current Databases tablosunda veritabanının yanında kullanıcının listelendiğini kontrol edin.
- Kullanıcı görünmüyorsa Add User To Database bölümünde kullanıcıyı ve veritabanını seçip Add deyin.
- Açılan yetki ekranında ALL PRIVILEGES kutusunu işaretleyip Make Changes ile kaydedin.
Plesk’te kullanıcı veritabanıyla birlikte tanımlanır; Databases ekranında veritabanının altında kullanıcı adı görünmelidir. Ayrıntılı adımlar cPanel MySQL veritabanı oluşturma ve Plesk veritabanı oluşturma rehberlerindedir. SSH erişiminiz varsa wp db check komutu wp-config.php bilgileriyle bağlanmayı dener; başarısız olursa MySQL’in hata mesajını ekrana yazar.
DB_HOST için localhost mu yoksa 127.0.0.1 mi yazılmalı?
Veritabanı web sitesiyle aynı sunucudaysa çoğu hosting hesabında doğru değer localhost olur; uzak bir veritabanı kullanıyorsanız sağlayıcının verdiği sunucu adı yazılır. Değerler arasındaki fark bağlantı yönteminden gelir:
| DB_HOST değeri | Anlamı |
|---|---|
localhost | Aynı sunucu; PHP bağlantıyı Unix soketi üzerinden kurar |
127.0.0.1 | Aynı sunucu; bağlantı TCP üzerinden 3306 portuna gider |
127.0.0.1:3307 | Aynı sunucu, standart dışı port |
localhost:/yol/mysql.sock | Aynı sunucu, özel soket yolu |
db.ornek.com | Ayrı veritabanı sunucusu (sağlayıcının verdiği ad) |
localhost ile “No such file or directory” hatası alınıyor ama 127.0.0.1 çalışıyorsa PHP’nin aradığı soket yolu MySQL’in kullandığıyla uyuşmuyordur; bu durum daha çok elle yapılandırılan sunucularda görülür. Uzak veritabanında ayrıca web sunucusunun IP adresine erişim izni verilmeli ve güvenlik duvarında ilgili port açık olmalıdır. Sunucuyu kendiniz yönetiyorsanız yığının doğru kurulumu için VPS WordPress kurulumu rehberine bakabilirsiniz.
Bağlantı küçük bir PHP betiğiyle nasıl test edilir?
Test betiği, WordPress’in genel hata ekranı yerine MySQL’in döndürdüğü gerçek mesajı gösterir. Belge kökünde db-test.php adlı bir dosya oluşturun ve wp-config.php içindeki değerleri yazın:
<?php
mysqli_report(MYSQLI_REPORT_OFF);
$db = @new mysqli('localhost', 'hesap_wpkullanici', 'veritabani-sifresi', 'hesap_wpdb');
if ($db->connect_errno) {
echo 'Hata: ' . $db->connect_error;
} else {
echo 'Baglanti basarili';
}Tarayıcıda siteniz.com/db-test.php adresini açın ve çıkan mesaja göre ilerleyin:
Access denied for user: kullanıcı adı ya da şifre yanlış veya kullanıcının bu veritabanında yetkisi yok.Unknown database:DB_NAMEhatalı ya da veritabanı silinmiş.Connection refusedya daNo such file or directory: veritabanı hizmeti çalışmıyor ya daDB_HOSTyanlış.Too many connections: sunucunun bağlantı sınırı dolmuş; son bölüme bakın.Baglanti basarili: bilgiler doğru; sorun büyük olasılıkla tablolarda.
Bozuk veritabanı tabloları nasıl onarılır?
Bağlantı kurulduğu hâlde WordPress açılmıyorsa ya da yönetim panelinde bir veya daha fazla tablonun kullanılamadığı uyarısı çıkıyorsa WordPress’in yerleşik onarım aracını kullanın:
wp-config.phpdosyasına, düzenlemeyi bırakmanızı söyleyen yorum satırının üstüne şu satırı ekleyin:define( 'WP_ALLOW_REPAIR', true );- Tarayıcıda
siteniz.com/wp-admin/maint/repair.phpadresini açın. - Onarım düğmesine (Repair Database) basın; işlem bitince tabloların durumu listelenir.
- Satırı
wp-config.phpdosyasından hemen silin; bu sayfa açıkken oturum açmamış herkes onarımı başlatabilir.
SSH erişiminiz varsa aynı işi wp db repair komutu yapar; phpMyAdmin’de ise tabloları seçip Repair table işlemini çalıştırabilirsiniz. Bu araçlar MyISAM tablolarında etkilidir; güncel MySQL ve MariaDB sürümlerinde varsayılan motor olan InnoDB onarım komutunu desteklemez ve ciddi bir bozulmada sunucu düzeyinde kurtarma ya da yedekten dönüş gerekir. Geri yükleme adımları cPanel yedek alma ve geri yükleme rehberindedir.
Hata gelip gidiyorsa: bağlantı sınırı, sunucu yükü ve disk
Hata bazen görünüp bazen kayboluyorsa bağlantı bilgileri doğrudur; sorun, veritabanı sunucusunun o anda yeni bağlantı kabul edememesidir. Üç olası neden vardır:
- Bağlantı ya da işlem sınırı: Ani trafik, botların
wp-login.phpvexmlrpc.phpadreslerine yüklenmesi ya da yavaş sorgular bağlantıları tüketir. Sayfa önbelleği veritabanına giden istek sayısını belirgin biçimde azaltır; LiteSpeed Cache ayarları iyi bir başlangıçtır, bot trafiğine karşı önlemler WordPress güvenliği yazısındadır. - Disk kotası: Kota dolduğunda MySQL geçici tablolar için yer bulamaz. Kullanım durumunu cPanel disk kotası ve kaynak kullanımı rehberindeki adımlarla kontrol edin.
- Sunucu tarafı kesinti: Aynı hesaptaki tüm siteler etkileniyorsa veritabanı hizmeti yeniden başlatılıyor ya da arızalı olabilir; en hızlı çözüm, hatanın görüldüğü saati belirten bir destek talebi açmaktır.
Sorun trafik büyüdükçe kalıcı hâle geliyorsa veritabanına ayrılmış kaynak sunan bir VPS sunucu değerlendirilebilir.
Sık Sorulan Sorular
“Error establishing a database connection” verilerimin silindiği anlamına mı gelir?
Hayır. Bu hata yalnızca WordPress’in veritabanı sunucusuna bağlanamadığını söyler; yazılar, sayfalar ve siparişler çoğu durumda veritabanında olduğu gibi durur. Bilgiler düzeltildiğinde ya da sunucu yeniden yanıt vermeye başladığında site kaldığı yerden açılır. Bu yüzden hata ekranını görünce WordPress’i yeniden kurmaya ya da veritabanını boşaltmaya kalkışmayın.
Veritabanı şifresini değiştirdikten sonra site neden açılmıyor?
Panelde veritabanı kullanıcısının şifresini değiştirmek wp-config.php dosyasını kendiliğinden güncellemez; WordPress eski şifreyle bağlanmayı denemeye devam eder. Dosyadaki DB_PASSWORD satırına yeni şifreyi yazıp kaydettiğinizde site hemen açılır. Şifreyi yeniden belirlerken tek tırnak içermeyen, uzun ve rastgele bir değer seçmek yazım hatalarını da önler.
Hata yalnızca WordPress yönetim panelinde çıkıyorsa sorun ne olabilir?
Ziyaretçi sayfaları önbellekten sunuluyorsa site çalışıyor gibi görünürken yönetim paneli veritabanına ulaşamadığı için hata verebilir; yani sorun büyük olasılıkla tüm sitededir. Panelde tabloların onarılması gerektiğini söyleyen bir uyarı görüyorsanız neden bozuk tablolardır ve WP_ALLOW_REPAIR ile onarım aracını çalıştırmak çoğu zaman yeterli olur.
Uzak veritabanı sunucusu kullanırken nelere dikkat etmeliyim?
DB_HOST satırına sağlayıcının verdiği sunucu adını, standart dışıysa port numarasıyla birlikte yazın. Veritabanı sunucusunun web sunucunuzun IP adresinden gelen bağlantılara izin vermesi gerekir; cPanel’de bu izin Remote Database Access ekranından tanımlanır. Ayrıca iki sunucu arasındaki güvenlik duvarında MySQL portunun açık olduğundan ve ağ gecikmesinin düşük kaldığından emin olun.
Veritabanı bağlantı hatası arama motoru sıralamasını etkiler mi?
WordPress bu hata ekranını sunucu hatası durum koduyla döndürür; arama motorları kısa kesintilerde sayfayı daha sonra yeniden tarar ve sıralama genellikle etkilenmez. Hata günlerce sürerse sayfalar dizinden düşebilir. Planlı bir bakım gerekiyorsa wp-content klasörüne koyacağınız db-error.php dosyasıyla özel bir bakım sayfası gösterebilir ve 503 durum kodu döndürebilirsiniz.
Bu makale yardımcı oldu mu?
Geri bildiriminiz için teşekkürler!
kişi faydalı buldu