Web

cPanel'de MySQL Veritabanı Nasıl Oluşturulur? Kullanıcı ve Yetki Rehberi

Talha Aslan 15 dakikalık okuma 1 görüntülenme

cPanel'de MySQL veritabanı nasıl oluşturulur?

cPanel'de MySQL veritabanı oluşturmak, Databases bölümündeki Database Wizard (eski adıyla MySQL Database Wizard) ekranında sırasıyla veritabanı adını, veritabanı kullanıcısını ve parolasını girip bu kullanıcıya gereken yetkileri seçmekten ibarettir. İşlem birkaç dakika sürer; ardından bu bilgileri wp-config.php gibi uygulama ayar dosyanıza yazarsınız.

Kısa cevap bu kadar; ancak işin can sıkan kısmı ayrıntılarda saklı. Kullanıcı adı öneki, uzunluk sınırı, ALL PRIVILEGES kutusu, uzaktan erişim ve yedek gibi konular yanlış ayarlandığında site ya hiç açılmaz ya da gereğinden fazla açık bırakılmış olur. Bu rehberde her adımı cPanel'in resmi dokümantasyonuna dayanarak anlatıyoruz.

Biz Talha Aslan ve ekibi olarak dijital pazarlama ve web tasarım işi yapıyoruz; hosting firması değiliz. Bu yüzden arayüz adlarını ve sınırları cPanel MySQL Databases dokümantasyonu ile doğruladık. Sizin panelinizdeki görünüm, hosting sağlayıcınızın açtığı özelliklere göre küçük farklar gösterebilir.

MySQL veritabanı oluşturmadan önce neleri hazırlamalısınız?

Panele girmeden önce birkaç bilgiyi netleştirmeniz işinizi hızlandırır. Çünkü veritabanı adını sonradan değiştirmek mümkün olsa da bağlantıları keser ve ekstra iş çıkarır. Önce şu listeyi hazırlayın:

  • Uygulamanın adı: WordPress, Laravel, OpenCart ya da özel bir PHP projesi. Veritabanı adını buna göre anlamlı seçersiniz.
  • Kısa bir veritabanı adı: örneğin wpdb ya da magaza. Önek eklendiğinde uzayacağını unutmayın.
  • Ayrı bir kullanıcı adı: örneğin wpuser. Her uygulamaya ayrı kullanıcı açmak hasarı sınırlar.
  • Güçlü bir parola: en az 16 karakterli, rastgele bir dize tercih edin.
  • Uygulamanın istediği yetkiler: kurulum belgesinde yazan yetki listesini not edin.
  • Uzaktan erişim ihtiyacı: başka bir sunucu bu veritabanına bağlanacaksa onun sabit IP adresini öğrenin.

Ayrıca cPanel hesabınızın paketinde veritabanı sayısı sınırı olabilir. Kotanız dolduysa yeni MySQL veritabanı oluşturamazsınız; bu durumda önce kullanılmayan eski veritabanlarını temizler ya da hosting sağlayıcınızdan paket yükseltmesi istersiniz. Bu küçük hazırlık, kurulum sırasında yarım kalan adımları önler.

Database Wizard mı, Manage My Databases mı: hangisini seçmelisiniz?

cPanel'de veritabanı işleri için iki ana ekran var. cPanel ve WHM 120 ve sonraki sürümlerde MySQL Database Wizard ekranının adı Database Wizard, MySQL Databases ekranının adı ise Manage My Databases oldu. Eski sürüm kullanan bir hostingdeyseniz menüde eski adları görürsünüz. İşlev aynıdır; yalnızca etiket değişmiştir.

ÖzellikDatabase WizardManage My Databases
Eski adıMySQL Database WizardMySQL Databases
En uygun kullanımİlk veritabanı ve kullanıcıEk kullanıcı, yetki değişikliği, bakım
Kullanıcıyı veritabanına bağlamaOtomatik yaparAdd User To Database ile elle yaparsınız
Check ve RepairYokVar
Yeniden adlandırma ve silmeYokVar
Parola değiştirmeYokCurrent Users tablosunda var

cPanel dokümantasyonu da ilk veritabanı ve kullanıcı için sihirbazı öneriyor. Ancak sonraki işlerde Manage My Databases ekranına mutlaka döneceksiniz; örneğin bir kullanıcının yetkisini daraltmak ya da parolasını yenilemek için. Kısacası ikisini rakip değil, tamamlayıcı ekranlar olarak düşünün.

