Bu hata WordPress’in veritabanına bağlanamadığını söyler. En yaygın sebep wp-config.php içindeki DB_NAME, DB_USER, DB_PASSWORD, DB_HOST bilgilerinin yanlış olmasıdır. İkinci yaygın sebep MySQL servisinin down olması, kullanıcı yetkilerinin bozulması veya sunucunun kaynak nedeniyle DB bağlantılarını reddetmesidir. Üçüncü sebep ise veritabanı bozulmasıdır (tablo crash).
Önce wp-config.php’yi kontrol edersin. Burada küçük bir yazım hatası bile bağlantıyı keser. DB_HOST bazen “localhost” değil, host sağlayıcının verdiği özel bir host olur. Bazı sistemlerde 127.0.0.1 ile localhost farklı davranabilir.
// wp-config.php
define('DB_NAME', 'veritabani_adi');
define('DB_USER', 'veritabani_kullanicisi');
define('DB_PASSWORD', 'sifre');
define('DB_HOST', 'localhost');
Bilgiler doğruysa, sıradaki adım MySQL’in çalıştığını doğrulamaktır. Paylaşımlı hostta panelden “MySQL Databases” açılmıyorsa veya phpMyAdmin bağlanmıyorsa problem WordPress’ten önce DB servisindedir. Kendi sunucunda isen servis durumuna bakarsın.
systemctl status mysql
# veya
systemctl status mariadb
Yetki problemi varsa, DB kullanıcı yetkilerini kontrol edersin. Kullanıcı, ilgili veritabanında ALL PRIVILEGES’e sahip olmalı. Bazı taşınma işlemlerinde (migration) kullanıcı yeni sunucuda oluşmaz veya yetkiler unutulur.
Veritabanı bozulması şüphesinde WordPress’in onarım modunu kullanabilirsin. Bu yıllardır vardır ve hâlâ işe yarar. wp-config.php içine aşağıdakini ekleyip /wp-admin/maint/repair.php sayfasını ziyaret edersin. İş bitince mutlaka kaldırırsın; çünkü açık kalırsa risk olur.
// wp-config.php
define('WP_ALLOW_REPAIR', true);
Bazen hata anlık yoğunluktan olur. Trafik artar, DB max_connections dolmuştur, WordPress “bağlanamadım” der. Bu durumda DB sunucusunda bağlantı limitleri ve sorgu performansı ele alınır. Cache katmanı (object cache, Redis) doğru kuruluysa DB yükü azalır. Eski ve sağlam yaklaşım yine geçerli: önce loglar, sonra kaynak izleme.
Taşıma sonrası sık görülen bir senaryo da şudur: site URL değişmiştir, ama bu hata doğrudan URL’den değil DB bağlantısından gelir. Yine de migration esnasında wp-config yanlış kopyalanır. Bu yüzden en güvenilir yöntem, eski sunucudaki wp-config.php ile yenisini satır satır kıyaslamaktır.
Son olarak, bazı hostlar DB_HOST için port veya socket ister. Örnek olarak “localhost:3306” veya özel endpoint gerekir. Bunu sağlayıcı dokümanından doğrulamak gerekir. WordPress dünyasında “hızlı kurulum” diye geçiştirilen bu detaylar, iş ciddiye bindiğinde en çok zaman yediren noktalardır.