Bilgi bankamızda arama yapmak için sorunuzu yazın...
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.
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.
| Ekran | Yeni sürümlerdeki adı | Ne için kullanılır? |
|---|---|---|
| MySQL Databases | Manage My Databases | Veritabanı ve kullanıcı oluşturma, yetki verme, yeniden adlandırma, silme, denetleme ve onarma |
| MySQL Database Wizard | Database Wizard | İlk veritabanı, kullanıcı ve yetkiyi tek akışta tanımlama |
| phpMyAdmin | phpMyAdmin | Tabloları görüntüleme, sorgu çalıştırma, içe ve dışa aktarma |
| Remote MySQL | Remote Database Access | Başka sunuculardan veritabanına bağlanmasına izin verilen adresler |
Sihirbaz kullanıcıyı veritabanına kendisi ekler; ayrıca Add User To Database adımını yapmanız gerekmez.
İ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.
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.
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.
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 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:
/, ", ' ve ` karakterleri kullanılamaz.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ım | Gereken yetkiler | Not |
|---|---|---|
| Yalnızca okuma (raporlama, dış entegrasyon) | SELECT | Veriyi 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 kurma | Yukarıdakilere ek olarak CREATE, ALTER, INDEX, DROP | Tablo oluşturma ve yapı değişiklikleri; TRUNCATE TABLE da DROP yetkisi ister |
| Geçici tablo kullanan sorgular | CREATE TEMPORARY TABLES | Bazı raporlama ve arama işlemleri kullanır |
| Tablo kilitleme, dump ile yedek alma | LOCK TABLES, SHOW VIEW, TRIGGER | LOCK TABLES, SELECT yetkisiyle birlikte çalışır |
| Görünüm, saklı yordam, tetikleyici, zamanlanmış olay | CREATE VIEW, CREATE ROUTINE, ALTER ROUTINE, EXECUTE, TRIGGER, EVENT | Yalnızca uygulamanın belgesi istiyorsa verin |
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.
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.
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.
Ö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' );
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.
.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.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, 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.
| Hata | Olası 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 user | Kullanı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 vermiyor | Sunucu 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ı sunucu | Adresi 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 connect | Uzaktan bağlanan IP adresine izin verilmemiş | IP adresini Remote MySQL ekranına ekleyin |
WordPress'te Error establishing a database connection | Yukarıdaki nedenlerden biri; mesaj ayrıntı vermez | wp-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.
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:
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:
% joker karakteri bir adres aralığı tanımlar; tek başına % yazmak veritabanınızı internetteki her adrese açar.2003 hatasıyla zaman aşımına uğruyorsa bu konuyu sağlayıcınızla netleştirin.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 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.
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.
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.
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.
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.
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.
Değerlendirme: 0