Database Wizard ile MySQL veritabanını adım adım nasıl kurarsınız?

Sihirbaz dört adımda ilerler ve kullanıcıyı veritabanına kendisi bağlar. cPanel Database Wizard dokümantasyonuna göre akış şöyledir:

  1. cPanel ana sayfasında Databases bölümünden Database Wizard ekranını açın.
  2. New Database kutusuna veritabanı adını yazın ve Next Step düğmesine basın. Önek varsa kutunun solunda hazır durur.
  3. Username kutusuna kullanıcı adını yazın. Bu alan yalnızca harf ve rakam kabul eder.
  4. Parolayı iki kez girin ya da Password Generator ile güçlü bir parola üretin, ardından Create User düğmesine basın.
  5. Yetki ekranında gereken kutuları işaretleyin ve Next Step ile işlemi bitirin.

Son ekranda başarı mesajını görürsünüz. Buradan yeni bir veritabanı ekleyebilir, ek kullanıcı tanımlamak için Manage My Databases ekranına geçebilir ya da ana sayfaya dönebilirsiniz. Sihirbaz kullanıcıyı veritabanına zaten eklediği için ayrıca Add User To Database adımını yapmanıza gerek kalmaz.

Bu aşamada ekrandaki tam veritabanı adını ve tam kullanıcı adını bir parola yöneticisine kaydedin. Özellikle önekli adlar akılda kalmaz ve bir sonraki adımda ayar dosyasına birebir yazmanız gerekir. Ayrıca sihirbazın verdiği yetki ekranında acele etmeyin; ALL PRIVILEGES kutusunu işaretlemeden önce aşağıdaki yetki bölümünü okumanızı öneririz.

Manage My Databases ekranında veritabanı ve kullanıcıyı ayrı ayrı nasıl eklersiniz?

Elle kurulum üç ayrı işten oluşur: veritabanı, kullanıcı ve ikisini birbirine bağlama. Sihirbazdan farkı, son adımı unutma ihtimalinin olmasıdır. Pratikte bağlantı hatalarının en sık nedenlerinden biri tam olarak budur.

  • Create New Database: New Database kutusuna adı yazıp Create Database düğmesine basarsınız. Yeni kayıt Current Databases tablosuna düşer.
  • Add New User: Username ve parola alanlarını doldurup Create User düğmesine basarsınız.
  • Add User To Database: listeden kullanıcıyı ve veritabanını seçip Add düğmesine basarsınız. Açılan yetki ekranında kutuları işaretleyip Make Changes ile kaydedersiniz.

cPanel dokümantasyonu önemli bir uyarı da yapıyor: veritabanı ya da veritabanı kullanıcısını phpMyAdmin üzerinden oluşturmayın. Çünkü phpMyAdmin bu kayıtları cPanel hesabınızla eşlemez; sonuç olarak yedekleme ve geri yükleme düzgün çalışmaz. Yani oluşturma işini her zaman cPanel ekranlarında yapın, phpMyAdmin'i yalnızca içerik yönetimi için kullanın.

Aynı ekranda Check Database ve Repair Database araçlarını da görürsünüz. Bozuk tablo şüphesinde önce Check ile durumu görür, sorun varsa Repair ile onarım denersiniz. Onarımdan önce bir yedek almanızı öneririz.

cPanel kullanıcı adı öneki ve uzunluk sınırı neden önemli?

Hosting sağlayıcınız veritabanı öneklemeyi açtıysa cPanel, girdiğiniz adın başına hesap kullanıcı adınızı ve bir alt çizgi ekler. Örneğin hesap adınız ornekhesap ise wpdb olarak yazdığınız veritabanı ornekhesap_wpdb olur. Ayar dosyasına kısa adı değil, bu tam adı yazmanız gerekir.

Veritabanı adı en fazla 64 karakter olabilir. Ancak cPanel adları saklama biçimi nedeniyle her alt çizgiyi iki karakter sayar; önekleme açıksa sınır, önek ve alt çizgi dahil 63 karaktere iner. Kullanıcı adı sınırı ise veritabanı motoruna göre değişir:

Veritabanı motoruKullanıcı adı sınırıdb_ önekiyle kalan
MySQL 5.6 ve öncesi16 karakter13 karakter
MySQL 5.7 ve sonrası32 karakter29 karakter
MariaDB47 karakter44 karakter

