Bugün size nasıl yardımcı olabiliriz?

Bilgi bankamızda arama yapmak için sorunuzu yazın...

cPanel'de MySQL Veritabanı Oluşturma ve Yetkilendirme

Yazdır

Netx Teknik Ekibi  ·  Yayın: 01.10.2026

cPanel'de MySQL veritabanı üç adımda hazırlanır: veritabanını oluşturursunuz, ayrı bir veritabanı kullanıcısı açarsınız ve bu kullanıcıyı gerekli yetkilerle veritabanına eklersiniz. İlk veritabanı için MySQL Database Wizard üç adımı tek akışta yapar. cPanel, veritabanı ve kullanıcı adlarının başına hesap adınızdan türetilen bir önek (hesapadi_) ekler; uygulamanın ayar dosyasına bu tam adları, sunucu (host) olarak da çoğu durumda localhost yazarsınız.

Hangi ekran ne işe yarar?

Veritabanı araçları cPanel'in Databases bölümündedir. cPanel 120 ve sonraki sürümlerde bazı ekranların adı değişti; panelinizde hangisi görünüyorsa onu kullanın.

EkranYeni sürümlerdeki adıNe için kullanılır?
MySQL DatabasesManage My DatabasesVeritabanı ve kullanıcı oluşturma, yetki verme, yeniden adlandırma, silme, denetleme ve onarma
MySQL Database WizardDatabase Wizardİlk veritabanı, kullanıcı ve yetkiyi tek akışta tanımlama
phpMyAdminphpMyAdminTabloları görüntüleme, sorgu çalıştırma, içe ve dışa aktarma
Remote MySQLRemote Database AccessBaşka sunuculardan veritabanına bağlanmasına izin verilen adresler

Yöntem 1: MySQL Database Wizard ile ilk veritabanı

  1. New Database alanına veritabanı adını yazın ve Next Step ile ilerleyin.
  2. Username alanına kullanıcı adını yazın (yalnızca harf ve rakam kullanılabilir).
  3. Şifreyi iki kez girin. Password Generator ile güçlü bir şifre üretip bir parola yöneticisine kaydetmeniz en güvenli yoldur.
  4. Create User ile kullanıcıyı oluşturun.
  5. Açılan yetki ekranında gereken yetkileri işaretleyin (aşağıdaki tabloya bakın) ve Next Step ile tamamlayın.

Sihirbaz kullanıcıyı veritabanına kendisi ekler; ayrıca Add User To Database adımını yapmanız gerekmez.

Yöntem 2: MySQL Databases ile adım adım

İkinci bir veritabanı açarken, var olan bir kullanıcıyı başka bir veritabanına eklerken veya yetkileri değiştirirken bu ekranı kullanın.

1. Veritabanını oluşturun

New Database alanına adı yazıp Create Database düğmesine tıklayın. Önek alanın solunda sabit olarak görünür; siz yalnızca ad kısmını yazarsınız. Yeni veritabanı Current Databases tablosunda listelenir.

2. Kullanıcıyı oluşturun

Kullanıcı ekleme bölümünde Username ve şifre alanlarını doldurup Create User düğmesine tıklayın. Veritabanı kullanıcıları e-posta ve FTP hesaplarından ayrıdır; cPanel şifreyi daha sonra göstermez. Şifreyi unutursanız Current Users tablosundaki Change Password ile yenisini belirler ve uygulamanın ayar dosyasını güncellersiniz.

3. Kullanıcıyı veritabanına ekleyin

Add User To Database bölümünde kullanıcıyı ve veritabanını seçip Add düğmesine tıklayın. Açılan MySQL Account Maintenance ekranında yetkileri işaretleyip Make Changes ile kaydedin. Sonucu Current Databases tablosundaki Privileged Users sütunundan kontrol edin: kullanıcı adı o veritabanının satırında görünmüyorsa uygulama bağlanamaz.

Önek (hesapadi_) nasıl çalışır?

