WordPress Error Establishing a Database Connection Hatası Çözümü
WordPress veritabanına bağlanamadığında bu hata oluşur. wp-config.php bilgileri, MySQL servisi ve izinler kontrol edilmelidir.
WordPress Veritabanı Bağlantı Hatası Nedir?
WordPress'te "Error Establishing a Database Connection" (Veritabanı bağlantısı kurulamıyor) hatası, WordPress'in MySQL/MariaDB veritabanına bağlanamadığında gösterdiği kritik bir hatadır. Bu hata yalnızca ön yüzde değil, WordPress yönetici panelinde de görünür ve site tamamen erişilemez hale gelir.
WordPress'in çalışması için bir MySQL/MariaDB veritabanına sürekli bağlantı kurması gerekir. Tüm içerik, ayarlar, kullanıcı bilgileri ve yapılandırma verileri veritabanında saklanır. Bağlantı kurulamazsa WordPress hiçbir sayfayı gösteremez.
Bu hata iki farklı şekilde görünebilir:
# Ön yüz için:
Error establishing a database connection
# Yönetici paneli için:
One or more database tables are unavailable.
The database may need to be repaired.
Sorunun nereden kaynaklandığını anlamak için MySQL log dosyasını inceleyin:
sudo tail -50 /var/log/mysql/error.log
Olası Nedenler
wp-config.phpdosyasında yanlış DB_HOST, DB_USER, DB_PASSWORD veya DB_NAME- MySQL/MariaDB servisi çalışmıyor (çökmüş veya durdurulmuş)
- Veritabanı kullanıcısının gerekli izinleri yok
- Sunucu kaynak tükenmiş (RAM doldu, MySQL kendini kapattı)
- Veritabanı tabloları bozulmuş (corrupt)
- MySQL bağlantı limiti (max_connections) dolmuş
- Hosting planının veritabanı bağlantı sayısı aşıldı
- Güvenlik eklentisi veya sunucu firewall'u MySQL portunu engelledi
Çözüm Adımları
1. MySQL Servisini Kontrol Etme ve Başlatma
İlk yapılacak şey MySQL/MariaDB servisinin çalışıp çalışmadığını kontrol etmektir:
sudo systemctl status mysql
# veya MariaDB için:
sudo systemctl status mariadb
Servis durduysa başlatın:
sudo systemctl start mysql
# Otomatik başlaması için:
sudo systemctl enable mysql
MySQL neden durduğunu anlamak için log'a bakın:
sudo journalctl -u mysql -n 50 --no-pager
2. wp-config.php Bilgilerini Kontrol Etme
WordPress kök dizinindeki wp-config.php dosyasını açın:
nano /var/www/html/wp-config.php
Şu değerleri kontrol edin:
define('DB_NAME', 'veritabani_adi');
define('DB_USER', 'kullanici_adi');
define('DB_PASSWORD', 'sifre');
define('DB_HOST', 'localhost');
Bilgilerin doğruluğunu test etmek için:
mysql -u kullanici_adi -p'sifre' -h localhost veritabani_adi -e "SHOW TABLES;"
3. Veritabanı Kullanıcı İzinlerini Kontrol Etme
MySQL'de kullanıcı izinlerini kontrol edin ve gerekirse yeniden verin:
mysql -u root -p
# MySQL komut satırında:
SHOW GRANTS FOR 'wp_kullanici'@'localhost';
# İzin vermek için:
GRANT ALL PRIVILEGES ON wp_veritabani.* TO 'wp_kullanici'@'localhost';
FLUSH PRIVILEGES;
EXIT;
4. WordPress Veritabanı Onarımı
Bağlantı sorunu değil, tablo bozulmasıysa WordPress'in yerleşik onarım özelliğini kullanın. wp-config.php'ye ekleyin:
define('WP_ALLOW_REPAIR', true);
Ardından tarayıcıda şu adrese gidin:
https://example.com/wp-admin/maint/repair.php
Onarım tamamlandıktan sonra bu satırı mutlaka wp-config.php'den kaldırın.
Komut satırından onarım:
mysqlcheck -u root -p --auto-repair --all-databases
5. MySQL Max Connections Sorununu Çözme
Bağlantı limiti dolmuşsa artırın:
nano /etc/mysql/mysql.conf.d/mysqld.cnf
# Ekleyin veya güncelleyin:
max_connections = 200
sudo systemctl restart mysql
6. cPanel'de Veritabanı Kullanıcı Yönetimi
cPanel kullanıcıları için:
- cPanel → MySQL Databases bölümüne gidin
- Add User To Database bölümünden kullanıcıyı veritabanına ekleyin
- İzinlerde ALL PRIVILEGES seçin
Özet ve Önleyici Tedbirler
- wp-config.php bilgilerini her değişiklik sonrası terminal ile test edin
- MySQL için yeterli RAM ayırın; OOM killer MySQL'i öldürebilir
- Düzenli veritabanı yedeği alın (WP-DB-Backup veya cPanel yedekleme)
- Bağlantı havuzu (connection pooling) için ProxySQL veya PgBouncer kullanmayı düşünün
- WordPress için WP-CLI ile veritabanı durumunu kontrol edin:
wp db check
İlgili Makaleler
Yorumlar
Henüz yorum yok. İlk yorumu siz yapın!