Bu değerler cPanel dokümantasyonundaki örneklerdir. Ayrıca sihirbaz, veritabanı adında eğik çizgi, çift tırnak, tek tırnak ve ters tırnak karakterlerine izin vermez. Bu yüzden kısa, küçük harfli ve alt çizgisi az adlar seçmek en sorunsuz yoldur.

Önekin bir faydası daha var: aynı sunucudaki yüzlerce hesap, wpdb gibi aynı kısa adı kullansa bile çakışma yaşamaz. Öte yandan önek, hesabınızı başka bir sunucuya taşırken dikkat ister. Yeni hesabın kullanıcı adı farklıysa veritabanı ve kullanıcı adları da değişir. Bu yüzden taşıma sonrasında ayar dosyasındaki adları mutlaka yeni öneke göre güncelleyin; aksi halde site ilk açılışta bağlantı hatası verir.

Veritabanı kullanıcısı için güçlü parolayı nasıl belirlersiniz?

cPanel girdiğiniz parolayı 100 puanlık bir ölçekle değerlendirir. Sıfır zayıf, 100 çok güvenli anlamına gelir. Bazı hosting sağlayıcıları asgari bir puan şart koşar; Strength göstergesi yeşile döndüğünde bu eşiği geçmişsiniz demektir.

En kolay yol, ekrandaki Password Generator düğmesini kullanmaktır. Alternatif olarak şifre oluşturucu aracımızla uzun ve rastgele bir parola üretebilirsiniz. Ürettiğiniz parolayı hemen bir parola yöneticisine kaydedin; cPanel bu parolayı daha sonra size göstermez. Unutursanız tek çözüm, Current Users tablosundan parolayı değiştirmektir.

Parola seçerken şu küçük kurallar işinizi kolaylaştırır:

  • cPanel hesabınızın ya da e-posta hesabınızın parolasını burada tekrar kullanmayın.
  • Ayar dosyasında sorun çıkarabilecek tırnak işaretlerinden kaçının; harf, rakam ve birkaç güvenli sembol yeterlidir.
  • Geliştiriciyle paylaşmanız gerekirse parolayı e-posta gövdesine yazmak yerine süreli bir paylaşım yöntemi seçin.
  • Bir çalışan ya da ajans projeden ayrıldığında parolayı hemen yenileyin.

ALL PRIVILEGES mı, yalnızca gereken yetkiler mi?

Kullanıcıyı veritabanına eklerken her MySQL yetkisi için ayrı bir kutu görürsünüz; en üstte de ALL PRIVILEGES kutusu durur. Tek tıkla hepsini vermek pratik gelir. Ancak en az yetki ilkesi, kullanıcının yalnızca işini yapacak kadar yetkiye sahip olmasını söyler. Böylece uygulamada bir açık çıksa bile saldırganın yapabilecekleri sınırlı kalır.

Yetkilerin ne işe yaradığını MySQL yetki dokümantasyonu ayrıntılı anlatıyor. Kabaca iki gruba ayırabilirsiniz:

  • Veri yetkileri: SELECT okuma, INSERT ekleme, UPDATE güncelleme, DELETE silme içindir. Günlük çalışmanın büyük kısmı bunlarla döner.
  • Yapı yetkileri: CREATE, ALTER, DROP ve INDEX tablo yapısını değiştirir. Kurulum, güncelleme ve eklenti eklerken gerekebilir.
  • Diğerleri: LOCK TABLES, CREATE TEMPORARY TABLES, CREATE VIEW, TRIGGER ve EXECUTE gibi yetkiler belirli uygulamalarda işe yarar.

Kural basit: uygulamanın kurulum belgesi hangi yetkileri istiyorsa onları verin. Belgede yazmıyorsa önce geniş yetkiyle kurup sonra daraltmak yerine, hangi yetkiye gerçekten ihtiyaç duyduğunu geliştiricinize sorun. Dolayısıyla ALL PRIVILEGES, varsayılan değil son çare olmalıdır.

WordPress için hangi MySQL yetkileri yeterli?

