
cPanel'de MySQL Veritabanı Oluşturma ve Yönetme Rehberi
cPanel'de MySQL veritabanı oluşturma, kullanıcı ve privilege yönetimi, phpMyAdmin kullanımı, Remote MySQL ve wp-config.php ayarları adım adım anlatılıyor.
cPanel'de MySQL Veritabanı Oluşturma ve Yönetme Rehberi
WordPress'inizi yeni cPanel hesabına taşıdınız, kurulum sırasında "veritabanına bağlanılamıyor" hatası geliyor. Büyük ihtimalle üç adımdan biri eksik: veritabanı oluşturulmuş ama kullanıcı atanmamış, ya da kullanıcı atanmış ama privilege verilmemiş, ya da wp-config.php'deki DB_NAME cPanel prefix'ini içermiyor. Bu üç adımın hepsini sırayla bu rehberde anlatıyoruz. Buyukweb cPanel + MariaDB 10.6 LTS ortamı referans alınmıştır.
cPanel'de Veritabanı Altyapısı: MariaDB ve İzolasyon
Buyukweb paylaşımlı cPanel hosting paketlerinde veritabanı motoru MariaDB 10.6 LTS'dir. MariaDB, MySQL'in açık kaynaklı fork'u olduğundan tüm MySQL komutları ve araçları (phpMyAdmin, mysqldump, MySQL bağlantı kütüphaneleri) sorunsuz çalışır.
cPanel'de her hosting hesabı kendi cPanel kullanıcı adıyla (örn. sitead) izole edilir. Bu izolasyon DB düzeyinde de geçerlidir: oluşturduğunuz veritabanı ve kullanıcı adlarının başına cPanel kullanıcı adı otomatik eklenir.
Örnekle açıklayalım:
| Girdiğiniz | cPanel'in oluşturduğu tam ad |
|---|---|
DB adı: wordpress |
sitead_wordpress |
Kullanıcı adı: wpuser |
sitead_wpuser |
Bu prefix sistemini bilmeden wp-config.php'ye sadece wordpress yazmak en sık yapılan hatadır. Her zaman tam adı kullanın.
CloudLinux LVE (Lightweight Virtual Environment) sayesinde her cPanel hesabının CPU ve RAM kullanımı sınırlandırılır; ağır bir sorguda komşu hesaplar etkilenmez. Aynı nedenle SUPER gibi sunucu genelinde yetki gerektiren DDL komutlarını paylaşımlı hostingden çalıştıramazsınız — bunlar için VDS gereklidir.
MySQL Databases vs MySQL Database Wizard: Hangisi Ne Zaman?
cPanel > Veritabanları bölümünde iki ayrı araç bulunur:
MySQL Databases (Manuel):
Veritabanı oluşturma, kullanıcı oluşturma ve kullanıcı-DB eşleştirme adımları ayrı ayrı yapılır. Birden fazla kullanıcıyı aynı veritabanına ekleyecekseniz, mevcut kullanıcılara yeni DB atayacaksanız ya da privilege'leri granüler ayarlayacaksanız bu arayüzü tercih edin.
MySQL Database Wizard (Sihirbaz):
DB oluşturma → kullanıcı oluşturma → privilege belirleme adımlarını tek akışta tamamlar. Tek uygulama, tek DB kurulumu için en hızlı yoldur. Ek ayar gerekmiyorsa sihirbazı kullanmak daha pratiktir.
Kural şu: İlk kurulum için Wizard, sonraki yönetim için MySQL Databases.
Veritabanı Oluşturma: Adım Adım
cPanel → Veritabanları → MySQL Databases yolunu izleyin.
"Create New Database" alanına veritabanı adını yazın. Ad olarak sadece harf, rakam ve alt çizgi kullanın; boşluk ve özel karakter kabul edilmez.
Uzunluk sınırı: cPanel prefix dahil maksimum 64 karakter (MariaDB limiti). Uzun kullanıcı adlarında prefix + DB adı bu sınırı aşabilir; kısa, açıklayıcı isimler seçin.
Collation seçimi: cPanel'de DB oluştururken collation seçeneği görünmeyebilir; varsayılan sunucu collation'ı kullanılır. MariaDB 10.6'da Buyukweb sunucusunda varsayılan utf8mb4_unicode_ci'dir. Bu ayar Türkçe karakterleri (ş, ğ, ü, ö, ç, ı) doğru saklar ve sıralar. Farklı bir collation ile içe aktarma yapacaksanız phpMyAdmin'de import öncesinde hedef DB'nin collation'ını kontrol edin; uyumsuzluk Türkçe karakter bozulmalarına yol açar.
Create Database butonuna tıklandığında DB anında oluşturulur.
Kullanıcı Oluşturma: Güçlü Parola Zorunlu
Aynı sayfada "MySQL Users" bölümüne inin. Kullanıcı adı ve parola girin, ardından Create User tıklayın.
Parola için kesin öneriler:
- En az 14 karakter kullanın
- Büyük harf, küçük harf, rakam ve özel karakter kombinasyonu
- cPanel'in "Password Generator" butonunu kullanın — tek tıkla güvenli parola üretir ve "Use Password" ile alana otomatik yazar
- Üretilen parolayı bir parola yöneticisine kaydedin; parolayı DB'ye bağlandıktan sonra değiştirmek tüm bağlantı konfigürasyonlarını güncellemenizi gerektirir
Kullanıcı bu aşamada henüz hiçbir veritabanına bağlı değildir. Bir sonraki adımı atlayanlar "Access denied" hatasını burada alır.
Kullanıcıyı DB'ye Ekleme ve Privilege Yapılandırma
"Add User to Database" bölümünde kullanıcıyı ve veritabanını açılır menüden seçin, Add tıklayın.
Bir sonraki ekranda privilege seçimi yapılır:
ALL PRIVILEGES: Kullanıcıya ilgili veritabanı üzerinde tüm yetkiler verilir (SELECT, INSERT, UPDATE, DELETE, CREATE, DROP, ALTER, INDEX dahil). WordPress, Joomla, Drupal gibi CMS'ler plugin/tema kurulumu ve güncelleme sırasında tablo oluşturup değiştirdiğinden bunlar için ALL PRIVILEGES gereklidir.
Granüler seçim: Yalnızca belirli işlemleri yapması gereken kullanıcılar için manuel seçim yapın. Örneğin salt-okunur rapor kullanıcısı için sadece SELECT yeterlidir.
| Privilege | Ne yapar | CMS için gerekli mi? |
|---|---|---|
| SELECT | Veri okur | Evet |
| INSERT | Yeni kayıt ekler | Evet |
| UPDATE | Mevcut kaydı günceller | Evet |
| DELETE | Kayıt siler | Evet |
| CREATE | Tablo oluşturur | Evet (kurulum/güncelleme) |
| DROP | Tablo siler | Evet (migration) |
| ALTER | Tablo yapısını değiştirir | Evet (migration) |
| INDEX | İndeks oluşturur/siler | Evet |
| LOCK TABLES | Tablo kilitler | Evet (mysqldump için) |
Make Changes butonuyla privilege kaydedilir. Bu adımdan sonra kullanıcı artık veritabanını kullanabilir.
WordPress için Tipik Kurulum Akışı
WordPress özelinde ALL PRIVILEGES neden gereklidir? WooCommerce büyük bir ürün güncellemesi çalıştırdığında, bir güvenlik eklentisi DB tablosu oluşturduğunda, otomatik güncelleme migration çalıştırdığında — bunların hepsi CREATE, ALTER veya DROP gerektirebilir. Bu yetkileri kısıtlarsanız sessiz hatalar ve eksik işlevsellikle karşılaşırsınız.
Standart WordPress DB kurulum akışı:
1. DB oluştur: sitead_wpdb
2. Kullanıcı oluştur: sitead_wpuser (14+ karakter parola)
3. Kullanıcıyı DB'ye ekle → ALL PRIVILEGES
4. wp-config.php'yi düzenle (aşağıya bakın)
Her WordPress kurulumu için ayrı DB + ayrı kullanıcı oluşturun. İkinci bir WordPress için sitead_wpdb2 ve sitead_wpuser2 gibi ayrı bir set hazırlayın. Tek kullanıcıyla birden fazla siteyi yönetmek, bir sitedeki açığın diğerlerine sıçramasına zemin hazırlar.
phpMyAdmin: cPanel'den Tek Tık Erişim
Buyukweb cPanel paketlerinde phpMyAdmin ayrıca kurmanıza gerek yoktur; sunucu tarafında zaten yapılandırılmış gelir.
Erişim: cPanel → Veritabanları → phpMyAdmin
cPanel oturumunuz açıkken phpMyAdmin sizi otomatik doğrular. Sol panelde yalnızca kendi hesabınıza ait veritabanları görünür.
phpMyAdmin ana işlevleri:
| Sekme | Ne yapar |
|---|---|
| Browse | Tablodaki kayıtları sayfalı listeler |
| Structure | Sütun isimlerini, tiplerini, indeksleri gösterir |
| SQL | Manuel sorgu çalıştırma alanı |
| Insert | Görsel formla yeni kayıt ekler |
| Export | Veritabanını/tabloyu dışa aktarır |
| Import | SQL veya CSV dosyası yükler |
| Operations | Tablo optimize/onar, collation değiştir |
cPanel built-in vs VDS standalone phpMyAdmin farkı: cPanel'de phpMyAdmin sunucu güvenlik katmanları (CageFS, CSF) arkasında çalışır ve sadece cPanel oturumu açıkken erişilebilir. VDS'de kendi kurduğunuz phpMyAdmin doğrudan internete açık olabilir — bu ek saldırı yüzeyi oluşturur. VDS için SSH tunnel + masaüstü GUI (DBeaver, HeidiSQL) tercih edilmelidir.
DB Import ve Export: Büyük Dosyalarda CLI Gerekli
Export (Dışa Aktarma)
phpMyAdmin → sol panelden DB seçin → Export sekmesi:
- Quick: Tüm veritabanını SQL formatında hızlıca indirir
- Custom: Belirli tablolar, yapı+veri ayrı, gzip sıkıştırma, CSV veya JSON formatı seçilebilir
Küçük ve orta boyutlu veritabanları (50 MB altı) için Quick export yeterlidir.
Import (İçe Aktarma)
phpMyAdmin → hedef DB seçin → Import sekmesi → dosyayı seçin → Go.
phpMyAdmin'in dosya boyutu limiti php.ini'deki upload_max_filesize değerine bağlıdır (paylaşımlı hostingde genellikle 128–256 MB). Bu sınırı aşan dosyalar için:
cPanel Terminal veya SSH ile büyük import:
mysql -u sitead_wpuser -p sitead_wpdb < /home/sitead/backup.sql
mysqldump ile export (SSH üzerinden):
mysqldump -u sitead_wpuser -p sitead_wpdb > /home/sitead/backup-$(date +%F).sql
CloudLinux LVE limitleri uzun süren süreçleri kesebilir. Çok büyük veritabanlarında (500 MB+) paylaşımlı hostingden migrate etmek için önce phpMyAdmin ile export deneyin; başarısız olursa cPanel destek hattını arayın veya VDS'e geçişi değerlendirin.
Tablo Onarımı ve Optimizasyonu
Çökmüş bir tablo veya şişirilmiş bir veritabanı performans sorunlarına ve hata mesajlarına yol açar. phpMyAdmin üzerinden onarım:
phpMyAdmin yöntemi:
Veritabanını seç → tabloya tıkla → Operations sekmesi
→ Tablo bakımı: "Check table" / "Repair table" / "Optimize table"
Birden fazla tabloyu aynı anda işlemek için: tüm tabloları seçin (alt kısımda "Check all") → açılır menüden işlemi seçin.
CLI yöntemi (VDS veya cPanel Terminal):
# Tek veritabanındaki tüm tabloları onar
mysqlcheck -u sitead_wpuser -p --repair sitead_wpdb
# Tüm veritabanlarını kontrol et (root gerektirir — VDS)
mysqlcheck --check --all-databases -u root -p
InnoDB tablolar için OPTIMIZE TABLE aslında tabloyu yeniden oluşturur; büyük tablolarda birkaç dakika sürebilir ve bu süre zarfında tablo kilitlenir. Trafiğin düşük olduğu saatlerde çalıştırın.
Remote MySQL: Dış Sunucudan DB Erişimi
Uzak bir uygulama sunucusundan veya yerel geliştirici makinenizden cPanel MySQL'e bağlanmak için Remote MySQL özelliği kullanılır.
Aktifleştirme: cPanel → Veritabanları → Remote MySQL → IP adresini girin → Add Host
Eklediğiniz IP artık cPanel sunucusunun 3306 portuna bağlanabilir.
Güvenlik uyarıları:
%(herkes) girmeyin — tüm internete açarsınız- Yalnızca bilinen ve sabit IP adreslerini beyaz listeye ekleyin
- Mümkünse Remote MySQL yerine SSH tunnel kullanın:
# Yerel makinenizde çalıştırın; 3306'yı uzak sunucudan tüneller
ssh -L 3306:localhost:3306 cpanelusername@sunucu-ip -N
SSH tunnel aktifken MySQL bağlantı adresiniz 127.0.0.1:3306 olur. Uzak sunucuda Remote MySQL tanımlamanız gerekmez; 3306 portu dışarıya açık kalmaz.
Paylaşımlı Hosting'de DB Performansı ve Sınırlar
Buyukweb cPanel paketlerinde CloudLinux LVE her hesabın kaynak kullanımını sınırlar. Bu, tek bir hesabın sorgularının diğerlerini etkilemesini engeller — ama sizin için de bir tavan anlamına gelir.
Tipik sınırlamalar:
- Uzun süren sorgular (30+ saniye) LVE tarafından kesilir
SUPER,PROCESSgibi global yetki gerektiren komutlar çalışmaz- Slow query log görüntüleyemezsiniz (sunucu tarafında)
my.cnfüzerinde değişiklik yapamazsınız
Bu sınırlar normal web uygulamaları için sorun yaratmaz. Ancak ağır analitik sorgular, büyük migration'lar veya yüksek concurrent bağlantı gerektiren uygulamalar için VDS (KVM, root erişimli) gerekir. VDS'de dedicated MariaDB/MySQL kurabilir, my.cnf'yi istediğiniz gibi yapılandırabilirsiniz.
Veritabanı Yedekleme: cPanel ve JetBackup
cPanel Backup Wizard ile DB export:
cPanel → Dosyalar → Yedekleme Sihirbazı
→ Kısmi Yedekleme → MySQL Veritabanlarını İndir
→ İstediğiniz DB'yi seçin → .sql.gz dosyası indirilir
Bu yöntemle tek bir veritabanının yedeğini alabilirsiniz.
JetBackup: Buyukweb cPanel paketlerinde JetBackup haftalık otomatik yedekleme yapar. JetBackup yedeği dosya sistemi + veritabanları birlikte kapsar; cPanel → JetBackup menüsünden belirli bir DB'yi tek başına geri yükleyebilirsiniz. Günlük otomatik DB yedeği bulunmamaktadır; kritik veritabanlarınız için phpMyAdmin manuel export veya cron ile mysqldump düzenleyin.
mysqldump ile cron yedekleme (cPanel Terminal):
# Her gece 02:00'de yedek
0 2 * * * mysqldump -u sitead_wpuser -p'PAROLA' sitead_wpdb | gzip > /home/sitead/backups/db-$(date +%F).sql.gz
WordPress wp-config.php: DB Credentials
WordPress kurulumunu tamamladıktan sonra veya manuel taşıma yaparken wp-config.php dosyasındaki dört satırı doğru doldurmak kritiktir:
define('DB_NAME', 'sitead_wpdb'); // cPanel prefix dahil tam ad
define('DB_USER', 'sitead_wpuser'); // cPanel prefix dahil tam ad
define('DB_PASSWORD', 'GucluParola14+!'); // oluşturduğunuz parola
define('DB_HOST', 'localhost'); // cPanel paylaşımlı hostingde her zaman localhost
DB_HOST için localhost kullanın. Socket üzerinden bağlanıldığından TCP port belirtmeniz gerekmez. Uzak MySQL senaryosunda (farklı sunucu) host alanına sunucu IP'sini yazın.
Yaygın Hatalar ve Çözümleri
1. "Access denied for user" hatası
Sebep: Kullanıcı veritabanına eklenmemiş veya privilege verilmemiş.
Çözüm: cPanel → MySQL Databases → "Add User to Database" adımını kontrol edin; privilege'leri tekrar atayın.
2. "Unknown database" veya bağlantı hatası
Sebep: wp-config.php'de DB adı prefix olmadan yazılmış (wordpress yerine sitead_wordpress olmalı).
Çözüm: cPanel MySQL Databases sayfasında tam DB adını kopyalayın, wp-config.php'ye yapıştırın.
3. Türkçe karakterler bozuk (?, □ gibi gösteriyor)
Sebep: DB veya tablo collation latin1 veya utf8_general_ci; import edilen dosya farklı encoding.
Çözüm: phpMyAdmin → DB → Operations → Collation: utf8mb4_unicode_ci seçin. Import sırasında charset: UTF-8 olduğunu kontrol edin.
4. Parola özel karakter URL encoding sorunu
Sebep: wp-config.php PHP sabiti olarak parolayı saklar — URL encoding gerekmez. Ancak bazı eklentiler DB bağlantısını URL üzerinden yaparsa @, #, % gibi karakterler soruna yol açar.
Çözüm: Parola üretirken @, #, % karakterlerini dışlayan Password Generator seçeneğini kullanın veya özel karaktersiz güçlü parola tercih edin.
5. Prefix'i unutmak
En sık hata: DB adını prefix olmadan uygulamaya yazmak. cPanel MySQL Databases sayfasında listelenen tam adı (sitead_dbname) kopyalayıp kullanın.
6. Kullanıcı oluşturuldu ama DB'ye eklenmedi
Kullanıcı ve DB'yi ayrı ayrı oluşturduktan sonra "Add User to Database" adımını atlayanlar için tipik hata budur. Wizard kullanırsanız bu adım otomatik tamamlanır.
Buyukweb cPanel Ortamı: Özet
Buyukweb cPanel hosting paketlerinde:
- Veritabanı motoru: MariaDB 10.6 LTS
- phpMyAdmin: Dahili — kurulum gerekmez, cPanel oturumundan erişilir
- Web sunucu: LiteSpeed
- İzolasyon: CloudLinux LVE (CPU/RAM limitleri hesap bazında)
- Redis Object Cache: cPanel destek hattı üzerinden aktivasyon gerektirir (0850 302 60 70)
- Yedekleme: JetBackup haftalık otomatik (günlük değil); manuel export phpMyAdmin veya mysqldump ile
- Ölçek: Büyük veritabanı iş yükleri için Bursa Tier 3 veri merkezinde KVM VDS paketlerimiz mevcut
Sık Sorulan Sorular
Kaç veritabanı oluşturabilirim?
Pakete göre değişir. Temel paketlerde sınır bulunabilir; üst paketlerde sınırsızdır. cPanel ana sayfasında "MySQL Databases" widget'ında kullanılan ve izin verilen DB sayısını görebilirsiniz.
Remote MySQL güvenli midir?
3306 portunu internete açtığınız için doğrudan güvenli değildir. Yalnızca güvenilir sabit IP'leri beyaz listeye ekleyin. Mümkünse SSH tunnel kullanın — port dışarıya açılmaz, bağlantı şifreli tünelden geçer.
MariaDB mi, MySQL mi?
Buyukweb cPanel sunucularında MariaDB 10.6 LTS çalışır. MariaDB, MySQL ile %99+ SQL uyumludur; mysql komutu, mysqldump, tüm WordPress/Joomla/Drupal uygulamaları sorunsuz çalışır. Ağır analitik iş yükleri veya MySQL 8.x'e özgü özellikler gerekiyorsa VDS tercih edin.
phpMyAdmin çok yavaş, büyük tabloları açamıyorum. Ne yapayım?
phpMyAdmin 100.000+ satırlı tabloları "Browse" ile açarken tarayıcıyı yavaşlatabilir. Çözüm: SQL sekmesinden SELECT ... LIMIT 100 OFFSET 0 ile sayfalı sorgu çalıştırın. Ya da VDS'de SSH tunnel + DBeaver/HeidiSQL kullanın — masaüstü araçlar büyük result set'leri çok daha iyi yönetir.
Privilege olarak ne seçmeliyim?
WordPress ve benzeri CMS'ler için ALL PRIVILEGES gereklidir. Salt okunur rapor kullanıcısı için yalnızca SELECT yeterlidir. Üçüncü taraf entegrasyon için SELECT + INSERT + UPDATE + DELETE genellikle yeterlidir; CREATE/DROP/ALTER vermeyin.
Yanlışlıkla DB'yi sildim, geri alınabilir mi?
cPanel MySQL Databases'den DB silinirse geri alınamaz. JetBackup haftalık yedeği varsa cPanel → JetBackup → Databases → ilgili DB'yi seçip geri yükleyin. Bu nedenle kritik DB'lerden önce phpMyAdmin export alın. JetBackup'tan geri yükleme Buyukweb destek hattı (0850 302 60 70) aracılığıyla da yapılabilir.
wp-config.php'de DB_HOST ne olmalı?
cPanel paylaşımlı hostingde her zaman localhost. MySQL sunucusu aynı fiziksel makine üzerinde çalıştığından TCP port yerine socket bağlantısı kullanılır ve localhost bunu ifade eder.
Sonuç
cPanel MySQL Databases ile veritabanı yönetiminin temel döngüsü şudur: DB oluştur → kullanıcı oluştur → kullanıcıyı DB'ye ekle ve privilege ver → wp-config.php'de tam adları yaz. Bu dört adımı doğru tamamladığınızda WordPress veya herhangi bir PHP uygulaması sorunsuz çalışır. phpMyAdmin küçük-orta ölçekli işlemler için yeterlidir; büyük import/export ve onarım işlemlerinde CLI (mysql, mysqldump, mysqlcheck) daha güvenilirdir. Düzenli yedekleme için JetBackup haftalık yedeklerine ek olarak phpMyAdmin export veya mysqldump + cron kombinasyonunu kurun.
Teknik sorularınız için: 0850 302 60 70.
İlgili Büyükweb Hizmetleri
- cPanel Web Hosting — MariaDB 10.6 + phpMyAdmin + JetBackup dahil
- VDS Sunucu — root yetkili, dedicated MariaDB/MySQL yapılandırma
- WordPress Hosting — LiteSpeed + MariaDB optimize, WooCommerce uyumlu
- Sunucu Barındırma — Bursa Tier 3 veri merkezi, yüksek erişilebilirlik
Sorularınız için 0850 302 60 70 numaralı destek hattımıza veya iletişim sayfamıza yazabilirsiniz.
cPanel & Plesk İlgili Hizmetlerimiz
Bu yazıda anlatılan teknik konuyu profesyonel altyapıyla deneyimleyin
Etiketler:

