{"id":40505,"date":"2026-02-27T12:22:08","date_gmt":"2026-02-27T09:22:08","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris\/"},"modified":"2026-02-27T12:22:08","modified_gmt":"2026-02-27T09:22:08","slug":"mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris\/","title":{"rendered":"MariaDB Neden Tercih Edilmeli? Temel Veritaban\u0131 Kavramlar\u0131na Giri\u015f"},"content":{"rendered":"<p><title>Ubuntu&#8217;da MariaDB Kurulumu ve G\u00fcvenli\u011fi: Kapsaml\u0131 Rehber<\/title><br \/>\n<body><\/p>\n<p>Modern uygulamalar\u0131n bel kemi\u011fi olan veritabanlar\u0131, do\u011fru kurulmad\u0131\u011f\u0131nda ve g\u00fcvence alt\u0131na al\u0131nmad\u0131\u011f\u0131nda ciddi riskler ta\u015f\u0131yabilir. Bu rehber, a\u00e7\u0131k kaynak d\u00fcnyas\u0131n\u0131n g\u00fc\u00e7l\u00fc veritaban\u0131 \u00e7\u00f6z\u00fcmlerinden MariaDB&#8217;yi Ubuntu sunucunuzda nas\u0131l ad\u0131m ad\u0131m kuraca\u011f\u0131n\u0131z\u0131 ve kritik g\u00fcvenlik \u00f6nlemlerini nas\u0131l alaca\u011f\u0131n\u0131z\u0131 detayl\u0131ca anlat\u0131yor.<\/p>\n<h2>MariaDB Neden Tercih Edilmeli? Temel Veritaban\u0131 Kavramlar\u0131na Giri\u015f<\/h2>\n<p>G\u00fcn\u00fcm\u00fcz\u00fcn dijital d\u00fcnyas\u0131nda, web sitelerinden mobil uygulamalara, e-ticaret platformlar\u0131ndan kurumsal sistemlere kadar her \u015feyin temelinde g\u00fc\u00e7l\u00fc ve g\u00fcvenilir bir veritaban\u0131 yatar. Veritabanlar\u0131, bilgileri d\u00fczenli bir \u015fekilde saklayan, y\u00f6neten ve eri\u015filebilir k\u0131lan sistemlerdir. Bu ba\u011flamda, MariaDB, MySQL&#8217;in pop\u00fcler bir \u00e7atal\u0131 (fork) olarak ortaya \u00e7\u0131km\u0131\u015f, a\u00e7\u0131k kaynak kodlu ve ili\u015fkisel bir veritaban\u0131 y\u00f6netim sistemidir (RDBMS).<\/p>\n<p>MariaDB&#8217;nin tercih edilmesinin ard\u0131nda yatan bir\u00e7ok g\u00fc\u00e7l\u00fc neden bulunmaktad\u0131r. \u00d6ncelikle, MySQL ile y\u00fcksek uyumlulu\u011fu sayesinde, mevcut MySQL tabanl\u0131 uygulamalar\u0131n\u0131z\u0131 ve sistemlerinizi MariaDB&#8217;ye kolayca ta\u015f\u0131yabilirsiniz. Bu uyumluluk, geli\u015ftiriciler ve sistem y\u00f6neticileri i\u00e7in ge\u00e7i\u015f s\u00fcrecini olduk\u00e7a sorunsuz hale getirir. Ancak MariaDB, sadece bir uyumluluk klonu olman\u0131n \u00f6tesine ge\u00e7erek, MySQL&#8217;de bulunmayan veya daha geli\u015fmi\u015f \u00f6zellikler sunar. \u00d6rne\u011fin, performans\u0131 art\u0131r\u0131c\u0131 optimizasyonlar, daha geli\u015fmi\u015f depolama motorlar\u0131 (\u00f6rne\u011fin, Aria ve ColumnStore), ve daha s\u0131k\u0131 g\u00fcvenlik yamalar\u0131 ile \u00f6ne \u00e7\u0131kar. A\u00e7\u0131k kaynak felsefesine s\u0131k\u0131 s\u0131k\u0131ya ba\u011fl\u0131 kalmas\u0131, geni\u015f bir topluluk deste\u011fi ve s\u00fcrekli geli\u015fim potansiyeli sunar.<\/p>\n<p>Veritaban\u0131 y\u00f6netim sistemleri, verilerin tutarl\u0131l\u0131\u011f\u0131n\u0131, b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc ve g\u00fcvenli\u011fini sa\u011flamakla g\u00f6revlidir. \u0130li\u015fkisel veritabanlar\u0131, verileri tablolar halinde d\u00fczenler ve bu tablolar aras\u0131ndaki ili\u015fkileri tan\u0131mlar. Bu yap\u0131, verilerin sorgulanmas\u0131n\u0131, g\u00fcncellenmesini ve silinmesini standart bir dil olan SQL (Structured Query Language) arac\u0131l\u0131\u011f\u0131yla kolayla\u015ft\u0131r\u0131r. MariaDB de bu prensipler \u00fczerine kurulmu\u015ftur ve karma\u015f\u0131k veri manip\u00fclasyonlar\u0131 i\u00e7in g\u00fc\u00e7l\u00fc SQL yetenekleri sunar. Veritaban\u0131 sunucusu, bu veritabanlar\u0131n\u0131 bar\u0131nd\u0131ran ve istemci uygulamalar\u0131n\u0131n (web sunucular\u0131, masa\u00fcst\u00fc uygulamalar\u0131 vb.) bu verilere eri\u015fimini sa\u011flayan yaz\u0131l\u0131md\u0131r. Ubuntu gibi Linux tabanl\u0131 sunucular, MariaDB&#8217;nin kararl\u0131 ve y\u00fcksek performansl\u0131 bir \u015fekilde \u00e7al\u0131\u015fmas\u0131 i\u00e7in ideal bir ortam sunar. Bu entegrasyon, \u00f6zellikle maliyet etkinli\u011fi ve esneklik arayan i\u015fletmeler ve geli\u015ftiriciler i\u00e7in cazip bir kombinasyon olu\u015fturur. Dolay\u0131s\u0131yla, MariaDB&#8217;yi tercih etmek, hem teknik \u00fcst\u00fcnl\u00fckleri hem de a\u00e7\u0131k kaynak avantajlar\u0131n\u0131 bir araya getiren stratejik bir karard\u0131r.<\/p>\n<h2>Ubuntu Sunucunuzu MariaDB Kurulumuna Nas\u0131l Haz\u0131rlars\u0131n\u0131z?<\/h2>\n<p>MariaDB kurulumuna ba\u015flamadan \u00f6nce, Ubuntu sunucunuzun en iyi \u015fekilde haz\u0131rland\u0131\u011f\u0131ndan emin olmak kritik \u00f6nem ta\u015f\u0131r. Bu \u00f6n haz\u0131rl\u0131k ad\u0131mlar\u0131, hem kurulumun sorunsuz ilerlemesini sa\u011flar hem de sisteminizin genel g\u00fcvenli\u011fini ve performans\u0131n\u0131 art\u0131r\u0131r. \u0130lk olarak, sisteminizin g\u00fcncel oldu\u011fundan emin olmal\u0131s\u0131n\u0131z. G\u00fcncel paketler, en son g\u00fcvenlik yamalar\u0131n\u0131 ve hata d\u00fczeltmelerini i\u00e7erir, bu da olas\u0131 zafiyetleri ortadan kald\u0131r\u0131r ve kararl\u0131 bir \u00e7al\u0131\u015fma ortam\u0131 sunar. Terminali a\u00e7arak a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131rman\u0131z yeterlidir:<\/p>\n<pre><code>\nsudo apt update\nsudo apt upgrade -y\n    <\/code><\/pre>\n<p><code>sudo apt update<\/code> komutu, paket listelerinizi g\u00fcncellerken, <code>sudo apt upgrade -y<\/code> komutu ise mevcut t\u00fcm paketleri onay gerektirmeden en son s\u00fcr\u00fcmlerine y\u00fckseltir. Bu i\u015flem, sunucunuzun yaz\u0131l\u0131m taban\u0131n\u0131 tazeleyerek olas\u0131 uyumluluk sorunlar\u0131n\u0131n \u00f6n\u00fcne ge\u00e7er.<\/p>\n<p>G\u00fcvenlik, sunucu y\u00f6netiminin vazge\u00e7ilmez bir par\u00e7as\u0131d\u0131r. Bu nedenle, MariaDB kurulumuna ge\u00e7meden \u00f6nce temel g\u00fcvenlik \u00f6nlemlerini alman\u0131z \u015fartt\u0131r. En \u00f6nemli ad\u0131mlardan biri, bir g\u00fcvenlik duvar\u0131 (firewall) yap\u0131land\u0131rmakt\u0131r. Ubuntu&#8217;da varsay\u0131lan olarak gelen UFW (Uncomplicated Firewall), bu konuda size yard\u0131mc\u0131 olacak kullan\u0131c\u0131 dostu bir ara\u00e7t\u0131r. UFW&#8217;yi etkinle\u015ftirerek, sunucunuza gelen ve giden a\u011f trafi\u011fini kontrol alt\u0131na alabilir, yaln\u0131zca izin verilen portlar \u00fczerinden ba\u011flant\u0131lara izin verebilirsiniz. MariaDB genellikle 3306 numaral\u0131 portu kullan\u0131r, bu y\u00fczden bu portu a\u00e7man\u0131z gerekecektir. SSH (Secure Shell) ba\u011flant\u0131s\u0131 i\u00e7in de 22 numaral\u0131 portun a\u00e7\u0131k olmas\u0131 \u00f6nemlidir.<\/p>\n<pre><code>\nsudo ufw enable\nsudo ufw allow OpenSSH\nsudo ufw allow 3306\/tcp\nsudo ufw status\n    <\/code><\/pre>\n<p>Yukar\u0131daki komutlar s\u0131ras\u0131yla UFW&#8217;yi etkinle\u015ftirir, SSH ba\u011flant\u0131lar\u0131na izin verir, MariaDB&#8217;nin varsay\u0131lan portu olan 3306&#8217;ya TCP ba\u011flant\u0131lar\u0131na izin verir ve g\u00fcvenlik duvar\u0131n\u0131n mevcut durumunu g\u00f6sterir. Bu ad\u0131mlar, sunucunuza yetkisiz eri\u015fimi b\u00fcy\u00fck \u00f6l\u00e7\u00fcde k\u0131s\u0131tlayarak MariaDB veritaban\u0131n\u0131z\u0131n daha g\u00fcvende olmas\u0131n\u0131 sa\u011flar. Ayr\u0131ca, SSH ba\u011flant\u0131n\u0131z\u0131 daha da g\u00fcvenli hale getirmek i\u00e7in \u015fifre yerine anahtar tabanl\u0131 kimlik do\u011frulama kullanmay\u0131 ve varsay\u0131lan SSH portunu de\u011fi\u015ftirmeyi d\u00fc\u015f\u00fcnebilirsiniz. Bu haz\u0131rl\u0131klar tamamland\u0131\u011f\u0131nda, MariaDB&#8217;nin kurulumuna ge\u00e7mek i\u00e7in sunucunuz art\u0131k haz\u0131rd\u0131r ve daha g\u00fcvenli bir temel \u00fczerine in\u015fa edilmi\u015f olacakt\u0131r.<\/p>\n<h2>MariaDB Kurulumu: Ubuntu \u00dczerinde Ad\u0131m Ad\u0131m Uygulama Rehberi<\/h2>\n<p>Ubuntu sunucunuzu haz\u0131rlad\u0131ktan sonra, MariaDB&#8217;yi kurma zaman\u0131 gelmi\u015ftir. Bu s\u00fcre\u00e7 olduk\u00e7a basittir ve Ubuntu&#8217;nun paket y\u00f6netim sistemi olan APT (Advanced Package Tool) sayesinde h\u0131zl\u0131ca tamamlanabilir. MariaDB&#8217;nin kararl\u0131 s\u00fcr\u00fcm\u00fcn\u00fc veya belirli bir s\u00fcr\u00fcm\u00fcn\u00fc kurmak isteyebilirsiniz. Genellikle Ubuntu depolar\u0131nda bulunan s\u00fcr\u00fcm, \u00e7o\u011fu kullan\u0131m durumu i\u00e7in yeterince g\u00fcncel ve kararl\u0131d\u0131r. Ancak, en son \u00f6zelliklere veya performans iyile\u015ftirmelerine ihtiyac\u0131n\u0131z varsa, MariaDB&#8217;nin kendi deposunu eklemeyi d\u00fc\u015f\u00fcnebilirsiniz. Bu rehberde, Ubuntu&#8217;nun varsay\u0131lan depolar\u0131n\u0131 kullanarak kurulumu anlataca\u011f\u0131z, ki bu \u00e7o\u011fu kullan\u0131c\u0131 i\u00e7in en kolay ve \u00f6nerilen y\u00f6ntemdir.<\/p>\n<h3>MariaDB Sunucusunu Kurma \u0130\u015flemi Nas\u0131l Ger\u00e7ekle\u015fir?<\/h3>\n<p>MariaDB sunucu paketini kurmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n. Bu komut, MariaDB sunucu yaz\u0131l\u0131m\u0131n\u0131 ve ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 sisteminize y\u00fckleyecektir:<\/p>\n<pre><code>\nsudo apt install mariadb-server mariadb-client -y\n    <\/code><\/pre>\n<p>Bu komut \u00e7al\u0131\u015ft\u0131r\u0131ld\u0131ktan sonra, sisteminiz MariaDB paketlerini indirecek ve otomatik olarak kuracakt\u0131r. Kurulum s\u0131ras\u0131nda sizden herhangi bir \u015fifre belirlemeniz istenmeyebilir, \u00e7\u00fcnk\u00fc MariaDB&#8217;nin yeni s\u00fcr\u00fcmlerinde root kullan\u0131c\u0131s\u0131 varsay\u0131lan olarak Unix soket kimlik do\u011frulamas\u0131yla \u00e7al\u0131\u015f\u0131r. Bu, root kullan\u0131c\u0131s\u0131n\u0131n sistemin root kullan\u0131c\u0131s\u0131 olarak giri\u015f yap\u0131ld\u0131\u011f\u0131nda \u015fifreye ihtiya\u00e7 duymad\u0131\u011f\u0131 anlam\u0131na gelir.<\/p>\n<h3>MariaDB Servisinin Durumunu Nas\u0131l Kontrol Ederiz?<\/h3>\n<p>Kurulum tamamland\u0131ktan sonra, MariaDB servisinin d\u00fczg\u00fcn bir \u015fekilde \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131 kontrol etmek iyi bir uygulamad\u0131r. Bu kontrol\u00fc a\u015fa\u011f\u0131daki <code>systemctl<\/code> komutu ile yapabilirsiniz:<\/p>\n<pre><code>\nsudo systemctl status mariadb\n    <\/code><\/pre>\n<p>E\u011fer servis aktif ve \u00e7al\u0131\u015f\u0131r durumda ise, \u00e7\u0131kt\u0131da &#8220;active (running)&#8221; ifadesini g\u00f6rmelisiniz. Bu, MariaDB veritaban\u0131 sunucunuzun ba\u015far\u0131yla ba\u015flat\u0131ld\u0131\u011f\u0131 ve ba\u011flant\u0131lar\u0131 kabul etmeye haz\u0131r oldu\u011fu anlam\u0131na gelir. E\u011fer servis \u00e7al\u0131\u015fm\u0131yorsa, <code>sudo systemctl start mariadb<\/code> komutu ile ba\u015flatmay\u0131 deneyebilirsiniz.<\/p>\n<h3>MariaDB Kurulumunu G\u00fcvenli Hale Getirme: mysql_secure_installation<\/h3>\n<p>MariaDB&#8217;yi kurduktan sonra yap\u0131lmas\u0131 gereken en \u00f6nemli ad\u0131mlardan biri, <code>mysql_secure_installation<\/code> beti\u011fini \u00e7al\u0131\u015ft\u0131rmakt\u0131r. Bu betik, MariaDB sunucunuzun g\u00fcvenli\u011fini art\u0131rmak i\u00e7in bir dizi \u00f6neri sunar ve bunlar\u0131 uygulaman\u0131za yard\u0131mc\u0131 olur. Bu ad\u0131mlar, yetkisiz eri\u015fimi engellemek ve veritaban\u0131 ortam\u0131n\u0131z\u0131 daha sa\u011flam hale getirmek i\u00e7in hayati \u00f6neme sahiptir.<\/p>\n<pre><code>\nsudo mysql_secure_installation\n    <\/code><\/pre>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, a\u015fa\u011f\u0131daki gibi bir dizi soruyla kar\u015f\u0131la\u015facaks\u0131n\u0131z:<\/p>\n<ol>\n<li><strong>&#8220;Enter current password for root (enter for none):&#8221;<\/strong> MariaDB&#8217;nin yeni s\u00fcr\u00fcmlerinde root kullan\u0131c\u0131s\u0131 i\u00e7in varsay\u0131lan olarak bir \u015fifre olmayabilir. Bu durumda sadece Enter tu\u015funa basarak devam edebilirsiniz.<\/li>\n<li><strong>&#8220;Switch to unix_socket authentication? [Y\/n]&#8221;<\/strong> Unix soket kimlik do\u011frulamas\u0131, root kullan\u0131c\u0131s\u0131n\u0131n sistemin root kullan\u0131c\u0131s\u0131 olarak giri\u015f yap\u0131ld\u0131\u011f\u0131nda \u015fifreye ihtiya\u00e7 duymadan veritaban\u0131na eri\u015fmesine olanak tan\u0131r. Genellikle bu se\u00e7ene\u011fi kabul etmek (Y) g\u00fcvenlidir.<\/li>\n<li><strong>&#8220;Change the root password? [Y\/n]&#8221;<\/strong> Bu ad\u0131mda, MariaDB&#8217;nin root kullan\u0131c\u0131s\u0131 i\u00e7in g\u00fc\u00e7l\u00fc bir \u015fifre belirlemeniz \u015fiddetle tavsiye edilir. \u00d6zellikle uzak ba\u011flant\u0131lara izin vermeyi planl\u0131yorsan\u0131z bu \u00e7ok \u00f6nemlidir. &#8220;Y&#8221; tu\u015funa basarak yeni bir \u015fifre belirleyin.<\/li>\n<li><strong>&#8220;Remove anonymous users? [Y\/n]&#8221;<\/strong> Anonim kullan\u0131c\u0131lar, test ama\u00e7l\u0131 olu\u015fturulmu\u015f ve genellikle g\u00fcvenlik zafiyeti olu\u015fturan kullan\u0131c\u0131lard\u0131r. Bunlar\u0131 kald\u0131rmak (Y) her zaman iyi bir fikirdir.<\/li>\n<li><strong>&#8220;Disallow root login remotely? [Y\/n]&#8221;<\/strong> Root kullan\u0131c\u0131s\u0131n\u0131n yaln\u0131zca yerel olarak (sunucu \u00fczerinden) eri\u015febilmesi, uzaktan yetkisiz eri\u015fim riskini azalt\u0131r. &#8220;Y&#8221; se\u00e7ene\u011fini tercih ederek uzaktan root giri\u015fini devre d\u0131\u015f\u0131 b\u0131rak\u0131n.<\/li>\n<li><strong>&#8220;Remove test database and access to it? [Y\/n]&#8221;<\/strong> Test veritaban\u0131 ve ona eri\u015fim haklar\u0131, varsay\u0131lan olarak gelir ve \u00fcretim ortamlar\u0131nda gereksizdir. Bunlar\u0131 kald\u0131rmak (Y) g\u00fcvenlik a\u00e7\u0131s\u0131ndan olumlu bir ad\u0131md\u0131r.<\/li>\n<li><strong>&#8220;Reload privilege tables now? [Y\/n]&#8221;<\/strong> \u00d6nceki de\u011fi\u015fikliklerin etkili olmas\u0131 i\u00e7in yetki tablolar\u0131n\u0131n yeniden y\u00fcklenmesi gerekir. &#8220;Y&#8221; tu\u015funa basarak bu i\u015flemi onaylay\u0131n.<\/li>\n<\/ol>\n<p>Bu ad\u0131mlar\u0131 tamamlad\u0131\u011f\u0131n\u0131zda, MariaDB kurulumunuz temel d\u00fczeyde g\u00fcvenli hale getirilmi\u015f olacakt\u0131r. Art\u0131k veritaban\u0131n\u0131za ba\u011flanabilir ve kendi veritabanlar\u0131n\u0131z\u0131 ve kullan\u0131c\u0131lar\u0131n\u0131z\u0131 olu\u015fturmaya ba\u015flayabilirsiniz. Bu, MariaDB ile \u00e7al\u0131\u015fmaya ba\u015flamak i\u00e7in sa\u011flam bir temel olu\u015fturur.<\/p>\n<h2>MariaDB G\u00fcvenli\u011fini Sa\u011flama: En \u0130yi Uygulamalar ve \u0130leri D\u00fczey \u00d6nlemler Nelerdir?<\/h2>\n<p>MariaDB&#8217;nin kurulumunu tamamlamak ve <code>mysql_secure_installation<\/code> beti\u011fini \u00e7al\u0131\u015ft\u0131rmak, g\u00fcvenlik yolculu\u011funuzun yaln\u0131zca ilk ad\u0131m\u0131d\u0131r. Veritaban\u0131n\u0131z\u0131n s\u00fcrekli olarak g\u00fcvende kalmas\u0131n\u0131 sa\u011flamak i\u00e7in bir dizi ek \u00f6nlem ve en iyi uygulamay\u0131 hayata ge\u00e7irmeniz gerekmektedir. Bu b\u00f6l\u00fcmde, MariaDB g\u00fcvenli\u011fini bir \u00fcst seviyeye ta\u015f\u0131yacak kritik stratejileri ve ileri d\u00fczey \u00f6nlemleri detayland\u0131raca\u011f\u0131z.<\/p>\n<h3>Kullan\u0131c\u0131 Y\u00f6netimi ve Yetkilendirme: En Az Yetki Prensibi<\/h3>\n<p>Veritaban\u0131 g\u00fcvenli\u011finin temel ta\u015flar\u0131ndan biri, kullan\u0131c\u0131 y\u00f6netimidir. Her uygulama veya kullan\u0131c\u0131 i\u00e7in ayr\u0131 bir veritaban\u0131 kullan\u0131c\u0131s\u0131 olu\u015fturmal\u0131 ve bu kullan\u0131c\u0131lara yaln\u0131zca ihtiya\u00e7 duyduklar\u0131 minimum yetkileri vermelisiniz. &#8220;En az yetki&#8221; prensibi, bir kullan\u0131c\u0131n\u0131n veya uygulaman\u0131n yaln\u0131zca g\u00f6revini yerine getirmesi i\u00e7in gerekli olan verilere ve i\u015flemlere eri\u015fim iznine sahip olmas\u0131 gerekti\u011fi anlam\u0131na gelir. \u00d6rne\u011fin, bir web uygulamas\u0131 sadece belirli bir veritaban\u0131ndaki tablolara okuma ve yazma iznine sahip olmal\u0131, ancak veritaban\u0131 olu\u015fturma veya kullan\u0131c\u0131 y\u00f6netimi gibi ayr\u0131cal\u0131klara sahip olmamal\u0131d\u0131r.<\/p>\n<p>Yeni bir veritaban\u0131 ve kullan\u0131c\u0131 olu\u015fturmak i\u00e7in a\u015fa\u011f\u0131daki komutlar\u0131 kullanabilirsiniz:<\/p>\n<pre><code>\nsudo mysql -u root -p\n\n-- MySQL shell'indeyken:\nCREATE DATABASE my_application_db;\nCREATE USER 'app_user'@'localhost' IDENTIFIED BY 'GucluSifrenizBurada!';\nGRANT SELECT, INSERT, UPDATE, DELETE ON my_application_db.* TO 'app_user'@'localhost';\nFLUSH PRIVILEGES;\nEXIT;\n    <\/code><\/pre>\n<p>Yukar\u0131daki \u00f6rnekte, <code>my_application_db<\/code> ad\u0131nda bir veritaban\u0131 olu\u015fturulmu\u015f, <code>app_user<\/code> ad\u0131nda ve sadece yerel ba\u011flant\u0131lara izin veren bir kullan\u0131c\u0131 tan\u0131mlanm\u0131\u015f ve bu kullan\u0131c\u0131ya <code>my_application_db<\/code> \u00fczerindeki temel CRUD (Olu\u015fturma, Okuma, G\u00fcncelleme, Silme) yetkileri verilmi\u015ftir. \u015eifrenizi daima karma\u015f\u0131k ve tahmin edilemez tutun.<\/p>\n<h3>A\u011f Ba\u011flant\u0131s\u0131 G\u00fcvenli\u011fi: <code class=\"language-\">bind-address<\/code> ve G\u00fcvenlik Duvar\u0131 Kurallar\u0131<\/h3>\n<p>MariaDB sunucunuzun hangi a\u011f aray\u00fczlerinden ba\u011flant\u0131 kabul edece\u011fini kontrol etmek, g\u00fcvenlik a\u00e7\u0131s\u0131ndan \u00e7ok \u00f6nemlidir. Varsay\u0131lan olarak, MariaDB t\u00fcm aray\u00fczlerden ba\u011flant\u0131 kabul edebilir. Ancak, veritaban\u0131n\u0131z\u0131n yaln\u0131zca belirli IP adreslerinden veya yerel sunucudan eri\u015filebilir olmas\u0131n\u0131 sa\u011flamak, sald\u0131r\u0131 y\u00fczeyini \u00f6nemli \u00f6l\u00e7\u00fcde azalt\u0131r. Bunu <code>\/etc\/mysql\/mariadb.conf.d\/50-server.cnf<\/code> (veya benzeri) dosyas\u0131ndaki <code>bind-address<\/code> ayar\u0131 ile yapabilirsiniz.<\/p>\n<pre><code>\nsudo nano \/etc\/mysql\/mariadb.conf.d\/50-server.cnf\n    <\/code><\/pre>\n<p>Dosyay\u0131 a\u00e7t\u0131ktan sonra, <code>[mysqld]<\/code> b\u00f6l\u00fcm\u00fcn\u00fcn alt\u0131na veya mevcutsa bu ayar\u0131 a\u015fa\u011f\u0131daki gibi d\u00fczenleyin:<\/p>\n<pre><code>\n[mysqld]\n...\nbind-address = 127.0.0.1\n...\n    <\/code><\/pre>\n<p><code>bind-address = 127.0.0.1<\/code> olarak ayarlamak, MariaDB&#8217;nin sadece yerel makineden gelen ba\u011flant\u0131lar\u0131 kabul etmesini sa\u011flar. E\u011fer veritaban\u0131n\u0131za ba\u015fka bir sunucudan (\u00f6rne\u011fin bir uygulama sunucusu) eri\u015fmeniz gerekiyorsa, <code>bind-address<\/code> de\u011ferini o sunucunun IP adresine veya <code>0.0.0.0<\/code> (t\u00fcm aray\u00fczler) olarak ayarlaman\u0131z ve g\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131z\u0131 buna g\u00f6re d\u00fczenlemeniz gerekir. Ancak <code>0.0.0.0<\/code> kullan\u0131rken \u00e7ok dikkatli olun ve g\u00fcvenlik duvar\u0131n\u0131z\u0131n \u00e7ok s\u0131k\u0131 oldu\u011fundan emin olun.<\/p>\n<p>UFW (Uncomplicated Firewall) kurallar\u0131n\u0131z\u0131 da g\u00f6zden ge\u00e7irin. Sadece MariaDB&#8217;ye eri\u015fmesi gereken belirli IP adreslerinden gelen ba\u011flant\u0131lara izin verin. \u00d6rne\u011fin, belirli bir uygulama sunucusundan eri\u015fim i\u00e7in:<\/p>\n<pre><code>\nsudo ufw allow from 192.168.1.100 to any port 3306\n    <\/code><\/pre>\n<p>Bu komut, yaln\u0131zca <code>192.168.1.100<\/code> IP adresinden gelen 3306 portu \u00fczerindeki ba\u011flant\u0131lara izin verir.<\/p>\n<h3>Veri \u015eifrelemesi: TLS\/SSL Kullan\u0131m\u0131<\/h3>\n<p>MariaDB sunucusu ile istemciler aras\u0131ndaki ileti\u015fimin \u015fifrelenmesi, hassas verilerin a\u011f \u00fczerinden g\u00fcvenli bir \u015fekilde aktar\u0131lmas\u0131n\u0131 sa\u011flar. TLS (Transport Layer Security) veya SSL (Secure Sockets Layer) kullan\u0131m\u0131, man-in-the-middle sald\u0131r\u0131lar\u0131na kar\u015f\u0131 koruma sa\u011flar. MariaDB, kendi i\u00e7inde TLS\/SSL deste\u011fi sunar. Bunu etkinle\u015ftirmek i\u00e7in sertifika ve anahtar dosyalar\u0131na ihtiyac\u0131n\u0131z olacakt\u0131r. Let&#8217;s Encrypt gibi hizmetlerden \u00fccretsiz sertifikalar alabilir veya kendi kendinize imzal\u0131 sertifikalar olu\u015fturabilirsiniz.<\/p>\n<p>TLS\/SSL&#8217;i yap\u0131land\u0131rmak i\u00e7in <code>\/etc\/mysql\/mariadb.conf.d\/50-server.cnf<\/code> dosyas\u0131nda a\u015fa\u011f\u0131daki ayarlar\u0131 yapman\u0131z gerekecektir:<\/p>\n<pre><code>\n[mysqld]\n...\nssl-cert=\/etc\/mysql\/certs\/server-cert.pem\nssl-key=\/etc\/mysql\/certs\/server-key.pem\nssl-ca=\/etc\/mysql\/certs\/ca.pem\n...\n    <\/code><\/pre>\n<p>Bu dosyalar\u0131 uygun yollara yerle\u015ftirdikten ve MariaDB servisini yeniden ba\u015flatt\u0131ktan sonra, istemci ba\u011flant\u0131lar\u0131 \u015fifreleme kullanmaya zorlanabilir. Bu, \u00f6zellikle hassas verilerle \u00e7al\u0131\u015fan uygulamalar i\u00e7in vazge\u00e7ilmez bir g\u00fcvenlik katman\u0131d\u0131r.<\/p>\n<h3>Denetim (Auditing) ve Loglama<\/h3>\n<p>MariaDB, veritaban\u0131 etkinliklerini izlemek i\u00e7in g\u00fc\u00e7l\u00fc loglama yetenekleri sunar. Hata loglar\u0131, genel sorgu loglar\u0131, ikili loglar (binary logs) ve yava\u015f sorgu loglar\u0131, sistem y\u00f6neticilerine veritaban\u0131n\u0131n durumu hakk\u0131nda de\u011ferli bilgiler sa\u011flar. G\u00fcvenlik a\u00e7\u0131s\u0131ndan, \u00f6zellikle denetim loglar\u0131 (audit logs) \u00f6nemlidir. MariaDB&#8217;nin baz\u0131 s\u00fcr\u00fcmleri ve eklentileri denetim eklentileri sunar, bu sayede kimin ne zaman hangi sorguyu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131 takip edebilirsiniz. Bu loglar\u0131 d\u00fczenli olarak g\u00f6zden ge\u00e7irmek, \u015f\u00fcpheli etkinlikleri tespit etmek ve olas\u0131 g\u00fcvenlik ihlallerine h\u0131zla yan\u0131t vermek i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<pre><code>\n-- Genel sorgu logunu etkinle\u015ftirmek i\u00e7in (sadece sorun giderme ama\u00e7l\u0131 \u00f6nerilir, performans etkisi vard\u0131r)\ngeneral_log_file = \/var\/log\/mysql\/mysql.log\ngeneral_log = 1\n    <\/code><\/pre>\n<p>Bu ayarlar\u0131 <code>my.cnf<\/code> dosyan\u0131za ekleyebilir ve ard\u0131ndan servisi yeniden ba\u015flatabilirsiniz.<\/p>\n<h3>D\u00fczenli Yedekleme ve Kurtarma Planlar\u0131<\/h3>\n<p>En iyi g\u00fcvenlik \u00f6nlemleri bile %100 garanti vermez. Bu nedenle, verilerinizin d\u00fczenli olarak yedeklenmesi ve bir felaket durumunda h\u0131zl\u0131ca kurtar\u0131labilmesi i\u00e7in sa\u011flam bir plan\u0131n\u0131z\u0131n olmas\u0131 hayati \u00f6nem ta\u015f\u0131r. Yedeklemeler, hem veritaban\u0131n\u0131n tutarl\u0131 bir anl\u0131k g\u00f6r\u00fcnt\u00fcs\u00fcn\u00fc almal\u0131 hem de bu yedeklerin g\u00fcvenli bir yerde (tercihen farkl\u0131 bir sunucu veya bulut depolama) saklanmas\u0131n\u0131 sa\u011flamal\u0131d\u0131r. MariaDB i\u00e7in <code>mariadb-dump<\/code> veya <code>mysqldump<\/code> gibi ara\u00e7lar kullan\u0131larak mant\u0131ksal yedeklemeler al\u0131nabilir. Fiziksel yedeklemeler i\u00e7in ise Percona XtraBackup gibi ara\u00e7lar tercih edilebilir.<\/p>\n<pre><code>\nsudo mariadb-dump -u root -p my_application_db > \/var\/backups\/mysql\/my_application_db_$(date +%F).sql\n    <\/code><\/pre>\n<p>Bu komut, <code>my_application_db<\/code> veritaban\u0131n\u0131n bir yede\u011fini al\u0131r ve tarihle etiketlenmi\u015f bir SQL dosyas\u0131na kaydeder. Yedeklemelerinizi otomatikle\u015ftirmek i\u00e7in <code>cron<\/code> i\u015fleri kullanabilirsiniz. Ayr\u0131ca, yedekleri d\u00fczenli olarak test ederek kurtarma prosed\u00fcr\u00fcn\u00fcz\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olun. G\u00fcvenlik, sadece sald\u0131r\u0131lar\u0131 \u00f6nlemekle kalmaz, ayn\u0131 zamanda bir ihlal durumunda verilerinizi koruma ve geri y\u00fckleme yetene\u011fini de i\u00e7erir.<\/p>\n<h2>Performans Optimizasyonu ve \u0130leri D\u00fczey Ayarlar: Sunucunuzu Nas\u0131l H\u0131zland\u0131r\u0131rs\u0131n\u0131z?<\/h2>\n<p>MariaDB kurulumu ve g\u00fcvenli\u011finin sa\u011flanmas\u0131n\u0131n ard\u0131ndan, veritaban\u0131n\u0131z\u0131n en iyi performans\u0131 g\u00f6stermesini sa\u011flamak i\u00e7in optimizasyon ad\u0131mlar\u0131 atmak \u00f6nemlidir. Performans optimizasyonu, \u00f6zellikle y\u00fcksek trafikli uygulamalar ve b\u00fcy\u00fck veri k\u00fcmeleriyle \u00e7al\u0131\u015f\u0131rken kritik hale gelir. Do\u011fru yap\u0131land\u0131rma, sorgu h\u0131zlar\u0131n\u0131 art\u0131rabilir, disk I\/O&#8217;yu azaltabilir ve genel sunucu yan\u0131t s\u00fcresini iyile\u015ftirebilir. Bu b\u00f6l\u00fcmde, MariaDB performans\u0131n\u0131 art\u0131rmak i\u00e7in kullanabilece\u011finiz baz\u0131 ileri d\u00fczey ayarlar\u0131 ve stratejileri inceleyece\u011fiz.<\/p>\n<h3><code class=\"language-\">my.cnf<\/code> Dosyas\u0131 ile Yap\u0131land\u0131rma Ayarlar\u0131<\/h3>\n<p>MariaDB&#8217;nin temel yap\u0131land\u0131rma dosyas\u0131 genellikle <code>\/etc\/mysql\/my.cnf<\/code> veya <code>\/etc\/mysql\/mariadb.conf.d\/50-server.cnf<\/code> gibi yollarda bulunur. Bu dosya, MariaDB sunucusunun davran\u0131\u015f\u0131n\u0131 kontrol eden bir\u00e7ok parametreyi i\u00e7erir. Sunucunuzun donan\u0131m \u00f6zelliklerine (RAM, CPU, disk tipi) ve i\u015f y\u00fck\u00fcn\u00fcze g\u00f6re bu ayarlar\u0131 optimize etmek, performans\u0131 \u00f6nemli \u00f6l\u00e7\u00fcde art\u0131rabilir.<\/p>\n<p>Baz\u0131 \u00f6nemli parametreler ve a\u00e7\u0131klamalar\u0131:<\/p>\n<ul>\n<li><strong><code>innodb_buffer_pool_size<\/code>:<\/strong> Bu, InnoDB depolama motorunun veri ve indeksleri \u00f6nbelle\u011fe almak i\u00e7in kulland\u0131\u011f\u0131 bellek miktar\u0131d\u0131r. Bu, en \u00f6nemli performans ayarlar\u0131ndan biridir. Genellikle sunucu RAM&#8217;inin %50-70&#8217;i bu de\u011fere ayr\u0131l\u0131r. \u00d6rne\u011fin, 8GB RAM&#8217;e sahip bir sunucuda 4GB veya 6GB ay\u0131rmak mant\u0131kl\u0131 olabilir.<\/li>\n<li><strong><code>query_cache_size<\/code>:<\/strong> MySQL&#8217;in eski s\u00fcr\u00fcmlerinde pop\u00fcler olan bu \u00f6nbellek, ayn\u0131 sorgular\u0131n sonu\u00e7lar\u0131n\u0131 depolar. Ancak MariaDB&#8217;nin modern s\u00fcr\u00fcmlerinde (10.1 ve sonras\u0131) bu \u00f6zellik varsay\u0131lan olarak devre d\u0131\u015f\u0131 b\u0131rak\u0131lm\u0131\u015ft\u0131r veya kald\u0131r\u0131lm\u0131\u015ft\u0131r \u00e7\u00fcnk\u00fc y\u00fcksek e\u015fzamanl\u0131l\u0131k durumlar\u0131nda performans sorunlar\u0131na yol a\u00e7abilir. Genellikle devre d\u0131\u015f\u0131 b\u0131rak\u0131lmas\u0131 \u00f6nerilir (<code>query_cache_size = 0<\/code>, <code>query_cache_type = 0<\/code>).<\/li>\n<li><strong><code>max_connections<\/code>:<\/strong> Sunucunun ayn\u0131 anda kabul edebilece\u011fi maksimum istemci ba\u011flant\u0131s\u0131 say\u0131s\u0131d\u0131r. \u00c7ok d\u00fc\u015f\u00fck ayarlan\u0131rsa ba\u011flant\u0131 hatalar\u0131na yol a\u00e7abilir, \u00e7ok y\u00fcksek ayarlan\u0131rsa sistem kaynaklar\u0131n\u0131 t\u00fcketebilir. Uygulaman\u0131z\u0131n ihtiya\u00e7lar\u0131na g\u00f6re ayarlanmal\u0131d\u0131r.<\/li>\n<li><strong><code>thread_cache_size<\/code>:<\/strong> MariaDB&#8217;nin yeniden kullanmak \u00fczere saklad\u0131\u011f\u0131 i\u015f par\u00e7ac\u0131\u011f\u0131 say\u0131s\u0131d\u0131r. Y\u00fcksek trafikli sunucularda bu de\u011feri art\u0131rmak, yeni ba\u011flant\u0131lar i\u00e7in i\u015f par\u00e7ac\u0131\u011f\u0131 olu\u015fturma maliyetini azaltabilir.<\/li>\n<li><strong><code>key_buffer_size<\/code>:<\/strong> MyISAM depolama motoru i\u00e7in indeks \u00f6nbellek boyutudur. E\u011fer InnoDB kullan\u0131yorsan\u0131z, bu de\u011ferin \u00e7ok b\u00fcy\u00fck olmas\u0131na gerek yoktur.<\/li>\n<li><strong><code>tmp_table_size<\/code> ve <code>max_heap_table_size<\/code>:<\/strong> Bellekte olu\u015fturulan ge\u00e7ici tablolar\u0131n maksimum boyutunu belirler. B\u00fcy\u00fck ve karma\u015f\u0131k sorgular \u00e7al\u0131\u015ft\u0131r\u0131yorsan\u0131z bu de\u011ferleri art\u0131rmak, disk yerine bellekte i\u015flem yap\u0131lmas\u0131na yard\u0131mc\u0131 olabilir.<\/li>\n<li><strong><code>innodb_flush_log_at_trx_commit<\/code>:<\/strong> \u0130\u015flem loglar\u0131n\u0131n diske ne zaman yaz\u0131laca\u011f\u0131n\u0131 kontrol eder. <code>1<\/code> (varsay\u0131lan) en y\u00fcksek veri g\u00fcvenli\u011fini sa\u011flar ancak performans\u0131 biraz d\u00fc\u015f\u00fcrebilir. <code>0<\/code> veya <code>2<\/code> daha iyi performans sunar ancak elektrik kesintisi gibi durumlarda veri kayb\u0131 riski ta\u015f\u0131r.<\/li>\n<\/ul>\n<p>Bu ayarlar\u0131 <code>\/etc\/mysql\/mariadb.conf.d\/50-server.cnf<\/code> dosyas\u0131nda d\u00fczenledikten sonra, de\u011fi\u015fikliklerin etkili olmas\u0131 i\u00e7in MariaDB servisini yeniden ba\u015flatman\u0131z gerekir:<\/p>\n<pre><code>\nsudo systemctl restart mariadb\n    <\/code><\/pre>\n<h3>\u0130ndeksleme Stratejileri ve Sorgu Optimizasyonu<\/h3>\n<p>Veritaban\u0131 performans\u0131n\u0131n b\u00fcy\u00fck bir k\u0131sm\u0131, sorgular\u0131n ne kadar verimli \u00e7al\u0131\u015ft\u0131\u011f\u0131na ba\u011fl\u0131d\u0131r. Do\u011fru indeksleme, sorgular\u0131n tablolar\u0131 taramak yerine do\u011frudan ilgili verilere ula\u015fmas\u0131n\u0131 sa\u011flayarak sorgu s\u00fcrelerini \u00f6nemli \u00f6l\u00e7\u00fcde azaltabilir. S\u0131k\u00e7a kullan\u0131lan s\u00fctunlara (\u00f6zellikle <code>WHERE<\/code>, <code>JOIN<\/code>, <code>ORDER BY<\/code> ve <code>GROUP BY<\/code> yan t\u00fcmcelerinde) indeks eklemek, performans\u0131 art\u0131rman\u0131n en etkili yollar\u0131ndan biridir. Ancak, a\u015f\u0131r\u0131 indeksleme de yazma i\u015flemlerini yava\u015flatabilir, bu y\u00fczden dengeyi bulmak \u00f6nemlidir.<\/p>\n<p>Sorgular\u0131n\u0131z\u0131 analiz etmek i\u00e7in <code>EXPLAIN<\/code> komutunu kullan\u0131n. Bu komut, MariaDB&#8217;nin bir sorguyu nas\u0131l y\u00fcr\u00fctece\u011fini g\u00f6sterir ve potansiyel performans darbo\u011fazlar\u0131n\u0131 belirlemenize yard\u0131mc\u0131 olur:<\/p>\n<pre><code>\nEXPLAIN SELECT * FROM users WHERE email = 'test@example.com';\n    <\/code><\/pre>\n<p>\u00c7\u0131kt\u0131y\u0131 inceleyerek, sorgunun indeksleri kullan\u0131p kullanmad\u0131\u011f\u0131n\u0131, tam tablo taramas\u0131 yap\u0131p yapmad\u0131\u011f\u0131n\u0131 veya gereksiz ge\u00e7ici tablolar olu\u015fturup olu\u015fturmad\u0131\u011f\u0131n\u0131 g\u00f6rebilirsiniz. Buna g\u00f6re indekslerinizi veya sorgular\u0131n\u0131z\u0131 optimize edebilirsiniz.<\/p>\n<h3>MariaDB Monit\u00f6rleme Ara\u00e7lar\u0131<\/h3>\n<p>Performans optimizasyonu, s\u00fcrekli bir izleme ve ayarlama s\u00fcrecidir. MariaDB sunucunuzun sa\u011fl\u0131\u011f\u0131n\u0131 ve performans\u0131n\u0131 izlemek i\u00e7in \u00e7e\u015fitli ara\u00e7lar kullanabilirsiniz:<\/p>\n<ul>\n<li><strong><code>SHOW STATUS<\/code> ve <code>SHOW VARIABLES<\/code>:<\/strong> MariaDB istemcisinden \u00e7al\u0131\u015ft\u0131rabilece\u011finiz bu komutlar, sunucunun \u00e7al\u0131\u015fma zaman\u0131 istatistiklerini ve yap\u0131land\u0131rma de\u011fi\u015fkenlerini g\u00f6sterir.<\/li>\n<li><strong><code>MariaDB Monitor<\/code> (<code>mysqladmin<\/code>):<\/strong> Komut sat\u0131r\u0131ndan basit izleme ve y\u00f6netim g\u00f6revleri i\u00e7in kullan\u0131labilir.<\/li>\n<li><strong>Prometheus ve Grafana:<\/strong> Daha geli\u015fmi\u015f izleme i\u00e7in MariaDB ihracat\u00e7\u0131s\u0131n\u0131 kullanarak Prometheus ile metrikleri toplayabilir ve Grafana ile g\u00f6rselle\u015ftirebilirsiniz. Bu kombinasyon, zaman i\u00e7indeki performans e\u011filimlerini izlemek ve anormallikleri tespit etmek i\u00e7in g\u00fc\u00e7l\u00fc bir \u00e7\u00f6z\u00fcm sunar.<\/li>\n<li><strong>Percona Monitoring and Management (PMM):<\/strong> MariaDB i\u00e7in kapsaml\u0131 bir izleme, analiz ve y\u00f6netim platformudur.<\/li>\n<\/ul>\n<p>Bu ara\u00e7lar sayesinde, CPU kullan\u0131m\u0131, bellek t\u00fcketimi, disk I\/O, aktif ba\u011flant\u0131lar, kilitlenme durumlar\u0131 ve yava\u015f sorgular gibi kritik metrikleri takip edebilir, b\u00f6ylece performans sorunlar\u0131n\u0131 proaktif olarak tespit edip \u00e7\u00f6zebilirsiniz. Performans optimizasyonu, sunucunuzun donan\u0131m\u0131n\u0131 en verimli \u015fekilde kullanman\u0131z\u0131 sa\u011flayarak, uygulamalar\u0131n\u0131z\u0131n daha h\u0131zl\u0131 ve daha duyarl\u0131 \u00e7al\u0131\u015fmas\u0131na olanak tan\u0131r.<\/p>\n<h2>Vaka Analizi: K\u00fc\u00e7\u00fck Bir E-Ticaret Sitesi \u0130\u00e7in MariaDB Kurulumu ve G\u00fcvenli\u011fi<\/h2>\n<p>\u015eimdiye kadar MariaDB&#8217;nin kurulumu, g\u00fcvenli\u011fi ve performans\u0131 hakk\u0131nda teorik bilgiler edindik. Bu b\u00f6l\u00fcmde, \u00f6\u011frendiklerimizi ger\u00e7ek d\u00fcnya bir senaryoya uygulayarak peki\u015ftirelim. K\u00fc\u00e7\u00fck bir e-ticaret sitesi olan &#8220;H\u0131zl\u0131Sepet&#8221; i\u00e7in MariaDB kurulumu ve g\u00fcvenlik ad\u0131mlar\u0131n\u0131 ele alaca\u011f\u0131z. H\u0131zl\u0131Sepet, \u00fcr\u00fcn kataloglar\u0131n\u0131, m\u00fc\u015fteri bilgilerini, sipari\u015f ge\u00e7mi\u015flerini ve \u00f6deme i\u015flemlerini depolamak i\u00e7in MariaDB&#8217;ye g\u00fcveniyor.<\/p>\n<h3>Senaryo: H\u0131zl\u0131Sepet E-Ticaret Platformu<\/h3>\n<p>H\u0131zl\u0131Sepet, ba\u015flang\u0131\u00e7 seviyesinde bir e-ticaret sitesidir ve g\u00fcnde ortalama 500-1000 tekil ziyaret\u00e7i beklemektedir. Uygulama, PHP tabanl\u0131 bir \u00e7er\u00e7eve (\u00f6rne\u011fin Laravel) kullanmakta ve Ubuntu 22.04 LTS \u00fczerinde \u00e7al\u0131\u015fan tek bir sanal sunucuda (VPS) bar\u0131nd\u0131r\u0131lmaktad\u0131r. Bu sunucu hem web sunucusunu (Nginx) hem de MariaDB veritaban\u0131n\u0131 bar\u0131nd\u0131racakt\u0131r. Ana hedefler, verilerin g\u00fcvenli\u011fini sa\u011flamak, performans\u0131 optimize etmek ve gelecekteki b\u00fcy\u00fcmeye uygun bir altyap\u0131 olu\u015fturmakt\u0131r.<\/p>\n<h3>Ad\u0131m 1: Ubuntu Sunucusunu Haz\u0131rlama ve Temel G\u00fcvenlik<\/h3>\n<p>H\u0131zl\u0131Sepet&#8217;in sunucusu i\u00e7in ilk olarak genel g\u00fcvenlik ve g\u00fcncellemeler yap\u0131l\u0131r:<\/p>\n<pre><code>\nsudo apt update && sudo apt upgrade -y\nsudo apt install ufw -y\nsudo ufw enable\nsudo ufw allow OpenSSH\nsudo ufw allow 'Nginx Full' # Web sunucusu i\u00e7in\nsudo ufw allow 3306\/tcp    # MariaDB i\u00e7in\nsudo ufw status\n    <\/code><\/pre>\n<p>Bu ad\u0131mlarla, sunucu g\u00fcncellenir ve UFW etkinle\u015ftirilerek SSH, Nginx ve MariaDB i\u00e7in gerekli portlar a\u00e7\u0131l\u0131r. Bu, d\u0131\u015far\u0131dan gelebilecek yetkisiz eri\u015fim denemelerine kar\u015f\u0131 ilk savunma hatt\u0131n\u0131 olu\u015fturur.<\/p>\n<h3>Ad\u0131m 2: MariaDB Kurulumu ve G\u00fcvenli Hale Getirme<\/h3>\n<p>MariaDB, Ubuntu&#8217;nun varsay\u0131lan depolar\u0131ndan kurulur:<\/p>\n<pre><code>\nsudo apt install mariadb-server mariadb-client -y\nsudo systemctl status mariadb\n    <\/code><\/pre>\n<p>Ard\u0131ndan, <code>mysql_secure_installation<\/code> beti\u011fi \u00e7al\u0131\u015ft\u0131r\u0131l\u0131r:<\/p>\n<pre><code>\nsudo mysql_secure_installation\n    <\/code><\/pre>\n<p>Bu a\u015famada, MariaDB root kullan\u0131c\u0131s\u0131 i\u00e7in g\u00fc\u00e7l\u00fc bir \u015fifre belirlenir, anonim kullan\u0131c\u0131lar kald\u0131r\u0131l\u0131r, root kullan\u0131c\u0131s\u0131n\u0131n uzaktan giri\u015fi engellenir ve test veritaban\u0131 silinir. H\u0131zl\u0131Sepet&#8217;in hassas m\u00fc\u015fteri ve sipari\u015f verileri d\u00fc\u015f\u00fcn\u00fcld\u00fc\u011f\u00fcnde, bu ad\u0131mlar veri b\u00fct\u00fcnl\u00fc\u011f\u00fc ve gizlili\u011fi i\u00e7in hayati \u00f6neme sahiptir.<\/p>\n<h3>Ad\u0131m 3: E-Ticaret Uygulamas\u0131 \u0130\u00e7in Veritaban\u0131 ve Kullan\u0131c\u0131 Olu\u015fturma<\/h3>\n<p>H\u0131zl\u0131Sepet uygulamas\u0131 i\u00e7in \u00f6zel bir veritaban\u0131 ve kullan\u0131c\u0131 olu\u015fturulur. Bu, &#8220;en az yetki&#8221; prensibine uygun olarak yap\u0131l\u0131r.<\/p>\n<pre><code>\nsudo mysql -u root -p\n    <\/code><\/pre>\n<p>MariaDB istemcisinde:<\/p>\n<pre><code>\nCREATE DATABASE hizlisepet_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;\nCREATE USER 'hizlisepet_user'@'localhost' IDENTIFIED BY 'CokGucluE_TicaretSifresi!';\nGRANT SELECT, INSERT, UPDATE, DELETE ON hizlisepet_db.* TO 'hizlisepet_user'@'localhost';\nFLUSH PRIVILEGES;\nEXIT;\n    <\/code><\/pre>\n<p><code>hizlisepet_user<\/code> kullan\u0131c\u0131s\u0131 sadece <code>hizlisepet_db<\/code> veritaban\u0131na yerel olarak eri\u015febilir ve sadece CRUD i\u015flemlerini yapabilir. Bu, uygulaman\u0131n veritaban\u0131 eri\u015fimini k\u0131s\u0131tlayarak olas\u0131 bir g\u00fcvenlik ihlalinde zarar\u0131 minimize eder.<\/p>\n<h3>Ad\u0131m 4: A\u011f G\u00fcvenli\u011fi ve Optimizasyon<\/h3>\n<p>H\u0131zl\u0131Sepet&#8217;in MariaDB&#8217;si sadece yerel web sunucusu taraf\u0131ndan kullan\u0131laca\u011f\u0131ndan, <code>bind-address<\/code> ayar\u0131 <code>127.0.0.1<\/code> olarak ayarlan\u0131r. Bu, veritaban\u0131n\u0131n d\u0131\u015f d\u00fcnyadan tamamen izole edilmesini sa\u011flar.<\/p>\n<pre><code>\nsudo nano \/etc\/mysql\/mariadb.conf.d\/50-server.cnf\n    <\/code><\/pre>\n<p>Dosyada a\u015fa\u011f\u0131daki sat\u0131r bulunur veya eklenir:<\/p>\n<pre><code>\n[mysqld]\n...\nbind-address = 127.0.0.1\n...\n    <\/code><\/pre>\n<p>Ard\u0131ndan MariaDB servisi yeniden ba\u015flat\u0131l\u0131r:<\/p>\n<pre><code>\nsudo systemctl restart mariadb\n    <\/code><\/pre>\n<p>Performans i\u00e7in, H\u0131zl\u0131Sepet&#8217;in 8GB RAM&#8217;e sahip sunucusunda <code>innodb_buffer_pool_size<\/code> de\u011feri 4GB olarak ayarlan\u0131r. Bu, s\u0131k eri\u015filen verilerin bellekte tutularak disk I\/O&#8217;sunun azalt\u0131lmas\u0131n\u0131 sa\u011flar.<\/p>\n<h3>Ad\u0131m 5: Yedekleme Stratejisi<\/h3>\n<p>H\u0131zl\u0131Sepet i\u00e7in d\u00fczenli yedeklemeler kritik \u00f6neme sahiptir. Her gece otomatik yedekleme i\u00e7in bir <code>cron<\/code> i\u015fi olu\u015fturulur:<\/p>\n<pre><code>\nsudo crontab -e\n    <\/code><\/pre>\n<p>A\u015fa\u011f\u0131daki sat\u0131r eklenir (\u00f6rne\u011fin gece 02:00&#8217;de yedekleme i\u00e7in):<\/p>\n<pre><code>\n0 2 * * * \/usr\/bin\/mariadb-dump -u hizlisepet_user -p'CokGucluE_TicaretSifresi!' hizlisepet_db > \/var\/backups\/mysql\/hizlisepet_db_$(date +\\%F).sql\n0 2 * * * find \/var\/backups\/mysql -type f -name \"*.sql\" -mtime +7 -delete # 7 g\u00fcnden eski yedekleri sil\n    <\/code><\/pre>\n<p>Bu yedekler daha sonra sunucu d\u0131\u015f\u0131ndaki g\u00fcvenli bir bulut depolama alan\u0131na (\u00f6rne\u011fin S3 veya Google Cloud Storage) senkronize edilir. Bu, sunucu ar\u0131zas\u0131 durumunda dahi verilerin g\u00fcvende olmas\u0131n\u0131 sa\u011flar.<\/p>\n<p>Bu vaka analizi, MariaDB&#8217;nin bir e-ticaret platformu i\u00e7in nas\u0131l kuruldu\u011funu ve g\u00fcvence alt\u0131na al\u0131nd\u0131\u011f\u0131n\u0131 g\u00f6stermektedir. Her ad\u0131m, H\u0131zl\u0131Sepet&#8217;in verilerini korumak ve uygulamas\u0131n\u0131n sorunsuz \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flamak i\u00e7in tasarlanm\u0131\u015ft\u0131r. Bu yakla\u015f\u0131m, benzer k\u00fc\u00e7\u00fck ve orta \u00f6l\u00e7ekli uygulamalar i\u00e7in sa\u011flam bir temel olu\u015fturur.<\/p>\n<h2>HTML ve CSS Entegrasyonu: Mobil Uyumluluk \u0130\u00e7in \u0130pu\u00e7lar\u0131<\/h2>\n<p>Bu makalenin HTML yap\u0131s\u0131, modern web standartlar\u0131na uygun olarak tasarlanm\u0131\u015ft\u0131r ve mobil uyumlulu\u011fu desteklemektedir. Mobil uyumluluk, g\u00fcn\u00fcm\u00fczde bir web sitesinin ba\u015far\u0131s\u0131 i\u00e7in vazge\u00e7ilmez bir unsurdur. Kullan\u0131c\u0131lar\u0131n farkl\u0131 ekran boyutlar\u0131na sahip cihazlardan (ak\u0131ll\u0131 telefonlar, tabletler, diz\u00fcst\u00fc bilgisayarlar) i\u00e7eri\u011fe sorunsuz bir \u015fekilde eri\u015febilmesi gerekmektedir. Bu ba\u011flamda, HTML&#8217;in semantik kullan\u0131m\u0131 ve CSS&#8217;in esnekli\u011fi, mobil uyumlu bir deneyim sunman\u0131n temelini olu\u015fturur.<\/p>\n<p>Bu makalede kullan\u0131lan HTML etiketleri (<code><\/p>\n<h2><\/code>, <code><\/p>\n<h3><\/code>, <code><\/p>\n<p><\/code>, <code><\/p>\n<ul><\/code>, <code><\/p>\n<ol><\/code>, <code><\/p>\n<pre><code><\/code>, <code><table><\/code> gibi), i\u00e7eri\u011fin yap\u0131s\u0131n\u0131 a\u00e7\u0131k\u00e7a belirtir ve taray\u0131c\u0131lar taraf\u0131ndan kolayca yorumlanabilir. Semantik HTML kullan\u0131m\u0131, i\u00e7eri\u011fin anlam\u0131n\u0131 ve amac\u0131n\u0131 vurgular, bu da arama motorlar\u0131n\u0131n i\u00e7eri\u011fi daha iyi anlamas\u0131na ve eri\u015filebilirlik ara\u00e7lar\u0131n\u0131n (ekran okuyucular\u0131 gibi) kullan\u0131c\u0131lar i\u00e7in daha iyi bir deneyim sunmas\u0131na yard\u0131mc\u0131 olur. Ayr\u0131ca, bu etiketlerin varsay\u0131lan taray\u0131c\u0131 stilleri genellikle mobil cihazlarda da iyi g\u00f6r\u00fcn\u00fcr. \u00d6rne\u011fin, paragraflar kendili\u011finden ak\u0131c\u0131d\u0131r ve ekran geni\u015fli\u011fine g\u00f6re metni sarar; listeler ve ba\u015fl\u0131klar da benzer \u015fekilde duyarl\u0131d\u0131r.<\/p>\n    <p>Mobil uyumlulu\u011fun bir di\u011fer kritik bile\u015feni ise CSS (Cascading Style Sheets) kullan\u0131m\u0131d\u0131r. CSS, i\u00e7eri\u011fin g\u00f6rsel sunumunu kontrol eder. Mobil uyumlu bir tasar\u0131m elde etmek i\u00e7in genellikle \"duyarl\u0131 tasar\u0131m\" (responsive design) yakla\u015f\u0131mlar\u0131 kullan\u0131l\u0131r. Bu yakla\u015f\u0131m, farkl\u0131 ekran boyutlar\u0131na ve \u00e7\u00f6z\u00fcn\u00fcrl\u00fcklerine dinamik olarak uyum sa\u011flayan tasar\u0131mlar olu\u015fturmay\u0131 hedefler. Duyarl\u0131 tasar\u0131m\u0131n temelinde ise <strong>media query'ler<\/strong> yatar.<\/p>\n    <p>Media query'ler, belirli ko\u015fullar (\u00f6rne\u011fin ekran geni\u015fli\u011fi, cihaz y\u00f6n\u00fc) kar\u015f\u0131land\u0131\u011f\u0131nda farkl\u0131 CSS kurallar\u0131n\u0131n uygulanmas\u0131n\u0131 sa\u011flar. Bu sayede, ayn\u0131 HTML yap\u0131s\u0131 farkl\u0131 cihazlarda farkl\u0131 \u015fekillerde g\u00f6r\u00fcnt\u00fclenebilir. \u00d6rne\u011fin, k\u00fc\u00e7\u00fck ekranlarda men\u00fclerin dikey olarak s\u0131ralanmas\u0131 veya s\u00fctunlar\u0131n alt alta gelmesi sa\u011flanabilir. \u0130\u015fte bir media query \u00f6rne\u011fi:<\/p>\n    <pre><code class=\"language-css\">\n\/* Genel stil tan\u0131mlamalar\u0131 *\/\nbody {\n    font-family: Arial, sans-serif;\n    line-height: 1.6;\n    margin: 0 auto;\n    padding: 20px;\n    max-width: 1200px;\n}\n\nh2 {\n    color: #333;\n    font-size: 2em;\n}\n\n\/* 768px geni\u015fli\u011finden k\u00fc\u00e7\u00fck ekranlar i\u00e7in stiller *\/\n@media screen and (max-width: 768px) {\n    body {\n        padding: 10px;\n    }\n    h2 {\n        font-size: 1.5em;\n    }\n    \/* Tablolar\u0131n k\u00fc\u00e7\u00fck ekranlarda yatay kayd\u0131r\u0131labilir olmas\u0131n\u0131 sa\u011flama *\/\n    table {\n        display: block;\n        overflow-x: auto;\n        white-space: nowrap; \/* \u0130\u00e7eri\u011fin sat\u0131r atlamas\u0131n\u0131 engeller *\/\n    }\n    th, td {\n        min-width: 120px; \/* Her h\u00fccre i\u00e7in minimum geni\u015flik *\/\n    }\n}\n\n\/* 480px geni\u015fli\u011finden k\u00fc\u00e7\u00fck ekranlar i\u00e7in daha k\u00fc\u00e7\u00fck fontlar *\/\n@media screen and (max-width: 480px) {\n    h2 {\n        font-size: 1.2em;\n    }\n    p, li {\n        font-size: 0.9em;\n    }\n}\n    <\/code><\/pre>\n<p>Yukar\u0131daki CSS \u00f6rne\u011fi, <code>@media screen and (max-width: 768px)<\/code> ve <code>@media screen and (max-width: 480px)<\/code> kurallar\u0131 ile farkl\u0131 ekran geni\u015fliklerinde yaz\u0131 tiplerini, dolgular\u0131 ve \u00f6zellikle tablolar\u0131 nas\u0131l farkl\u0131la\u015ft\u0131rabilece\u011fimizi g\u00f6stermektedir. Tablolar\u0131n k\u00fc\u00e7\u00fck ekranlarda yatay olarak kayd\u0131r\u0131labilir hale getirilmesi, i\u00e7eri\u011fin s\u0131k\u0131\u015fmas\u0131n\u0131 \u00f6nleyerek okunabilirli\u011fi art\u0131r\u0131r. Bu makalede HTML elementlerine do\u011frudan stil verilmemesi (inline style), CSS'in bu t\u00fcr dinamik d\u00fczenlemeleri merkezi bir yerden y\u00f6netmesini kolayla\u015ft\u0131r\u0131r ve hem a\u00e7\u0131k (light mode) hem de koyu (dark mode) temalarda sorunsuz bir g\u00f6r\u00fcn\u00fcm sa\u011flar. Metin rengi, arka plan rengi ve kenarl\u0131k rengi gibi \u00f6zellikler, taray\u0131c\u0131n\u0131n veya kullan\u0131c\u0131n\u0131n tercih etti\u011fi temadan miras al\u0131narak (inherit) tutarl\u0131 bir g\u00f6rsel deneyim sunar.<\/p>\n<h2>Sonu\u00e7 ve S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h2>\n<p>Bu kapsaml\u0131 rehberde, MariaDB'yi Ubuntu sunucunuza nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, veritaban\u0131n\u0131z\u0131 nas\u0131l g\u00fcvence alt\u0131na alaca\u011f\u0131n\u0131z\u0131 ve performans\u0131n\u0131 nas\u0131l optimize edece\u011finizi ad\u0131m ad\u0131m inceledik. MariaDB, g\u00fc\u00e7l\u00fc, esnek ve a\u00e7\u0131k kaynakl\u0131 bir veritaban\u0131 \u00e7\u00f6z\u00fcm\u00fc olarak modern uygulamalar i\u00e7in m\u00fckemmel bir se\u00e7imdir. Ancak, kurulum tek ba\u015f\u0131na yeterli de\u011fildir; s\u00fcrekli g\u00fcvenlik denetimleri, d\u00fczenli yedeklemeler ve performans izleme, veritaban\u0131n\u0131z\u0131n uzun \u00f6m\u00fcrl\u00fc ve sorunsuz \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flamak i\u00e7in hayati \u00f6neme sahiptir. Unutmay\u0131n ki g\u00fcvenlik, tek seferlik bir i\u015flem de\u011fil, s\u00fcrekli bir s\u00fcre\u00e7tir. Bu rehberdeki ad\u0131mlar\u0131 uygulayarak, MariaDB veritabanlar\u0131n\u0131z i\u00e7in sa\u011flam ve g\u00fcvenli bir temel olu\u015fturmu\u015f olacaks\u0131n\u0131z. G\u00fcvenli bir veritaban\u0131 altyap\u0131s\u0131, uygulaman\u0131z\u0131n ba\u015far\u0131s\u0131 ve kullan\u0131c\u0131lar\u0131n\u0131z\u0131n verilerinin korunmas\u0131 i\u00e7in kritik bir yat\u0131r\u0131md\u0131r.<\/p>\n<h3>S\u0131k\u00e7a Sorulan Sorular (SSS)<\/h3>\n<dl>\n<dt>MariaDB ve MySQL aras\u0131ndaki temel fark nedir?<\/dt>\n<dd>MariaDB, MySQL'in a\u00e7\u0131k kaynakl\u0131 bir \u00e7atal\u0131d\u0131r (fork). Temel olarak ayn\u0131 kod taban\u0131n\u0131 payla\u015fsalar da, MariaDB genellikle daha fazla yeni \u00f6zellik, performans iyile\u015ftirmesi ve depolama motoru (\u00f6rne\u011fin ColumnStore) sunar. Ayr\u0131ca, tamamen a\u00e7\u0131k kaynakl\u0131 kalma taahh\u00fcd\u00fcyle bilinir.<\/dd>\n<dt>MariaDB root \u015fifremi unuttum, nas\u0131l s\u0131f\u0131rlayabilirim?<\/dt>\n<dd>MariaDB servisini durdurup, g\u00fcvenli modda (\u015fifresiz) ba\u015flatarak root \u015fifresini s\u0131f\u0131rlayabilirsiniz. \u0130lk olarak, <code>sudo systemctl stop mariadb<\/code> komutuyla servisi durdurun. Ard\u0131ndan, <code>sudo mysqld_safe --skip-grant-tables &<\/code> komutuyla g\u00fcvenli modda ba\u015flat\u0131n. Daha sonra <code>mysql -u root<\/code> ile ba\u011flan\u0131p <code>ALTER USER 'root'@'localhost' IDENTIFIED BY 'YeniGucluSifre!';<\/code> komutunu \u00e7al\u0131\u015ft\u0131rarak \u015fifreyi s\u0131f\u0131rlayabilirsiniz. \u0130\u015flem bitince MariaDB servisini normal \u015fekilde yeniden ba\u015flatmay\u0131 unutmay\u0131n.<\/dd>\n<dt>MariaDB performans\u0131n\u0131 etkileyen en \u00f6nemli fakt\u00f6rler nelerdir?<\/dt>\n<dd>MariaDB performans\u0131n\u0131 etkileyen en \u00f6nemli fakt\u00f6rler aras\u0131nda sunucu donan\u0131m\u0131 (RAM, CPU, SSD kullan\u0131m\u0131), veritaban\u0131 yap\u0131land\u0131rma ayarlar\u0131 (\u00f6zellikle <code>innodb_buffer_pool_size<\/code>), veritaban\u0131 \u015femas\u0131 tasar\u0131m\u0131 (normalizasyon, indeksleme), sorgu optimizasyonu ve uygulama taraf\u0131ndaki veritaban\u0131 ba\u011flant\u0131 y\u00f6netimi yer al\u0131r.<\/dd>\n<dt>MariaDB i\u00e7in uzaktan eri\u015fimi nas\u0131l g\u00fcvenli hale getirebilirim?<\/dt>\n<dd>Uzaktan eri\u015fimi g\u00fcvenli hale getirmek i\u00e7in \u00f6ncelikle g\u00fc\u00e7l\u00fc \u015fifreler kullan\u0131n ve her kullan\u0131c\u0131ya sadece ihtiya\u00e7 duydu\u011fu yetkileri verin. <code>bind-address<\/code> ayar\u0131n\u0131 belirli IP adresleriyle s\u0131n\u0131rlay\u0131n ve g\u00fcvenlik duvar\u0131n\u0131zda sadece bu IP'lerden gelen 3306 portu ba\u011flant\u0131lar\u0131na izin verin. En \u00f6nemlisi, t\u00fcm uzaktan ba\u011flant\u0131lar i\u00e7in TLS\/SSL \u015fifrelemesi kullan\u0131n.<\/dd>\n<dt>MariaDB yedeklemeleri ne s\u0131kl\u0131kla yap\u0131lmal\u0131?<\/dt>\n<dd>Yedekleme s\u0131kl\u0131\u011f\u0131, veri kayb\u0131na ne kadar tolerans g\u00f6sterebilece\u011finize (RPO - Recovery Point Objective) ba\u011fl\u0131d\u0131r. Hassas ve s\u0131k g\u00fcncellenen veriler i\u00e7in g\u00fcnl\u00fck veya hatta saatlik yedeklemeler \u00f6nerilir. Daha az kritik veriler i\u00e7in haftal\u0131k yedeklemeler yeterli olabilir. \u00d6nemli olan, yedekleme plan\u0131n\u0131z\u0131n i\u015f s\u00fcreklili\u011fi gereksinimlerinizi kar\u015f\u0131lad\u0131\u011f\u0131ndan emin olmakt\u0131r.<\/dd>\n<\/dl>\n<p><\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Ubuntu&#8217;da MariaDB Kurulumu ve G\u00fcvenli\u011fi: Kapsaml\u0131 Rehber Modern uygulamalar\u0131n bel kemi\u011fi olan veritabanlar\u0131, do\u011fru kurulmad\u0131\u011f\u0131nda ve g\u00fcvence alt\u0131na&hellip;","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"csco_page_header_type":"","csco_page_load_nextpost":"","csco_page_subscribe_form":"","csco_page_contact_form":"","footnotes":""},"categories":[1],"tags":[],"class_list":{"0":"post-40505","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-genel","7":"cs-entry","8":"cs-video-wrap"},"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v20.5 (Yoast SEO v25.3.1) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>MariaDB Neden Tercih Edilmeli? Temel Veritaban\u0131 Kavramlar\u0131na Giri\u015f<\/title>\n<meta name=\"description\" content=\"Modern uygulamalar\u0131n bel kemi\u011fi olan veritabanlar\u0131, do\u011fru kurulmad\u0131\u011f\u0131nda ve g\u00fcvence alt\u0131na al\u0131nmad\u0131\u011f\u0131nda ciddi riskler ta\u015f\u0131yabilir.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fatihsoysal.com\/blog\/mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MariaDB Neden Tercih Edilmeli? Temel Veritaban\u0131 Kavramlar\u0131na Giri\u015f\" \/>\n<meta property=\"og:description\" content=\"Modern uygulamalar\u0131n bel kemi\u011fi olan veritabanlar\u0131, do\u011fru kurulmad\u0131\u011f\u0131nda ve g\u00fcvence alt\u0131na al\u0131nmad\u0131\u011f\u0131nda ciddi riskler ta\u015f\u0131yabilir.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-02-27T09:22:08+00:00\" \/>\n<meta name=\"author\" content=\"Fatih Soysal\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:label1\" content=\"Yazan:\" \/>\n\t<meta name=\"twitter:data1\" content=\"Fatih Soysal\" \/>\n\t<meta name=\"twitter:label2\" content=\"Tahmini okuma s\u00fcresi\" \/>\n\t<meta name=\"twitter:data2\" content=\"28 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"MariaDB Neden Tercih Edilmeli? Temel Veritaban\u0131 Kavramlar\u0131na Giri\u015f\",\"datePublished\":\"2026-02-27T09:22:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris\/\"},\"wordCount\":5049,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris\/\",\"name\":\"MariaDB Neden Tercih Edilmeli? Temel Veritaban\u0131 Kavramlar\u0131na Giri\u015f\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-02-27T09:22:08+00:00\",\"description\":\"Modern uygulamalar\u0131n bel kemi\u011fi olan veritabanlar\u0131, do\u011fru kurulmad\u0131\u011f\u0131nda ve g\u00fcvence alt\u0131na al\u0131nmad\u0131\u011f\u0131nda ciddi riskler ta\u015f\u0131yabilir.\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MariaDB Neden Tercih Edilmeli? Temel Veritaban\u0131 Kavramlar\u0131na Giri\u015f\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/\",\"name\":\"Fatihsoysal.com\",\"description\":\"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim\",\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"tr\"},{\"@type\":[\"Person\",\"Organization\"],\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\",\"name\":\"Fatih Soysal\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"tr\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"contentUrl\":\"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png\",\"width\":512,\"height\":512,\"caption\":\"Fatih Soysal\"},\"logo\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/\"},\"description\":\"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"MariaDB Neden Tercih Edilmeli? Temel Veritaban\u0131 Kavramlar\u0131na Giri\u015f","description":"Modern uygulamalar\u0131n bel kemi\u011fi olan veritabanlar\u0131, do\u011fru kurulmad\u0131\u011f\u0131nda ve g\u00fcvence alt\u0131na al\u0131nmad\u0131\u011f\u0131nda ciddi riskler ta\u015f\u0131yabilir.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fatihsoysal.com\/blog\/mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris\/","og_locale":"tr_TR","og_type":"article","og_title":"MariaDB Neden Tercih Edilmeli? Temel Veritaban\u0131 Kavramlar\u0131na Giri\u015f","og_description":"Modern uygulamalar\u0131n bel kemi\u011fi olan veritabanlar\u0131, do\u011fru kurulmad\u0131\u011f\u0131nda ve g\u00fcvence alt\u0131na al\u0131nmad\u0131\u011f\u0131nda ciddi riskler ta\u015f\u0131yabilir.","og_url":"https:\/\/fatihsoysal.com\/blog\/mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-02-27T09:22:08+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"28 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"MariaDB Neden Tercih Edilmeli? Temel Veritaban\u0131 Kavramlar\u0131na Giri\u015f","datePublished":"2026-02-27T09:22:08+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris\/"},"wordCount":5049,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris\/","url":"https:\/\/fatihsoysal.com\/blog\/mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris\/","name":"MariaDB Neden Tercih Edilmeli? Temel Veritaban\u0131 Kavramlar\u0131na Giri\u015f","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-02-27T09:22:08+00:00","description":"Modern uygulamalar\u0131n bel kemi\u011fi olan veritabanlar\u0131, do\u011fru kurulmad\u0131\u011f\u0131nda ve g\u00fcvence alt\u0131na al\u0131nmad\u0131\u011f\u0131nda ciddi riskler ta\u015f\u0131yabilir.","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/mariadb-neden-tercih-edilmeli-temel-veritabani-kavramlarina-giris\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"MariaDB Neden Tercih Edilmeli? Temel Veritaban\u0131 Kavramlar\u0131na Giri\u015f"}]},{"@type":"WebSite","@id":"https:\/\/fatihsoysal.com\/blog\/#website","url":"https:\/\/fatihsoysal.com\/blog\/","name":"Fatihsoysal.com","description":"Blog - Yaz\u0131l\u0131m D\u00fcnyas\u0131 Tecr\u00fcbelerim","publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fatihsoysal.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"tr"},{"@type":["Person","Organization"],"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1","name":"Fatih Soysal","image":{"@type":"ImageObject","inLanguage":"tr","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","contentUrl":"https:\/\/fatihsoysal.com\/blog\/wp-content\/uploads\/2024\/04\/cropped-replicate-prediction-3kgg1hgjn5rgp0cf0p5tr0jw7w-1.png","width":512,"height":512,"caption":"Fatih Soysal"},"logo":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/image\/"},"description":"Kullan\u0131m ve kodlama m\u00fckemmeliyetini odak alan uygulamalar olu\u015fturma deneyimine sahip, profesyonel olarak 15+ y\u0131l \u00fczeri deneyime sahip bir yaz\u0131l\u0131m m\u00fchendisi.","url":"https:\/\/fatihsoysal.com\/blog\/author\/fatihsoysal\/"}]}},"yoast_meta":{"yoast_wpseo_title":"","yoast_wpseo_metadesc":"","yoast_wpseo_canonical":""},"amp_enabled":true,"_links":{"self":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/40505","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/comments?post=40505"}],"version-history":[{"count":0,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/40505\/revisions"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=40505"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=40505"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=40505"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}