WordPress'in resmi güvenlik sıkılaştırma rehberi bu konuda net konuşuyor: yazı yayınlama, medya yükleme, yorum alma ve kullanıcı ekleme gibi normal işlemler için SELECT, INSERT, UPDATE ve DELETE yeterli. DROP, ALTER ve GRANT gibi yönetimsel yetkileri kaldırmak hasarı sınırlamaya yardımcı olur.

Ancak aynı rehber bir uyarı da ekliyor. Bazı eklentiler, temalar ve büyük WordPress güncellemeleri veritabanı yapısını değiştirmek isteyebilir. Bu yetkiler yoksa güncelleme yarıda kalabilir. Bu yüzden pratikte iki yol var:

  • Kurulum ve güncelleme dönemlerinde CREATE, ALTER, DROP ve INDEX yetkilerini açık tutmak, sakin dönemde kapatmak.
  • Yetkileri açık bırakıp düzenli, test ettiğiniz yedeklerle riski yönetmek.

Biz küçük işletme sitelerinde genellikle ikinci yolu daha sürdürülebilir buluyoruz, çünkü yetkiyi her güncellemede elle açıp kapatmak unutulmaya müsait bir rutindir. Öte yandan çok sayıda eklenti kullanan bir e-ticaret sitesinde yetkiyi daraltmak daha anlamlı olabilir. Ayrıca rehber, birden fazla WordPress sitesi için ayrı veritabanı ve ayrı kullanıcı kullanmayı öneriyor; bu, bir sitedeki sorunun diğerine sıçramasını önler.

Veritabanını wp-config.php dosyasına nasıl bağlarsınız?

Veritabanı ve kullanıcı hazır olduğunda sıra uygulamaya bu bilgileri vermeye gelir. WordPress bu bilgileri wp-config.php dosyasından okur; dosyayı File Manager ile açıp düzenleyebilirsiniz. Aşağıdaki değerler tamamen örnektir, kendi tam adlarınızı ve parolanızı yazmalısınız:

define( 'DB_NAME', 'ornekhesap_wpdb' );
define( 'DB_USER', 'ornekhesap_wpuser' );
define( 'DB_PASSWORD', 'BURAYA_GUCLU_PAROLA' );
define( 'DB_HOST', 'localhost' );
define( 'DB_CHARSET', 'utf8mb4' );
define( 'DB_COLLATE', '' );

WordPress'in güncel örnek ayar dosyası DB_HOST için localhost, DB_CHARSET için utf8mb4 değerini kullanır. Çoğu cPanel hesabında veritabanı aynı sunucuda çalıştığı için localhost doğru değerdir. Ancak cPanel dokümantasyonuna göre hosting sağlayıcınız ayrı bir MySQL sunucusu yapılandırdıysa Manage My Databases ekranında Remote MySQL Host bölümü görünür. Böyle bir bölüm varsa DB_HOST alanına orada yazan adresi girersiniz.

Bir de güvenlik notu: wp-config.php dosyasını herkese açık bir depoya, bir destek forumuna ya da bir yapay zekâ sohbetine olduğu gibi yapıştırmayın. Paylaşmanız gerekiyorsa parola satırını mutlaka maskeleyin. Ayrıca tablo önekini varsayılan wp_ yerine farklı bir değerle başlatmak, resmi rehbere göre bazı otomatik saldırıları boşa çıkarabilir.

Laravel ve diğer PHP uygulamalarında bağlantı bilgilerini nereye yazarsınız?

Mantık her uygulamada aynıdır: dört temel bilgi, yani sunucu, veritabanı adı, kullanıcı adı ve parola. Yalnızca dosya ve alan adları değişir. Örneğin Laravel bu bilgileri proje kökündeki .env dosyasından okur:

DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=ornekhesap_laravel
DB_USERNAME=ornekhesap_lruser
DB_PASSWORD=BURAYA_GUCLU_PAROLA

Paylaşımlı hostingde DB_HOST değeri için localhost ya da 127.0.0.1 genellikle çalışır; emin değilseniz hosting sağlayıcınızın verdiği değeri kullanın. Laravel'i cPanel'e taşırken klasör yapısı ve .env dosyasının korunması gibi ayrıntıları Laravel cPanel ve VPS kurulum rehberimizde ayrıca ele aldık.

Hazır yazılımlarda, örneğin OpenCart ya da PrestaShop kurulumunda, bu bilgileri kurulum sihirbazındaki form ister. Formu doldurduğunuzda yazılım ayar dosyasını kendisi oluşturur. Ayrıca uygulamanın PHP sürümü ile MySQL uyumluluğu da önemlidir; sürümü değiştirmeniz gerekirse cPanel PHP sürümü değiştirme rehberine göz atabilirsiniz.

