Buyukweb
cPanel'de MySQL Veritabanı Oluşturma ve Yönetme Rehberi

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.

Büyükweb Editör EkibiHosting, Sunucu ve Sistem Yönetimi Editörü12 dakika okuma

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, PROCESS gibi 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

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:

#mysql#cpanel#plesk#hosting yönetimi#kontrol paneli

Bu yazıyı paylaş