MySQL Veritabanı Oluşturma ve phpMyAdmin Kullanımı Rehberi
WordPress, WooCommerce, Joomla, özel yazılmış bir PHP uygulaması: hepsinin ortak noktası metinleri, kullanıcıları, siparişleri dosyada değil veritabanında tutmasıdır. Sunucuda bu işi genelde MySQL ya da onun uyumlu kardeşi MariaDB yapar. Yönetim arayüzü de çoğu paylaşımlı hostingde phpMyAdmin’dir.
Bu yazı iki soruya cevap veriyor: sıfırdan bir veritabanını nasıl doğru kurarsınız, ve bir gün siteniz "Error establishing a database connection" ekranı verdiğinde ne yaparsınız. Aradaki her adımda gerçek menü adlarını kullanacağım.
Veritabanı, kullanıcı ve yetki: üçü ayrı şeydir
En sık karışan nokta burasıdır. Bir veritabanı oluşturmak yetmez; ona erişecek bir MySQL kullanıcısı da açmanız ve o kullanıcıyı veritabanına yetkilendirmeniz gerekir. Üçüncü adımı atlarsanız uygulama bağlanamaz ve hata mesajı size bunu açıkça söylemez.
cPanel’de Veritabanları > MySQL Veritabanı Sihirbazı bu üç adımı sırayla yaptırır:
- Veritabanı adı:
kullanici_wp01. cPanel kullanıcı adınızı önek olarak kendisi ekler, siz sadece sonrasını yazarsınız. - Kullanıcı adı ve parola:
kullanici_wpuser. Parolayı panelin üreticisiyle oluşturun; 16 karakter ve üstü iyidir. Bu parolayı bir yere kaydedin, phpMyAdmin size bir daha göstermez. - Yetkiler: Uygulama kurulumları için
ALL PRIVILEGESişaretlenir. Sadece rapor okuyan bir betik bağlayacaksanızSELECTyeterlidir.
Kullanıcı adı ve veritabanı adı uzunluğu cPanel’de sınırlıdır; önek dahil 47 karakteri aşan isimler kabul edilmez. Kısa ve anlamlı tutun: _wp, _shop, _test.
Bağlantı bilgilerini uygulamaya yazmak
WordPress’te bu bilgiler kök dizindeki wp-config.php dosyasında durur:
| Satır | Ne yazılır |
|---|---|
| DB_NAME | kullanici_wp01 |
| DB_USER | kullanici_wpuser |
| DB_PASSWORD | Oluşturduğunuz parola |
| DB_HOST | localhost |
Paylaşımlı hostinglerin neredeyse tamamında DB_HOST değeri localhost‘tur; veritabanı sunucusu ayrıysa sağlayıcı size bir ana makine adı verir. Bu dosyayı düzenlemek için FTP ile bağlanabilir ya da cPanel Dosya Yöneticisi’ndeki düzenleyiciyi kullanabilirsiniz. Dosyayı Word’de açmayın; kodlama bozulur.
phpMyAdmin ile yedek alma
Veritabanı yedeği, dosya yedeğinden bağımsız bir şeydir ve çoğu kişi sadece dosyaları yedekleyip yıllarca yanlış bir güven duygusuyla yaşar. phpMyAdmin’de yedek almak bir dakikalık iştir:
- cPanel’de
phpMyAdmin‘i açın, sol menüden veritabanını seçin. - Üstten
Dışa Aktarsekmesine geçin. - Yöntem olarak Özel‘i seçin; biçim
SQLkalsın. - Sıkıştırma satırında
gzipseçin. 200 MB’lık bir veritabanı 20-30 MB’a iner. - "Ekleme" seçeneklerinde
DROP TABLE ... IF EXISTSifadesini eklettirirseniz geri yüklemede eski tabloları elle silmek zorunda kalmazsınız.
Dosya adına tarih koyun: wp01_2026-08-14.sql.gz. Yedeği sunucuda bırakmayın; sunucu çöktüğünde yedek de gider.
Geri yükleme ve büyük dosya sorunu
Geri yüklemek için phpMyAdmin’de veritabanını seçip İçe Aktar sekmesinden dosyayı gösterirsiniz. Sorun burada başlar: PHP’nin upload_max_filesize ve post_max_size değerleri genelde 64 MB civarındadır, max_execution_time ise 30-120 saniyedir. Büyük bir yedek yarıda kesilir ve size "script timeout" ya da boş bir sayfa döner. Yarım içe aktarma, hiç içe aktarmamaktan kötüdür.
Üç çözüm var:
- cPanel’de
MultiPHP INI Editorile yükleme limitlerini geçici olarak yükseltmek. Sınırların ne anlama geldiğini PHP sürümü ve ayarları yazısında ayrıntılı anlattık. - SSH erişiminiz varsa
mysql -u kullanici -p veritabani < yedek.sqlkomutuyla doğrudan yüklemek. En sağlam yol budur. - Dosyayı public_html dışına yükleyip Adminer gibi hafif bir aracı ya da sağlayıcınızın geri yükleme talebini kullanmak.
"Error establishing a database connection" teşhisi
Bu ekranı gördüğünüzde panik yapmadan dört ihtimali sırayla eleyin.
1. Parola veya kullanıcı adı yanlış
En sık sebep budur ve genelde biri parolayı panelden değiştirdiği için olur. cPanel’de MySQL Veritabanları > Geçerli Kullanıcılar bölümünden kullanıcının parolasını yeniden belirleyin, aynısını wp-config.php‘ye yazın.
2. Kullanıcı veritabanına ekli değil
Siteyi elle taşıdıysanız çok olur. Aynı ekranın altındaki "Veritabanına Kullanıcı Ekle" kutusundan eşleştirip ALL PRIVILEGES verin.
3. MySQL sunucusu düşmüş ya da hesap limiti dolmuş
Paylaşımlı hostingde hesabınız eşzamanlı bağlantı ya da Entry Processes limitini aşarsa veritabanı bağlantıları reddedilir. cPanel ana sayfasındaki kaynak kullanımı grafiğinde son 24 saatte kırmızı bir çizgi görürseniz sorun kod tarafındadır: ağır bir eklenti, optimize edilmemiş bir sorgu ya da bot trafiği. Sitenin yavaşlama nedenleri ile bu tablo genelde aynı kökten gelir.
4. Tablo bozulmuş
Beklenmedik kapanma sonrası bir tablo "crashed" duruma düşebilir. phpMyAdmin’de veritabanını açın, tabloları seçin, alttaki açılır menüden Tabloyu onar deyin. MyISAM tablolarda bu genelde işe yarar. InnoDB’de onarım farklı çalışır; bu durumda önce yedekten dönmek daha güvenlidir.
Veritabanını temiz tutmak
Zamanla veritabanı şişer. WordPress’te en büyük yer tutanlar revizyonlar, spam yorumlar, süresi geçmiş transient kayıtları ve kaldırılmış eklentilerin bıraktığı tablolardır. phpMyAdmin’de Yapı sekmesinde tabloları boyuta göre sıralayın; wp_options tablosu 50 MB’ı geçtiyse autoload kayıtlarına bakmanız gerekir. Kaldırdığınız bir eklentinin tablosunu silmeden önce mutlaka yedek alın; isimler benzeşir ve yanlış tablo silmek geri dönüşü olmayan bir iştir.
Özetle
- Veritabanı, kullanıcı ve yetkilendirme üç ayrı adımdır; sihirbaz üçünü de yaptırır.
- Bağlantı bilgileri WordPress’te
wp-config.phpiçindedir,DB_HOSTgeneldelocalhost‘tur. - Yedeği gzip’li SQL olarak alın, adına tarih koyun ve sunucu dışında saklayın.
- Büyük yedeklerde phpMyAdmin yükleme limiti takılır; SSH ile içe aktarmak en sağlam yoldur.
- Bağlantı hatasında sırayla parolayı, kullanıcı yetkisini, kaynak limitini ve tablo bütünlüğünü kontrol edin.