Remote Database Access ile uzaktan MySQL erişimini nasıl açarsınız?

Varsayılan durumda veritabanınıza yalnızca aynı sunucudaki uygulamalar erişir. Başka bir sunucudaki uygulamanın ya da masaüstü bir SQL istemcisinin bağlanması gerekiyorsa Remote Database Access ekranını kullanırsınız. Bu ekranın adı cPanel ve WHM 118 ve öncesinde Remote MySQL idi.

cPanel Remote Database Access dokümantasyonuna göre Host kutusuna bir alan adı, IPv4 ya da IPv6 adresi yazıp Add Host düğmesine basarsınız. Comment alanı isteğe bağlıdır ama kimin için açtığınızı not etmek ileride çok işe yarar. Kendi bağlantınızın çıkış adresini IP adresim aracından öğrenebilirsiniz.

Burada en kritik konu, yüzde işaretidir. Panel bu işareti joker karakter olarak kabul eder; tek başına yüzde işareti eklemek veritabanını tüm internete açmak anlamına gelir. Bu nedenle şu kurallara uyun:

  • Yalnızca sabit ve bildiğiniz IP adreslerini ekleyin, örneğin 203.0.113.25.
  • Ev internetiniz gibi değişen IP'lerde kalıcı kayıt bırakmak yerine işiniz bitince kaydı silin.
  • Tanımadığınız bir kayıt görürseniz silmeden önce hosting sağlayıcınıza sorun; dokümantasyona göre sağlayıcı sunucu düzeyinde kayıt ekleyebilir.
  • Mümkünse uzaktan erişim yerine SSH tüneli gibi şifreli bir yöntemi tercih edin.

Uzaktan bağlanırken hangi ayrıntılara dikkat etmelisiniz?

Remote Database Access kaydı tek başına yeterli olmayabilir. MySQL varsayılan olarak 3306 numaralı portu dinler; ancak paylaşımlı hosting sağlayıcıları bu portu güvenlik duvarında kapalı tutabilir. Kaydı eklediğiniz halde bağlantı zaman aşımına düşüyorsa sorun büyük ihtimalle ağ katmanındadır. Bu durumda hosting desteğine hangi IP'den bağlanacağınızı yazıp portun açılıp açılmadığını sorun.

Ayrıca uzak bağlantıda sunucu adresi olarak localhost değil, sunucunun alan adını ya da IP adresini kullanırsınız. Bağlantı trafiği şifrelenmiyorsa parolanız ağ üzerinde okunabilir hale gelebilir. Bu yüzden istemcinizin TLS desteğini açın ya da SSH tüneli kurun. Alan adınızın doğru sunucuyu gösterdiğinden emin olmak için DNS sorgulama aracını kullanabilirsiniz.

Son olarak, uzaktan erişimi kalıcı bir altyapı tasarımı olarak düşünmeyin. İki ayrı sunucudaki uygulamanın sürekli aynı veritabanını kullanması gerekiyorsa bu artık paylaşımlı hostingin değil, VPS ya da yönetilen veritabanı hizmetinin konusudur. Böyle bir mimaride kendi MySQL sunucusunu kurmak isteyenler için Ubuntu'da MySQL kurulumu rehberimiz iyi bir başlangıç olur.

phpMyAdmin ile veritabanını nasıl içe ve dışa aktarırsınız?

Boş bir MySQL veritabanı oluşturduktan sonra çoğu zaman içine eski bir sitenin verisini taşımanız gerekir. cPanel'deki phpMyAdmin tam olarak bu iş içindir. Dışa aktarma için şu yolu izlersiniz:

  1. phpMyAdmin'i açın ve sol menüden veritabanını seçin.
  2. Üstteki Export sekmesine geçin.
  3. Yöntem olarak Quick, biçim olarak SQL seçili kalsın; büyük veritabanlarında Custom ile sıkıştırma seçebilirsiniz.
  4. Go düğmesine basın ve inen dosyayı güvenli bir yere kaydedin.