Önek zorunluluğu açıksa (WHM'deki ilgili ayarın varsayılan değeri budur) cPanel, veritabanı ve kullanıcı adlarının başına hesap kullanıcı adınızdan türetilen bir önek ve alt çizgi ekler. Örnek: cPanel kullanıcı adınızın ornekhesap olduğunu, veritabanına wp, kullanıcıya wpkul yazdığınızı varsayalım. Oluşan adlar ornekhesap_wp ve ornekhesap_wpkul olur; uygulamaya da bu tam adları yazmanız gerekir.

Önekin uzunluğu veritabanı sunucusuna göre değişebilir: cPanel belgelerine göre MariaDB'de kullanıcı adının tamamı, MySQL'de ise kullanıcı adının ilk karakterleri kullanılır. Bu yüzden adları tahmin ederek yazmak yerine Current Databases ve Current Users tablolarından kopyalayın. Ad uzunluğu için de sınırlar vardır:

  • Veritabanı adı en fazla 64 karakterdir; cPanel adları saklarken her alt çizgiyi iki karakter sayar. Adda /, ", ' ve ` karakterleri kullanılamaz.
  • Kullanıcı adı, önek dahil MySQL 5.7 ve sonrasında 32, MariaDB'de 47 karakteri geçemez.

Hangi yetkileri vermelisiniz?

Yetki ekranındaki ALL PRIVILEGES seçeneği yalnızca seçtiğiniz veritabanı için geçerlidir; sunucunun geneline veya diğer veritabanlarınıza yetki vermez, başka kullanıcılara yetki dağıtma hakkını (GRANT OPTION) da içermez. Yine de en az yetki ilkesi, kullanıcının yalnızca işi için gereken yetkileri almasını önerir: uygulama ele geçirilirse saldırganın veritabanında yapabilecekleri bu yetkilerle sınırlı kalır.

KullanımGereken yetkilerNot
Yalnızca okuma (raporlama, dış entegrasyon)SELECTVeriyi değiştiremez
Uygulamanın günlük çalışmasıSELECT, INSERT, UPDATE, DELETEİçerik ekleme, düzenleme ve silme için yeterlidir
Kurulum, güncelleme, eklenti kurmaYukarıdakilere ek olarak CREATE, ALTER, INDEX, DROPTablo oluşturma ve yapı değişiklikleri; TRUNCATE TABLE da DROP yetkisi ister
Geçici tablo kullanan sorgularCREATE TEMPORARY TABLESBazı raporlama ve arama işlemleri kullanır
Tablo kilitleme, dump ile yedek almaLOCK TABLES, SHOW VIEW, TRIGGERLOCK TABLES, SELECT yetkisiyle birlikte çalışır
Görünüm, saklı yordam, tetikleyici, zamanlanmış olayCREATE VIEW, CREATE ROUTINE, ALTER ROUTINE, EXECUTE, TRIGGER, EVENTYalnızca uygulamanın belgesi istiyorsa verin

Kurulum ve güncelleme sırasında gereken yetkiler

Uygulamalar kurulumda tablolarını oluşturur, sürüm yükseltmelerinde ve eklenti kurulumlarında da tablo yapısını değiştirebilir. Bu işlemler CREATE, ALTER, INDEX ve DROP yetkileri ister. Bu yetkiler eksikse güncelleme yarıda kalır ve hata kaydında ALTER command denied to user gibi bir ifade görülür.

  • WordPress ve otomatik güncellenen içerik yönetim sistemleri: WordPress belgelerine göre günlük işlemler için SELECT, INSERT, UPDATE ve DELETE yeterlidir; ancak aynı belge, yapı yetkilerinin kaldırılmasını büyük güncellemelerde sorun çıkarabileceği için önermez ve bunu yapacaklara test edilmiş, düzenli veritabanı yedeği şartı koyar. Pratik yaklaşım, kurulum ve güncelleme yetkilerini açık bırakmak ve güvenliği her site için ayrı kullanıcı açarak sağlamaktır.
  • Kendi geliştirdiğiniz uygulamalar: Veritabanı değişikliklerini kontrollü bir dağıtım adımıyla (migration) yapıyorsanız iki kullanıcı kullanın: uygulamanın çalıştığı kullanıcıya yalnızca günlük yetkileri, dağıtım sırasında kullanılan ikinci kullanıcıya yapı yetkilerini verin.

Yetkileri sonradan değiştirmek için Current Databases tablosunda kullanıcı adına tıklayın, kutuları düzenleyin ve Make Changes ile kaydedin. Kullanıcıyı bir veritabanından tamamen çıkarmak için aynı satırdaki çöp kutusu simgesini ve ardından Revoke User Privileges from Database seçeneğini kullanın.

Uygulamayı veritabanına bağlama

Uygulamanın ayar dosyasına dört bilgi yazılır: önekli veritabanı adı, önekli kullanıcı adı, şifre ve sunucu adı. cPanel hosting'de sunucu adı çoğu durumda localhost olur. MySQL Databases ekranında Remote MySQL Host bölümü görünüyorsa sağlayıcınız veritabanını ayrı bir sunucuda çalıştırıyordur; bu durumda sunucu adı olarak orada yazan adresi kullanın.

localhost yazdığınızda bağlantı sunucudaki yerel soket dosyası üzerinden kurulur ve port numarası kullanılmaz. 127.0.0.1 yazdığınızda ise bağlantı TCP üzerinden, varsayılan olarak 3306 numaralı porta gider. İkisi aynı şey değildir: MariaDB belgelerine göre Linux'ta 127.0.0.1 üzerinden gelen bağlantı, localhost için tanımlanmış kullanıcıyla eşleşmez ve erişim reddedilebilir. Sağlayıcınız aksini söylemedikçe localhost kullanın.

WordPress: wp-config.php

Örnek: yukarıdaki önek örneğindeki adları kullandığınızı varsayalım.

define( 'DB_NAME', 'ornekhesap_wp' );
define( 'DB_USER', 'ornekhesap_wpkul' );
define( 'DB_PASSWORD', 'buraya-guclu-ve-benzersiz-bir-sifre' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );

.env kullanan uygulamalar

Laravel gibi çatılar bağlantı bilgisini .env dosyasından okur. Aynı varsayımla:

DB_CONNECTION=mysql
DB_HOST=localhost
DB_PORT=3306
DB_DATABASE=ornekhesap_app
DB_USERNAME=ornekhesap_appkul
DB_PASSWORD="buraya-guclu-ve-benzersiz-bir-sifre"

Şifrede boşluk veya # gibi özel karakterler varsa değeri çift tırnak içine alın.

Şifre ve ayar dosyası güvenliği

  • Her veritabanı kullanıcısı için ayrı ve benzersiz bir şifre kullanın; cPanel veya e-posta şifrenizi tekrar kullanmayın.
  • Şifreyi e-posta veya mesajlaşma uygulamasıyla açık metin olarak paylaşmayın. Şifrenin sızdığından şüpheleniyorsanız Change Password ile hemen değiştirip ayar dosyasını güncelleyin.
  • .env dosyası tarayıcıdan erişilebilir bir klasörde durmamalıdır; uygulamanın web kök dizini yalnızca herkese açık dosyaları içermelidir.
  • WordPress belgeleri, wp-config.php dosyasını yalnızca sizin ve web sunucusunun okuyabileceği şekilde (genellikle 400 veya 440) ayarlamayı önerir. İzni değiştirdikten sonra sitenin açıldığını kontrol edin; izinlerin mantığını dosya yöneticisi ve FTP izinleri yazısında anlattık.

WordPress'i otomatik kurulum aracıyla kurarsanız veritabanı ve kullanıcı sizin yerinize oluşturulur; elle kurulum akışı için cPanel'de WordPress kurulumu yazısına bakın.

phpMyAdmin'e kısa bir bakış

phpMyAdmin, hesabınızdaki veritabanlarının içeriğiyle çalışmak içindir: tabloları görüntüleme, kayıt düzenleme, SQL sorgusu çalıştırma, içe ve dışa aktarma. Veritabanı ve kullanıcı oluşturmak için kullanmayın; cPanel belgelerine göre phpMyAdmin'de açılan veritabanları hesabınızla eşleştirilmez ve yedekleme ile geri yükleme işlemleri bu veritabanlarında çalışmaz. Oluşturma işlerini her zaman MySQL Databases veya MySQL Database Wizard ekranında yapın.

MySQL 8.0 ve sonrasında tablo istatistikleri önbelleğe alındığı için phpMyAdmin'deki tablo boyutları gerçek değeri 24 saate kadar gecikmeli gösterebilir. Veri sildikten sonra boyutun düşmediğini görürseniz bu yüzden olabilir.

Yaygın bağlantı hataları

HataOlası nedenÇözüm
1045 Access denied for user '…'@'localhost' (using password: YES)Şifre yanlış, kullanıcı adı öneksiz yazılmış veya kullanıcı silinmiş ya da yeniden adlandırılmışKullanıcı adını Current Users tablosundan kopyalayın; emin değilseniz Change Password ile yeni şifre belirleyip ayar dosyasına yazın
1045 … (using password: NO)Ayar dosyasında şifre boşŞifre alanını doldurun; tırnak ve özel karakterleri kontrol edin
1044 Access denied for user '…'@'localhost' to database '…'Kullanıcı bu veritabanına eklenmemiş veya yanlış veritabanı adı yazılmışAdd User To Database ile kullanıcıyı ekleyin; Privileged Users sütununu kontrol edin
1049 Unknown database '…'Veritabanı adı öneksiz veya hatalı yazılmış, ya da veritabanı yeniden adlandırılmış veya silinmişTam adı Current Databases tablosundan kopyalayın
1142 … command denied to userKullanıcıda işlem için gereken yetki yok (ör. güncelleme sırasında ALTER)Yetki ekranından eksik yetkiyi ekleyin, işlemi tekrarlayın
2002 Can't connect to local … server through socket veya PHP'de SQLSTATE[HY000] [2002]Sunucu adı yanlış, yerel bağlantı kurulamıyor ya da veritabanı servisi yanıt vermiyorSunucu adını localhost yapın; Remote MySQL Host görünüyorsa o adresi kullanın; hesaptaki tüm siteler etkileniyorsa sağlayıcınıza bildirin
2003 Can't connect to … server on '…'TCP bağlantısı kurulamadı: yanlış adres veya port, güvenlik duvarı ya da uzaktan erişime kapalı sunucuAdresi ve portu kontrol edin; uzaktan bağlanıyorsanız aşağıdaki Remote MySQL bölümüne bakın
1130 Host '…' is not allowed to connectUzaktan bağlanan IP adresine izin verilmemişIP adresini Remote MySQL ekranına ekleyin
WordPress'te Error establishing a database connectionYukarıdaki nedenlerden biri; mesaj ayrıntı vermezwp-config.php'deki dört değeri tek tek doğrulayın

Hesabınızda Terminal veya SSH erişimi varsa kullanıcı adı ve şifre ikilisini uygulamadan bağımsız olarak mysql -u ornekhesap_wpkul -p komutuyla test edebilirsiniz. Komut şifreyi sorar; giriş başarılıysa sorun ayar dosyasındadır.

Uzaktan bağlantı: Remote MySQL ve güvenlik

Varsayılan olarak veritabanınıza yalnızca aynı sunucudaki uygulamalar bağlanır. Başka bir sunucudaki uygulamanın veya bilgisayarınızdaki bir veritabanı istemcisinin bağlanması gerekiyorsa Remote MySQL ekranında izin verilecek adresi tanımlarsınız:

  1. Host alanına bağlanacak cihazın IP adresini (IPv4 veya IPv6) ya da sunucu adını yazın.
  2. İsterseniz Comment alanına adresin kime ait olduğunu not edin.
  3. Add Host ile kaydedin.

Uygulamada sunucu adı olarak alan adınızı veya sunucu adresini, port olarak 3306'yı kullanırsınız. Güvenlik açısından dikkat edilecekler:

  • Yalnızca sabit IP adreslerine izin verin. % joker karakteri bir adres aralığı tanımlar; tek başına % yazmak veritabanınızı internetteki her adrese açar.
  • İşiniz bitince adresi silin. Geçici erişimler için tanımlanan adresler unutulduğunda kalıcı bir açık kapıya dönüşür; Manage Access Hosts bölümünden kaldırın.
  • Tanımadığınız adresleri sorun. Sağlayıcı sunucu düzeyinde adres ekleyebilir; listede tanımadığınız bir adres görürseniz silmeden önce sağlayıcınıza danışın.
  • Güvenlik duvarını hesaba katın. Adresi eklemek, sunucu güvenlik duvarının 3306 numaralı porta dışarıdan izin verdiği anlamına gelmez. Bağlantı 2003 hatasıyla zaman aşımına uğruyorsa bu konuyu sağlayıcınızla netleştirin.
  • Bağlantıyı şifreleyin. Bağlantının TLS ile şifrelendiğinden emin değilseniz şifreniz ve verileriniz ağ üzerinde açık gidebilir. Hesabınızda SSH erişimi varsa SSH tüneli daha güvenli bir seçenektir.

Tek seferlik bir tablo düzenlemesi veya dışa aktarma için uzaktan erişim açmak yerine phpMyAdmin'i kullanmak çoğu zaman yeterli ve daha güvenlidir.

Netx'te veritabanı kullanımı

Netx cPanel web hosting paketlerinde veritabanlarınızı bu yazıda anlatılan cPanel ekranlarından yönetirsiniz; cPanel giriş bilgileri hizmet açıldığında e-postayla iletilir. Paketlerin özelliklerini paket sayfasında karşılaştırabilirsiniz. Uzaktan veritabanı bağlantısı gibi sunucu tarafı ayarlara ihtiyacınız varsa, bunu sipariş öncesinde veya destek talebiyle destek ekibiyle netleştirin. cPanel'in genel modüllerine kısa bir bakış için cPanel nedir yazısına göz atabilirsiniz.

Sık sorulan sorular

Bir kullanıcıyı birden fazla veritabanına ekleyebilir miyim?

Evet, cPanel bir kullanıcının birden çok veritabanına erişmesine izin verir. Yine de her site veya uygulama için ayrı kullanıcı açmak daha güvenlidir: bir sitenin şifresi sızdığında diğer veritabanlarınız etkilenmez.

Veritabanının adını sonradan değiştirebilir miyim?

Evet, Current Databases tablosundaki Rename ile. cPanel bu işlemde yeni bir veritabanı oluşturur, verileri ve yetkileri taşır, eskisini siler; işlem sırasında açık bağlantılar kesilir. Öncesinde yedek alın ve işlemden sonra uygulamanın ayar dosyasındaki adı güncelleyin.

Veritabanlarım disk kotamdan düşer mi?

cPanel'in varsayılan ayarında veritabanları disk kullanımı hesabına dahil edilir; bu ayar sunucu yöneticisi tarafından değiştirilebilir. Büyüyen log ve oturum tabloları disk kullanımını beklenenden hızlı artırabilir.

Sunucuda MySQL mi, MariaDB mi çalışıyor?

cPanel ikisini de destekler; hangisinin kullanılacağına sunucu yöneticisi karar verir. Sürümü phpMyAdmin ana sayfasındaki veritabanı sunucusu bilgisinde görebilirsiniz. Uygulamalar açısından bağlantı ayarları aynıdır.

Veritabanımı nasıl yedeklerim?

phpMyAdmin'den dışa aktarabilir veya cPanel'in yedekleme araçlarıyla yalnızca veritabanı yedeği alabilirsiniz. Yöntemleri ve geri yüklemeyi cPanel'de yedek alma yazısında anlattık.

Bu cevap yeterince yardımcı oldu mu?

Değerlendirme: 0

<< Geri
İnternet bağlantınız kesildi