İçe aktarma tersidir: hedef veritabanını seçer, Import sekmesinden SQL dosyasını yükler ve Go ile başlatırsınız. Ancak yükleme sınırı, sunucunun PHP ayarlarındaki upload_max_filesize ve post_max_size değerlerine bağlıdır; Import ekranı izin verilen en büyük boyutu gösterir. Dosyanız bu sınırı aşıyorsa hosting desteğinden yardım istemek ya da komut satırı kullanmak daha güvenlidir.

İçe aktarmadan önce SQL dosyasında CREATE DATABASE satırı olup olmadığını kontrol edin. Böyle bir satır, cPanel öneki olmayan yeni bir veritabanı oluşturmaya çalışır ve paylaşımlı hostingde yetki hatasıyla durur.

MySQL veritabanı yedeğini nasıl ve ne sıklıkla almalısınız?

phpMyAdmin dışa aktarması hızlı bir kopya için yeterlidir; ancak düzenli yedek stratejisi bunun ötesindedir. cPanel'in Backup ve Backup Wizard ekranları, veritabanlarını ayrı ayrı indirip geri yüklemenizi sağlar. Ayrıca hosting sağlayıcınızın kendi otomatik yedekleri de olabilir; bunların ne sıklıkla alındığını ve kaç gün saklandığını mutlaka öğrenin.

Yedeklemede asıl soru dosyanın varlığı değil, geri dönüp dönmediğidir. Bu yüzden ayda en az bir kez yedeği ayrı bir test veritabanına geri yükleyip kontrol etmenizi öneririz. Komut satırı erişiminiz varsa mysqldump ile tutarlı yedek almanın ayrıntılarını veritabanı yedekleme ve geri yükleme rehberimizde adım adım anlattık.

Yedeği yalnızca aynı sunucuda tutmak da yetmez. Sunucu bozulursa yedek de onunla birlikte gider. Dosyaları, veritabanını ve e-postaları kapsayan genel planı kurmak için web sitesi yedekleme stratejisi yazımıza bakabilirsiniz.

"Access denied for user" hatası neden çıkar ve nasıl çözersiniz?

Bu hata, MySQL'in bağlantı isteğini reddettiğini söyler. İki yaygın biçimi vardır. Birincisi, 1045 koduyla gelen ve kullanıcı adı ya da parolanın hatalı olduğunu gösteren hatadır. İkincisi ise 1044 koduyla gelen ve kullanıcının o veritabanına erişim yetkisi olmadığını anlatan hatadır.

Teşhis için şu sırayı izleyin:

  1. Ayar dosyasındaki kullanıcı adının önek dahil tam ad olduğunu kontrol edin. ornekhesap_wpuser yerine yalnızca wpuser yazmak en sık hatadır.
  2. Parolayı Current Users tablosundan yeniden belirleyip ayar dosyasına kopyalayın. Baştaki ya da sondaki boşluklara dikkat edin.
  3. Manage My Databases ekranında Privileged Users sütununa bakın. Kullanıcı orada görünmüyorsa Add User To Database ile ekleyin.
  4. Uzak bağlantıdaysanız IP adresinizin Remote Database Access listesinde olduğunu doğrulayın.

Hata 1044 ise sorun neredeyse her zaman üçüncü maddededir. Kullanıcı var, parola doğru; ama veritabanına bağlanmamış. Kısacası Manage My Databases ekranıyla kurulum yaptıysanız önce bu bağlantıyı kontrol edin.

Hata 1045 ise bakılacak yer ayar dosyasıdır. Parolada özel karakter varsa ve dosyada tırnak içinde düzgün kapanmıyorsa uygulama parolayı eksik okur. Bu durumda parolayı yalnızca harf ve rakamdan oluşan uzun bir dizeyle yenileyip tekrar deneyin. Ayrıca bazı uygulamalar ayar dosyasını önbelleğe alır; Laravel gibi çatılarda değişiklikten sonra yapılandırma önbelleğini temizlemeniz gerekebilir. Sorun sürerse hata mesajının tamamını, parolayı gizleyerek hosting desteğine iletin.

"Veritabanı bağlantısı kurulamadı" hatasında neye bakmalısınız?

WordPress'te bu hata İngilizce olarak Error establishing a database connection mesajıyla görünür. Mesaj geneldir; arkasında yanlış bilgi, çalışmayan veritabanı servisi ya da bozuk tablo olabilir. Bu nedenle sırayla eleme yapmak en hızlı yoldur.

  • Bilgiler: DB_NAME, DB_USER ve DB_PASSWORD değerlerini önekli tam adlarla karşılaştırın.
  • Sunucu: DB_HOST localhost mu, yoksa sağlayıcının verdiği ayrı bir adres mi olmalı?
  • Servis: phpMyAdmin açılıyor mu? Açılmıyorsa veritabanı servisi duruyor olabilir; bu durumda hosting sağlayıcınıza yazın.
  • Tablolar: phpMyAdmin açılıyor ama site açılmıyorsa Check Database ile bozuk tablo arayın.
  • Taşıma sonrası: site yeni taşındıysa veritabanının gerçekten içe aktarıldığını ve tablo önekinin ayar dosyasıyla eşleştiğini kontrol edin.

Bu hatayı arama motorları da görür. Site uzun süre bu hatayla kalırsa tarayıcılar sayfalarınıza ulaşamaz ve sıralamalar etkilenebilir. Bu yüzden düzeltmeden sonra SEO danışmanlığı kapsamında önerdiğimiz gibi Search Console'daki tarama hatalarını da kontrol edin.

MariaDB ile MySQL farkı bu kurulumda önemli mi?

Birçok cPanel sunucusu MySQL yerine MariaDB çalıştırır; panelde yine MySQL adıyla anılan ekranları görürsünüz. Günlük kullanımda, yani veritabanı ve kullanıcı oluşturmada, iki motor arasında fark hissetmezsiniz. Ancak yukarıdaki tabloda gördüğünüz gibi kullanıcı adı uzunluk sınırı motora göre değişir.

Fark asıl olarak uygulama uyumluluğunda ortaya çıkar. Bazı yazılımlar belirli bir MySQL sürümünü ya da özelliğini ister. cPanel dokümantasyonuna göre sunucunun MySQL ya da MariaDB sürümünü değiştirmek sistem yöneticisinin işidir; hesap sahibi olarak bunu panelden yapamazsınız. İki motorun farklarını ve hangi durumda hangisinin seçileceğini MariaDB ile MySQL farkı yazımızda ayrıntılı karşılaştırdık.

Hangi durumlarda bu işi hosting sağlayıcınıza bırakmalısınız?

Tek bir WordPress sitesi için veritabanı açmak, panel kullanmayı bilen herkesin yapabileceği bir iştir. Ancak bazı durumlarda kendi başınıza uğraşmak yerine destek talebi açmak hem daha hızlı hem daha güvenlidir:

  • Veritabanı servisi hiç yanıt vermiyorsa ya da phpMyAdmin açılmıyorsa.
  • Import sınırını aşan çok büyük bir veritabanını taşımanız gerekiyorsa.
  • Sunucunun MySQL ya da MariaDB sürümünün değişmesi gerekiyorsa.
  • Uzaktan bağlantı için güvenlik duvarında port açılması gerekiyorsa.
  • Repair Database onarımı başarısız olduysa ve son sağlam yedeği bulamıyorsanız.

Öte yandan iş uygulamanın kendisine dayanıyorsa, örneğin özel kodlu bir sistemin veritabanı yapısı ya da bir e-ticaret taşıması söz konusuysa, hosting desteği değil bir geliştirici ekibi gerekir. Site el değiştirirken veritabanı, kullanıcı ve yedek düzenini teslim notuna yazın; böylece siteyi devralan kişi neyin nerede olduğunu bilir. Web tasarım hizmetimizde bu notu sağlıklı bir yayına geçişin parçası sayıyoruz.

Kurulumdan sonra neleri kontrol etmelisiniz?

Kurulum bittiğinde beş dakikalık bir kontrol, aylar sonra çıkacak sorunları önler. Şu listeyi tek tek işaretleyin:

  • Uygulama çalışıyor ve veritabanına yazabiliyor mu? Örneğin WordPress'te bir taslak kaydedin.
  • Kullanıcı yalnızca gereken yetkilere mi sahip?
  • Remote Database Access listesinde gereksiz ya da joker karakterli kayıt kaldı mı?
  • Veritabanı adı, kullanıcı adı ve parola güvenli bir parola yöneticisinde kayıtlı mı?
  • İlk yedeği aldınız ve sunucu dışına kopyaladınız mı?
  • Ayar dosyasını herkese açık bir klasörde ya da depoda paylaşmadığınızdan emin misiniz?

Güvenlik tarafını uygulama katmanında da düşünmek gerekir. Sıkı veritabanı yetkileri SQL enjeksiyonu gibi saldırıların etkisini azaltır ama tek başına engellemez. Bu konudaki genel çerçeve için OWASP Top 10 rehberimize göz atabilirsiniz. Kısacası doğru kurduğunuz bir MySQL veritabanı, güvenli bir sitenin temelidir ama tamamı değildir.

Sıkça Sorulan Sorular

cPanel'de MySQL Database Wizard menüsünü neden bulamıyorum?
cPanel ve WHM 120 ve sonraki sürümlerde bu ekranın adı Database Wizard oldu; MySQL Databases ekranı da Manage My Databases adını aldı. Menüde yeni adları arayın. Hiçbiri görünmüyorsa Databases bölümünü arama kutusuyla da arayabilirsiniz. Yine de yoksa hosting sağlayıcınız bu özelliği paketinizde kapatmış olabilir; Feature Manager ayarı için destek talebi açın.
Veritabanı adımın başına neden kullanıcı adım eklendi?
Hosting sağlayıcınız veritabanı öneklemeyi açtığı için cPanel, girdiğiniz adın başına hesap kullanıcı adınızı ve bir alt çizgi ekler. Bu, aynı sunucudaki hesapların birbirinin adlarıyla çakışmasını önler. Bu yüzden uygulamanın ayar dosyasına kısa adı değil, önek dahil tam adı yazmanız gerekir; aksi halde Access denied hatası alırsınız.
WordPress veritabanı kullanıcısına ALL PRIVILEGES vermeli miyim?
Zorunlu değildir. WordPress'in resmi rehberine göre günlük işlemler için SELECT, INSERT, UPDATE ve DELETE yeterlidir. Ancak eklenti ve büyük sürüm güncellemeleri CREATE, ALTER, DROP ve INDEX isteyebilir. Yetkileri daraltırsanız güncelleme öncesinde geçici olarak açmayı ve düzenli, test ettiğiniz yedekler almayı unutmayın.
Veritabanı kullanıcısının parolasını unuttum, nasıl görebilirim?
Göremezsiniz; cPanel veritabanı parolasını kaydettikten sonra göstermez. Manage My Databases ekranındaki Current Users tablosunda Change Password ile yeni bir parola belirlersiniz. Ardından aynı parolayı uygulamanın ayar dosyasına, örneğin wp-config.php içindeki DB_PASSWORD satırına yazmanız gerekir; aksi halde site bağlanamaz.
Remote MySQL için yüzde işareti eklemek güvenli mi?
Hayır. cPanel yüzde işaretini joker karakter olarak kabul eder ve tek başına eklenen yüzde işareti veritabanınıza her IP adresinden bağlanma denemesine kapı açar. Yalnızca bildiğiniz sabit IP adreslerini ekleyin, geçici erişimleri iş bitince silin ve mümkünse SSH tüneli gibi şifreli bir yol kullanın. Tanımadığınız bir kayıt görürseniz hosting sağlayıcınıza danışın.
phpMyAdmin ile veritabanı oluşturabilir miyim?
Teknik olarak deneyebilirsiniz ama cPanel bunu önermiyor. phpMyAdmin üzerinden açılan veritabanı ve kullanıcıları cPanel hesabınızla eşleşmez; bu da yedekleme ve geri yüklemenin düzgün çalışmamasına yol açar. Oluşturma işini Database Wizard ya da Manage My Databases ekranında yapın, phpMyAdmin'i ise tablo düzenleme, içe ve dışa aktarma gibi içerik işleri için kullanın.
  • cPanel
  • MySQL
  • veritabanı
  • phpMyAdmin
  • WordPress
  • web hosting
  • veritabanı güvenliği
Paylaş:
Talha Aslan

Google Partner dijital pazarlama uzmanı. 2012’den beri SEO, Google Ads, web tasarım ve e-ticaret projelerinde sahada; bu blogda gördüğünüz her yazı o deneyimden çıkar.

Sıradaki proje

Projenizi konuşalım.

Talebiniz doğrudan Talha Aslan ve ekibine ulaşır: stratejiyi Talha kurar, uygulamayı deneyimli ekip yürütür. İlk istişare ücretsizdir; hedefinizi dinler, net bir yol haritasıyla döneriz.