{"id":37759,"date":"2026-01-14T17:40:49","date_gmt":"2026-01-14T14:40:49","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=37759"},"modified":"2026-01-14T17:40:49","modified_gmt":"2026-01-14T14:40:49","slug":"ubuntu-18-04-uzerinde-cok-dugumlu-mysql-kumesi-olusturma-rehberi","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerinde-cok-dugumlu-mysql-kumesi-olusturma-rehberi\/","title":{"rendered":"Ubuntu 18.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc MySQL K\u00fcmesi Olu\u015fturma Rehberi"},"content":{"rendered":"<p><body><\/p>\n<h2>Ubuntu 18.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc MySQL K\u00fcmesi Olu\u015fturma Rehberi<\/h2>\n<p>Bu makale, y\u00fcksek eri\u015filebilirlik ve \u00f6l\u00e7eklenebilirlik gerektiren uygulamalar i\u00e7in Ubuntu 18.04 i\u015fletim sistemi \u00fczerinde \u00e7ok d\u00fc\u011f\u00fcml\u00fc bir MySQL K\u00fcmesi (MySQL NDB Cluster) nas\u0131l olu\u015fturulaca\u011f\u0131n\u0131 ad\u0131m ad\u0131m a\u00e7\u0131klamaktad\u0131r. MySQL K\u00fcmesi, standart MySQL sunucusundan farkl\u0131 olarak, da\u011f\u0131t\u0131lm\u0131\u015f ve payla\u015f\u0131ms\u0131z (shared-nothing) bir mimari kullanarak veri tutarl\u0131l\u0131\u011f\u0131 ve y\u00fcksek performans sunar. \u00d6zellikle telekom\u00fcnikasyon, finans ve e-ticaret gibi kesintisiz hizmetin kritik oldu\u011fu sekt\u00f6rlerde tercih edilen bir \u00e7\u00f6z\u00fcmd\u00fcr.<\/p>\n<h3>Giri\u015f: MySQL K\u00fcmesi Nedir ve Neden Kullan\u0131l\u0131r?<\/h3>\n<p>MySQL K\u00fcmesi, Oracle taraf\u0131ndan geli\u015ftirilen, ger\u00e7ek zamanl\u0131, da\u011f\u0131t\u0131lm\u0131\u015f ve y\u00fcksek eri\u015filebilir bir veritaban\u0131 \u00e7\u00f6z\u00fcm\u00fcd\u00fcr. Standart MySQL sunucusunun aksine, verileri disk yerine bellek tabanl\u0131 NDB depolama motorunu kullanarak saklar ve birden fazla sunucu aras\u0131nda otomatik veri replikasyonu ve par\u00e7alama (sharding) sa\u011flar. Bu mimari, sistemin bir b\u00f6l\u00fcm\u00fc ar\u0131zalansa bile veritaban\u0131n\u0131n \u00e7al\u0131\u015fmaya devam etmesini garanti eden &#8220;shared-nothing&#8221; (payla\u015f\u0131ms\u0131z) prensibine dayan\u0131r. Her d\u00fc\u011f\u00fcm kendi verisine ve kaynaklar\u0131na sahiptir, bu da tek bir hata noktas\u0131n\u0131 (single point of failure) ortadan kald\u0131r\u0131r.<\/p>\n<p>MySQL K\u00fcmesi kullanman\u0131n temel nedenleri \u015funlard\u0131r:<\/p>\n<p>*   <strong>Y\u00fcksek Eri\u015filebilirlik (High Availability):<\/strong> Otomatik hata tespiti ve failover mekanizmalar\u0131 sayesinde, bir d\u00fc\u011f\u00fcm\u00fcn \u00e7\u00f6kmesi durumunda bile hizmet kesintisiz olarak devam eder. Veri d\u00fc\u011f\u00fcmleri aras\u0131nda senkron replikasyon, her zaman g\u00fcncel verilere eri\u015fim sa\u011flar.<br \/>\n*   <strong>Y\u00fcksek \u00d6l\u00e7eklenebilirlik (High Scalability):<\/strong> Veri d\u00fc\u011f\u00fcmleri ekleyerek yatayda \u00f6l\u00e7eklenebilirlik sunar. Veriler otomatik olarak par\u00e7alan\u0131r ve birden fazla veri d\u00fc\u011f\u00fcm\u00fcne da\u011f\u0131t\u0131l\u0131r, bu da b\u00fcy\u00fck veri k\u00fcmeleri ve y\u00fcksek i\u015flem y\u00fckleri i\u00e7in idealdir.<br \/>\n*   <strong>Ger\u00e7ek Zamanl\u0131 Performans:<\/strong> Bellek i\u00e7i depolama motoru (NDB) sayesinde d\u00fc\u015f\u00fck gecikme s\u00fcresi ve y\u00fcksek verim sa\u011flar. \u00d6zellikle yo\u011fun okuma\/yazma i\u015flemlerinin oldu\u011fu uygulamalar i\u00e7in uygundur.<br \/>\n*   <strong>Esneklik:<\/strong> \u00c7e\u015fitli uygulamalar\u0131n ihtiya\u00e7lar\u0131na g\u00f6re farkl\u0131 d\u00fc\u011f\u00fcm tiplerini bir araya getirme esnekli\u011fi sunar.<\/p>\n<p>Bu makalede, en az be\u015f ayr\u0131 Ubuntu 18.04 sunucusunu kullanarak bir MySQL K\u00fcmesi kurulumunu detayland\u0131raca\u011f\u0131z: iki y\u00f6netim d\u00fc\u011f\u00fcm\u00fc (iste\u011fe ba\u011fl\u0131, y\u00fcksek eri\u015filebilirlik i\u00e7in \u00f6nerilir), iki veri d\u00fc\u011f\u00fcm\u00fc ve bir veya daha fazla SQL d\u00fc\u011f\u00fcm\u00fc.<\/p>\n<h3>MySQL K\u00fcmesi Mimarisi ve Bile\u015fenleri<\/h3>\n<p>MySQL K\u00fcmesi, farkl\u0131 roller \u00fcstlenen birden fazla d\u00fc\u011f\u00fcm tipinden olu\u015fur. Bu d\u00fc\u011f\u00fcmler, birbirleriyle a\u011f \u00fczerinden ileti\u015fim kurarak k\u00fcmenin genel i\u015flevselli\u011fini sa\u011flar. Temel d\u00fc\u011f\u00fcm tipleri \u015funlard\u0131r:<\/p>\n<p>*   <strong>Y\u00f6netim D\u00fc\u011f\u00fcmleri (Management Nodes &#8211; MGM):<\/strong> K\u00fcmenin yap\u0131land\u0131rma dosyalar\u0131n\u0131, meta verilerini ve k\u00fcme durumu hakk\u0131nda bilgileri saklar. Di\u011fer d\u00fc\u011f\u00fcmlerin k\u00fcme hakk\u0131nda bilgi edinmek ve birbirlerini bulmak i\u00e7in ba\u015fvurduklar\u0131 ilk noktad\u0131r. Genellikle iki y\u00f6netim d\u00fc\u011f\u00fcm\u00fc kullan\u0131l\u0131r (birincil ve ikincil) y\u00fcksek eri\u015filebilirlik sa\u011flamak amac\u0131yla. MGM d\u00fc\u011f\u00fcmleri, veri depolamaz ve i\u015flem y\u00fck\u00fc d\u00fc\u015f\u00fckt\u00fcr.<br \/>\n    *   \u00d6rnek IP: <code>192.168.1.101<\/code> (MGM1), <code>192.168.1.102<\/code> (MGM2)<br \/>\n*   <strong>Veri D\u00fc\u011f\u00fcmleri (Data Nodes &#8211; NDBD):<\/strong> K\u00fcmedeki verilerin depoland\u0131\u011f\u0131 yerdir. NDB depolama motorunu kullan\u0131r ve verileri bellekte tutar. Her veri d\u00fc\u011f\u00fcm\u00fc, verinin bir kopyas\u0131n\u0131 veya bir par\u00e7as\u0131n\u0131 bar\u0131nd\u0131r\u0131r ve di\u011fer veri d\u00fc\u011f\u00fcmleriyle senkronize olarak \u00e7al\u0131\u015f\u0131r. Y\u00fcksek eri\u015filebilirlik i\u00e7in en az iki veri d\u00fc\u011f\u00fcm\u00fc gereklidir.<br \/>\n    *   \u00d6rnek IP: <code>192.168.1.103<\/code> (NDBD1), <code>192.168.1.104<\/code> (NDBD2)<br \/>\n*   <strong>SQL D\u00fc\u011f\u00fcmleri (SQL Nodes &#8211; MySQLD):<\/strong> Standart MySQL sunucular\u0131d\u0131r ancak NDB depolama motorunu kullanmak \u00fczere yap\u0131land\u0131r\u0131lm\u0131\u015flard\u0131r. Uygulamalar, SQL d\u00fc\u011f\u00fcmleri arac\u0131l\u0131\u011f\u0131yla k\u00fcmeye ba\u011flan\u0131r ve SQL sorgular\u0131 g\u00f6nderir. SQL d\u00fc\u011f\u00fcmleri, verileri do\u011frudan depolamaz; bunun yerine, veri d\u00fc\u011f\u00fcmleriyle ileti\u015fim kurarak veri okuma ve yazma i\u015flemlerini ger\u00e7ekle\u015ftirir.<br \/>\n    *   \u00d6rnek IP: <code>192.168.1.105<\/code> (MySQLD1), <code>192.168.1.106<\/code> (MySQLD2)<br \/>\n*   <strong>API D\u00fc\u011f\u00fcmleri (API Nodes &#8211; iste\u011fe ba\u011fl\u0131):<\/strong> Java, C++ veya di\u011fer programlama dilleriyle do\u011frudan NDB API&#8217;sini kullanarak k\u00fcmedeki verilere eri\u015fmek isteyen uygulamalar i\u00e7in kullan\u0131l\u0131r. Genellikle SQL d\u00fc\u011f\u00fcmleri \u00e7o\u011fu kullan\u0131m durumu i\u00e7in yeterlidir.<\/p>\n<p>Bu rehberde, bir y\u00f6netim d\u00fc\u011f\u00fcm\u00fc, iki veri d\u00fc\u011f\u00fcm\u00fc ve iki SQL d\u00fc\u011f\u00fcm\u00fc i\u00e7eren basit bir kurulum \u00fczerine odaklanaca\u011f\u0131z. Y\u00fcksek eri\u015filebilirlik i\u00e7in birden fazla y\u00f6netim d\u00fc\u011f\u00fcm\u00fc ve SQL d\u00fc\u011f\u00fcm\u00fc eklemek m\u00fcmk\u00fcnd\u00fcr.<\/p>\n<h3>\u00d6n Ko\u015fullar<\/h3>\n<p>Kuruluma ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki \u00f6n ko\u015fullar\u0131n yerine getirildi\u011finden emin olun:<\/p>\n<p>1.  <strong>\u0130\u015fletim Sistemi:<\/strong> Her d\u00fc\u011f\u00fcm i\u00e7in ayr\u0131 bir Ubuntu 18.04 LTS sunucusu (veya sanal makine).<br \/>\n2.  <strong>A\u011f Yap\u0131land\u0131rmas\u0131:<\/strong> T\u00fcm d\u00fc\u011f\u00fcmler aras\u0131nda a\u011f ba\u011flant\u0131s\u0131 oldu\u011fundan ve birbirlerine IP adresleri veya ana bilgisayar adlar\u0131 (hostname) \u00fczerinden eri\u015febildi\u011finden emin olun. <code>\/etc\/hosts<\/code> dosyas\u0131n\u0131 d\u00fczenleyerek veya bir DNS sunucusu kullanarak ana bilgisayar adlar\u0131n\u0131 \u00e7\u00f6z\u00fcmlemeyi sa\u011flayabilirsiniz. \u00d6rnek IP adresleri a\u015fa\u011f\u0131daki gibidir:<br \/>\n    *   MGM D\u00fc\u011f\u00fcm\u00fc: <code>192.168.1.101<\/code><br \/>\n    *   Veri D\u00fc\u011f\u00fcm\u00fc 1: <code>192.168.1.102<\/code><br \/>\n    *   Veri D\u00fc\u011f\u00fcm\u00fc 2: <code>192.168.1.103<\/code><br \/>\n    *   SQL D\u00fc\u011f\u00fcm\u00fc 1: <code>192.168.1.104<\/code><br \/>\n    *   SQL D\u00fc\u011f\u00fcm\u00fc 2: <code>192.168.1.105<\/code><br \/>\n3.  <strong>Kullan\u0131c\u0131 Yetkileri:<\/strong> T\u00fcm kurulum ad\u0131mlar\u0131 i\u00e7in <code>sudo<\/code> yetkilerine sahip bir kullan\u0131c\u0131 veya <code>root<\/code> kullan\u0131c\u0131s\u0131.<br \/>\n4.  <strong>G\u00fcvenlik Duvar\u0131 (Firewall):<\/strong> Gerekli portlar\u0131n (varsay\u0131lan olarak 1186 MGM i\u00e7in, 3306 SQL d\u00fc\u011f\u00fcmleri i\u00e7in) t\u00fcm d\u00fc\u011f\u00fcmler aras\u0131nda a\u00e7\u0131k oldu\u011fundan emin olun. UFW kullan\u0131yorsan\u0131z:<\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 1186\/tcp\n    sudo ufw allow 3306\/tcp\n    sudo ufw reload<\/code><\/pre>\n<p>5.  <strong>Kaynaklar:<\/strong> Her d\u00fc\u011f\u00fcm i\u00e7in yeterli CPU, RAM ve disk alan\u0131. \u00d6zellikle veri d\u00fc\u011f\u00fcmleri i\u00e7in, veritaban\u0131 boyutuna ba\u011fl\u0131 olarak yeterli RAM ve h\u0131zl\u0131 depolama \u00f6nemlidir.<\/p>\n<h3>1. Ortak Sistem Haz\u0131rl\u0131\u011f\u0131 ve MySQL K\u00fcme Yaz\u0131l\u0131m\u0131n\u0131n Kurulumu<\/h3>\n<p>Her d\u00fc\u011f\u00fcmde (MGM, NDBD, MySQLD) a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 uygulay\u0131n.<\/p>\n<h4>1.1. Sistem G\u00fcncelleme ve Gerekli Paketleri Kurma<\/h4>\n<p>Her sunucuda sistemi g\u00fcncelleyin:<\/p>\n<pre><code class=\"language-bash\">sudo apt update\nsudo apt upgrade -y<\/code><\/pre>\n<p>Gerekli yard\u0131mc\u0131 programlar\u0131 ve derleme ara\u00e7lar\u0131n\u0131 kurun (MySQL Cluster genellikle ikili paket olarak gelir, ancak baz\u0131 yard\u0131mc\u0131 ara\u00e7lar i\u00e7in gerekebilir):<\/p>\n<pre><code class=\"language-bash\">sudo apt install -y libaio1 libnuma1 net-tools wget<\/code><\/pre>\n<h4>1.2. MySQL K\u00fcme Yaz\u0131l\u0131m\u0131n\u0131 \u0130ndirme<\/h4>\n<p>MySQL K\u00fcmesi, standart MySQL Server paketlerinden ayr\u0131 olarak da\u011f\u0131t\u0131l\u0131r. Oracle&#8217;\u0131n resmi web sitesinden veya yans\u0131 sitelerinden uygun s\u00fcr\u00fcm\u00fc indirmelisiniz. Ubuntu 18.04 i\u00e7in genellikle <code>mysql-cluster-gpl-8.0.x-linux-glibc2.12-x86_64.tar.gz<\/code> gibi bir paket aramal\u0131s\u0131n\u0131z. Bu rehberde, \u00f6rnek olarak MySQL Cluster 8.0.x s\u00fcr\u00fcm\u00fcn\u00fc kullanaca\u011f\u0131z.<\/p>\n<p>\u00d6nce <code>\/opt<\/code> dizinine gidin ve indirme i\u015flemini yap\u0131n:<\/p>\n<pre><code class=\"language-bash\">cd \/opt\nsudo wget https:\/\/downloads.mysql.com\/archives\/cluster\/mysql-cluster-gpl-8.0.XX-linux-glibc2.12-x86_64.tar.gz\n<h2>XX yerine g\u00fcncel s\u00fcr\u00fcm numaras\u0131n\u0131 yaz\u0131n, \u00f6rne\u011fin 32<\/code><\/pre>\n<\/h2>\n<p>\u0130ndirdi\u011finiz dosyay\u0131 \u00e7\u0131kar\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo tar -xvzf mysql-cluster-gpl-8.0.XX-linux-glibc2.12-x86_64.tar.gz<\/code><\/pre>\n<p>\u00c7\u0131kar\u0131lan dizinin ad\u0131n\u0131 daha basit bir \u015feye yeniden adland\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo mv mysql-cluster-gpl-8.0.XX-linux-glibc2.12-x86_64 mysqlcluster<\/code><\/pre>\n<p>\u015eimdi <code>\/opt\/mysqlcluster<\/code> dizini alt\u0131nda MySQL K\u00fcme bile\u015fenleri bulunmaktad\u0131r.<\/p>\n<h4>1.3. MySQL Kullan\u0131c\u0131s\u0131 Olu\u015fturma ve \u0130zinleri Ayarlama<\/h4>\n<p>MySQL K\u00fcme i\u015flemlerini \u00e7al\u0131\u015ft\u0131rmak i\u00e7in ayr\u0131 bir sistem kullan\u0131c\u0131s\u0131 olu\u015fturmak iyi bir uygulamad\u0131r:<\/p>\n<pre><code class=\"language-bash\">sudo groupadd mysql\nsudo useradd -r -g mysql -s \/bin\/false mysql<\/code><\/pre>\n<p>MySQL K\u00fcme dizinine uygun izinleri verin:<\/p>\n<pre><code class=\"language-bash\">sudo chown -R mysql:mysql \/opt\/mysqlcluster<\/code><\/pre>\n<h3>2. Y\u00f6netim D\u00fc\u011f\u00fcm\u00fc (MGM) Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>MGM d\u00fc\u011f\u00fcm\u00fcn\u00fc (\u00f6rne\u011fin <code>192.168.1.101<\/code>) yap\u0131land\u0131raca\u011f\u0131z.<\/p>\n<h4>2.1. MGM \u0130\u00e7in Veri Dizinini Olu\u015fturma<\/h4>\n<p>Y\u00f6netim d\u00fc\u011f\u00fcm\u00fcn\u00fcn meta verileri ve loglar\u0131 i\u00e7in bir dizin olu\u015fturun:<\/p>\n<pre><code class=\"language-bash\">sudo mkdir -p \/var\/lib\/mysql-cluster\nsudo chown -R mysql:mysql \/var\/lib\/mysql-cluster<\/code><\/pre>\n<h4>2.2. <code>config.ini<\/code> Yap\u0131land\u0131rma Dosyas\u0131n\u0131 Olu\u015fturma<\/h4>\n<p>Bu dosya, k\u00fcmenin t\u00fcm d\u00fc\u011f\u00fcmleri i\u00e7in merkezi yap\u0131land\u0131rmay\u0131 i\u00e7erir. <code>\/var\/lib\/mysql-cluster\/config.ini<\/code> yolunda olu\u015fturun:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/var\/lib\/mysql-cluster\/config.ini<\/code><\/pre>\n<p>A\u015fa\u011f\u0131daki i\u00e7eri\u011fi ekleyin. IP adreslerini kendi yap\u0131land\u0131rman\u0131za g\u00f6re g\u00fcncellemeyi unutmay\u0131n.<\/p>\n<pre><code class=\"language-ini\">[ndbd default]\nNoOfReplicas=2                # Her tablonun 2 kopyas\u0131 olacak (2 veri d\u00fc\u011f\u00fcm\u00fc i\u00e7in)\nDataDir=\/var\/lib\/mysql-cluster  # Veri d\u00fc\u011f\u00fcmleri i\u00e7in varsay\u0131lan veri dizini\n<h2>DataMemory=80M              # Her veri d\u00fc\u011f\u00fcm\u00fcnde veriler i\u00e7in ayr\u0131lan bellek (\u00f6rnek)<\/h2>\n<h2>IndexMemory=18M             # Her veri d\u00fc\u011f\u00fcm\u00fcnde indeksler i\u00e7in ayr\u0131lan bellek (\u00f6rnek)<\/h2>\n\n[tcp default]\n<h2>Ba\u011flant\u0131 gecikmesini azaltmak i\u00e7in Nagle algoritmas\u0131n\u0131 devre d\u0131\u015f\u0131 b\u0131rak\u0131r<\/h2>\nSendBufferMemory=16M\nReceiveBufferMemory=16M\n\n[ndb_mgmd]\nId=1                          # Y\u00f6netim d\u00fc\u011f\u00fcm\u00fc kimli\u011fi\nHostname=192.168.1.101        # Y\u00f6netim d\u00fc\u011f\u00fcm\u00fcn\u00fcn IP adresi\nDataDir=\/var\/lib\/mysql-cluster # Y\u00f6netim d\u00fc\u011f\u00fcm\u00fc i\u00e7in veri dizini\n\n[ndbd]\nId=2                          # Veri d\u00fc\u011f\u00fcm\u00fc 1 kimli\u011fi\nHostname=192.168.1.102        # Veri d\u00fc\u011f\u00fcm\u00fc 1'in IP adresi\n\n[ndbd]\nId=3                          # Veri d\u00fc\u011f\u00fcm\u00fc 2 kimli\u011fi\nHostname=192.168.1.103        # Veri d\u00fc\u011f\u00fcm\u00fc 2'nin IP adresi\n\n[mysqld]\nId=4                          # SQL d\u00fc\u011f\u00fcm\u00fc 1 kimli\u011fi\nHostname=192.168.1.104        # SQL d\u00fc\u011f\u00fcm\u00fc 1'in IP adresi\n\n[mysqld]\nId=5                          # SQL d\u00fc\u011f\u00fcm\u00fc 2 kimli\u011fi\nHostname=192.168.1.105        # SQL d\u00fc\u011f\u00fcm\u00fc 2'nin IP adresi\n\n<h2>\u0130ste\u011fe ba\u011fl\u0131 olarak daha fazla SQL d\u00fc\u011f\u00fcm\u00fc veya API d\u00fc\u011f\u00fcm\u00fc eklenebilir<\/h2>\n<h2>[api]<\/h2>\n<h2>Id=6<\/h2>\n<h2>Hostname=192.168.1.106<\/code><\/pre>\n<\/h2>\n<p><code>DataMemory<\/code> ve <code>IndexMemory<\/code> ayarlar\u0131, veri d\u00fc\u011f\u00fcmlerinde NDB motoru taraf\u0131ndan kullan\u0131lacak bellek miktar\u0131n\u0131 belirler. Bu de\u011ferleri sunucular\u0131n\u0131z\u0131n RAM kapasitesine ve veritaban\u0131n\u0131z\u0131n boyutuna g\u00f6re ayarlaman\u0131z kritik \u00f6neme sahiptir. Genellikle, ba\u015flang\u0131\u00e7 i\u00e7in d\u00fc\u015f\u00fck de\u011ferler kullan\u0131l\u0131p daha sonra art\u0131r\u0131labilir.<\/p>\n<h4>2.3. Y\u00f6netim D\u00fc\u011f\u00fcm\u00fcn\u00fc Ba\u015flatma<\/h4>\n<p>Y\u00f6netim d\u00fc\u011f\u00fcm\u00fcn\u00fc ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo \/opt\/mysqlcluster\/bin\/ndb_mgmd -f \/var\/lib\/mysql-cluster\/config.ini --initial<\/code><\/pre>\n<p><code>--initial<\/code> bayra\u011f\u0131, ilk ba\u015flatmada k\u00fcme yap\u0131land\u0131rma dosyalar\u0131n\u0131 olu\u015fturmak i\u00e7in kullan\u0131l\u0131r. Daha sonraki ba\u015flatmalarda bu bayra\u011f\u0131 kullanmay\u0131n.<\/p>\n<p>Y\u00f6netim d\u00fc\u011f\u00fcm\u00fcn\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulamak i\u00e7in <code>ndb_mgm<\/code> istemcisini kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo \/opt\/mysqlcluster\/bin\/ndb_mgm<\/code><\/pre>\n<p>Bu komut sizi <code>ndb_mgm><\/code> istemine getirecektir. Burada <code>SHOW<\/code> komutunu kullanarak k\u00fcme durumunu g\u00f6rebilirsiniz:<\/p>\n<pre><code class=\"language-\">ndb_mgm> SHOW<\/code><\/pre>\n<p>\u015eu anda sadece y\u00f6netim d\u00fc\u011f\u00fcm\u00fcn\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 ve di\u011fer d\u00fc\u011f\u00fcmlerin ba\u011fl\u0131 olmad\u0131\u011f\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<p><strong>Sistemd Hizmeti Olarak Ba\u015flatma (\u0130ste\u011fe Ba\u011fl\u0131 ama \u00d6nerilir):<\/strong><br \/>\nMGM d\u00fc\u011f\u00fcm\u00fcn\u00fc bir <code>systemd<\/code> servisi olarak \u00e7al\u0131\u015ft\u0131rmak, sistem yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda otomatik olarak ba\u015flamas\u0131n\u0131 sa\u011flar.<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/systemd\/system\/ndb_mgmd.service<\/code><\/pre>\n<p>\u0130\u00e7eri\u011fi ekleyin:<\/p>\n<pre><code class=\"language-ini\">[Unit]\nDescription=MySQL NDB Cluster Management Server\nAfter=network.target\n\n[Service]\nType=forking\nExecStart=\/opt\/mysqlcluster\/bin\/ndb_mgmd -f \/var\/lib\/mysql-cluster\/config.ini\nExecReload=\/bin\/kill -HUP $MAINPID\nKillMode=process\nRestart=on-failure\n\n[Install]\nWantedBy=multi-user.target<\/code><\/pre>\n<p>Hizmeti etkinle\u015ftirin ve ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl daemon-reload\nsudo systemctl enable ndb_mgmd\nsudo systemctl start ndb_mgmd\nsudo systemctl status ndb_mgmd<\/code><\/pre>\n<h3>3. Veri D\u00fc\u011f\u00fcmleri (NDBD) Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Her iki veri d\u00fc\u011f\u00fcm\u00fcnde de (\u00f6rne\u011fin <code>192.168.1.102<\/code> ve <code>192.168.1.103<\/code>) a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 uygulay\u0131n.<\/p>\n<h4>3.1. NDBD \u0130\u00e7in Veri Dizinini Olu\u015fturma<\/h4>\n<p>Veri d\u00fc\u011f\u00fcmleri i\u00e7in veri depolama dizinini olu\u015fturun:<\/p>\n<pre><code class=\"language-bash\">sudo mkdir -p \/var\/lib\/mysql-cluster\nsudo chown -R mysql:mysql \/var\/lib\/mysql-cluster<\/code><\/pre>\n<p>Bu dizin, <code>config.ini<\/code> dosyas\u0131nda <code>DataDir<\/code> olarak belirtilen dizinle ayn\u0131 olmal\u0131d\u0131r.<\/p>\n<h4>3.2. <code>my.cnf<\/code> Yap\u0131land\u0131rma Dosyas\u0131n\u0131 Olu\u015fturma<\/h4>\n<p>Her veri d\u00fc\u011f\u00fcm\u00fcnde <code>\/etc\/my.cnf<\/code> veya <code>\/etc\/mysql\/my.cnf<\/code> dosyas\u0131n\u0131 olu\u015fturun\/d\u00fczenleyin:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/my.cnf<\/code><\/pre>\n<p>A\u015fa\u011f\u0131daki i\u00e7eri\u011fi ekleyin. <code>ndb-connectstring<\/code> de\u011ferini y\u00f6netim d\u00fc\u011f\u00fcm\u00fcn\u00fcn IP adresiyle g\u00fcncelleyin.<\/p>\n<pre><code class=\"language-ini\">[mysqld]\n<h2>NDB Cluster kullanmad\u0131\u011f\u0131 i\u00e7in bu b\u00f6l\u00fcm bo\u015f b\u0131rak\u0131labilir veya kald\u0131r\u0131labilir.<\/h2>\n<h2>Ancak baz\u0131 MySQL ara\u00e7lar\u0131 i\u00e7in [mysqld] b\u00f6l\u00fcm\u00fc gerekebilir.<\/h2>\n\n[mysql_cluster]\n<h2>Y\u00f6netim d\u00fc\u011f\u00fcm\u00fcn\u00fcn IP adresi<\/h2>\nndb-connectstring=192.168.1.101<\/code><\/pre>\n<h4>3.3. Veri D\u00fc\u011f\u00fcm\u00fcn\u00fc Ba\u015flatma<\/h4>\n<p>Veri d\u00fc\u011f\u00fcm\u00fcn\u00fc ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo \/opt\/mysqlcluster\/bin\/ndbd<\/code><\/pre>\n<p>Y\u00f6netim d\u00fc\u011f\u00fcm\u00fcnde <code>ndb_mgm<\/code> istemcisini kullanarak durumu kontrol edin:<\/p>\n<pre><code class=\"language-\">ndb_mgm> SHOW<\/code><\/pre>\n<p>\u015eimdi her iki veri d\u00fc\u011f\u00fcm\u00fcn\u00fcn de ba\u011fl\u0131 ve \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6rmelisiniz.<\/p>\n<p><strong>Sistemd Hizmeti Olarak Ba\u015flatma (\u0130ste\u011fe Ba\u011fl\u0131 ama \u00d6nerilir):<\/strong><br \/>\nVeri d\u00fc\u011f\u00fcm\u00fcn\u00fc bir <code>systemd<\/code> servisi olarak \u00e7al\u0131\u015ft\u0131rmak.<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/systemd\/system\/ndbd.service<\/code><\/pre>\n<p>\u0130\u00e7eri\u011fi ekleyin:<\/p>\n<pre><code class=\"language-ini\">[Unit]\nDescription=MySQL NDB Cluster Data Node\nAfter=network.target ndb_mgmd.service # ndb_mgmd.service'i ekleyin e\u011fer y\u00f6netim d\u00fc\u011f\u00fcm\u00fc ayn\u0131 makinedeyse\n\n[Service]\nType=forking\nExecStart=\/opt\/mysqlcluster\/bin\/ndbd\nExecReload=\/bin\/kill -HUP $MAINPID\nKillMode=process\nRestart=on-failure\n\n[Install]\nWantedBy=multi-user.target<\/code><\/pre>\n<p>Hizmeti etkinle\u015ftirin ve ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl daemon-reload\nsudo systemctl enable ndbd\nsudo systemctl start ndbd\nsudo systemctl status ndbd<\/code><\/pre>\n<p>Her iki veri d\u00fc\u011f\u00fcm\u00fc i\u00e7in de bu ad\u0131mlar\u0131 tekrarlay\u0131n.<\/p>\n<h3>4. SQL D\u00fc\u011f\u00fcmleri (MySQLD) Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>Her iki SQL d\u00fc\u011f\u00fcm\u00fcnde de (\u00f6rne\u011fin <code>192.168.1.104<\/code> ve <code>192.168.1.105<\/code>) a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 uygulay\u0131n.<\/p>\n<h4>4.1. MySQL Kurulumu ve Yap\u0131land\u0131rmas\u0131<\/h4>\n<p>SQL d\u00fc\u011f\u00fcmleri, MySQL K\u00fcme yaz\u0131l\u0131m\u0131 ile birlikte gelen <code>mysqld<\/code> ikilisini kullan\u0131r. Standart MySQL Server kurulumu yapmay\u0131n.<\/p>\n<p>MySQL K\u00fcme yaz\u0131l\u0131m\u0131n\u0131 <code>\/opt\/mysqlcluster<\/code> alt\u0131na \u00e7\u0131kard\u0131\u011f\u0131m\u0131zdan, \u015fimdi bu dizini MySQL&#8217;in bekledi\u011fi yerlere ba\u011flamam\u0131z ve ilk kurulumu yapmam\u0131z gerekecek.<\/p>\n<p><strong>MySQL Dizinlerini Olu\u015fturma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo mkdir -p \/var\/lib\/mysql\nsudo mkdir -p \/var\/log\/mysql\nsudo mkdir -p \/var\/run\/mysqld\nsudo chown -R mysql:mysql \/var\/lib\/mysql \/var\/log\/mysql \/var\/run\/mysqld<\/code><\/pre>\n<p><strong><code>my.cnf<\/code> Yap\u0131land\u0131rma Dosyas\u0131n\u0131 Olu\u015fturma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/my.cnf<\/code><\/pre>\n<p>A\u015fa\u011f\u0131daki i\u00e7eri\u011fi ekleyin. <code>ndb-connectstring<\/code> de\u011ferini y\u00f6netim d\u00fc\u011f\u00fcm\u00fcn\u00fcn IP adresiyle g\u00fcncelleyin. <code>datadir<\/code> ve <code>log-error<\/code> yollar\u0131n\u0131 do\u011fru belirtti\u011finizden emin olun.<\/p>\n<pre><code class=\"language-ini\">[mysqld]\nndbcluster                        # NDB Cluster depolama motorunu etkinle\u015ftir\nndb-connectstring=192.68.1.101    # Y\u00f6netim d\u00fc\u011f\u00fcm\u00fcn\u00fcn IP adresi\ndatadir=\/var\/lib\/mysql            # MySQL veri dizini\nsocket=\/var\/run\/mysqld\/mysqld.sock\nlog-error=\/var\/log\/mysql\/error.log\npid-file=\/var\/run\/mysqld\/mysqld.pid\n<h2>Di\u011fer genel MySQL ayarlar\u0131<\/h2>\nport=3306\nbind-address=0.0.0.0              # T\u00fcm IP adreslerinden ba\u011flant\u0131lara izin ver\nskip-external-locking\nkey_buffer_size = 16M\nmax_allowed_packet = 16M\nthread_stack = 192K\nthread_cache_size = 8\n#query_cache_limit = 1M\n#query_cache_size = 16M\n#query_cache_type = 1\ntmp_table_size = 32M\nmax_heap_table_size = 32M\n\n<h2>NDB ile ilgili ek ayarlar (iste\u011fe ba\u011fl\u0131, performansa g\u00f6re ayarlanabilir)<\/h2>\n<h2>ndb_force_storage_engine=NDB<\/h2>\n<h2>ndb_autoincrement_prefetch_sz=1<\/h2>\n<h2>ndb_table_no_direct_jps=1<\/h2>\n\n[mysql_cluster]\nndb-connectstring=192.168.1.101\n\n[client]\nport=3306\nsocket=\/var\/run\/mysqld\/mysqld.sock<\/code><\/pre>\n<h4>4.2. MySQL Veri Dizinini Ba\u015flatma (\u0130lk Kurulum)<\/h4>\n<p>MySQL sunucusunu ilk kez ba\u015flatmadan \u00f6nce, veri dizininin ba\u015flat\u0131lmas\u0131 gerekir. Bu i\u015flem, sistem veritabanlar\u0131n\u0131 ve izin tablolar\u0131n\u0131 olu\u015fturur.<\/p>\n<pre><code class=\"language-bash\">sudo \/opt\/mysqlcluster\/bin\/mysqld --initialize-insecure --user=mysql --datadir=\/var\/lib\/mysql\n<h2>--initialize-insecure root kullan\u0131c\u0131s\u0131 i\u00e7in bo\u015f \u015fifre ile ba\u015flat\u0131r.<\/h2>\n<h2>G\u00fcvenli bir kurulum i\u00e7in --initialize kullan\u0131p ge\u00e7ici bir \u015fifre olu\u015fturulabilir.<\/code><\/pre>\n<\/h2>\n<p>Bu ad\u0131m, <code>\/var\/lib\/mysql<\/code> dizininde gerekli MySQL sistem tablolar\u0131n\u0131 olu\u015fturacakt\u0131r.<\/p>\n<h4>4.3. SQL D\u00fc\u011f\u00fcm\u00fcn\u00fc Ba\u015flatma<\/h4>\n<p>SQL d\u00fc\u011f\u00fcm\u00fcn\u00fc ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo \/opt\/mysqlcluster\/bin\/mysqld_safe --ndb-connectstring=192.168.1.101 &<\/code><\/pre>\n<p>Veya daha yayg\u0131n olarak bir <code>systemd<\/code> servisi olarak ba\u015flat\u0131n.<\/p>\n<p><strong>Sistemd Hizmeti Olarak Ba\u015flatma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/systemd\/system\/mysqld.service<\/code><\/pre>\n<p>\u0130\u00e7eri\u011fi ekleyin:<\/p>\n<pre><code class=\"language-ini\">[Unit]\nDescription=MySQL NDB Cluster SQL Node\nAfter=network.target ndbd.service # ndbd.service'i ekleyin e\u011fer veri d\u00fc\u011f\u00fcm\u00fc ayn\u0131 makinedeyse\n\n[Service]\nUser=mysql\nGroup=mysql\nExecStart=\/opt\/mysqlcluster\/bin\/mysqld --defaults-file=\/etc\/my.cnf --ndb-connectstring=192.168.1.101\nExecReload=\/bin\/kill -HUP $MAINPID\nKillMode=process\nRestart=on-failure\nLimitNOFILE=10000\n\n[Install]\nWantedBy=multi-user.target<\/code><\/pre>\n<p>Hizmeti etkinle\u015ftirin ve ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl daemon-reload\nsudo systemctl enable mysqld\nsudo systemctl start mysqld\nsudo systemctl status mysqld<\/code><\/pre>\n<p>Her iki SQL d\u00fc\u011f\u00fcm\u00fc i\u00e7in de bu ad\u0131mlar\u0131 tekrarlay\u0131n.<\/p>\n<h4>4.4. MySQL Root \u015eifresi Ayarlama ve Kullan\u0131c\u0131 Olu\u015fturma<\/h4>\n<p>SQL d\u00fc\u011f\u00fcmleri \u00e7al\u0131\u015ft\u0131ktan sonra, <code>root<\/code> kullan\u0131c\u0131s\u0131 i\u00e7in bir \u015fifre ayarlaman\u0131z ve di\u011fer veritaban\u0131 kullan\u0131c\u0131lar\u0131n\u0131 olu\u015fturman\u0131z gerekir.<\/p>\n<pre><code class=\"language-bash\">mysql -u root<\/code><\/pre>\n<p>MySQL isteminde a\u015fa\u011f\u0131daki komutlar\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-sql\">ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'YourStrongPassword';\nFLUSH PRIVILEGES;\n\n-- Uzaktan eri\u015fim i\u00e7in root kullan\u0131c\u0131s\u0131n\u0131 yap\u0131land\u0131rma (iste\u011fe ba\u011fl\u0131, g\u00fcvenlik riski ta\u015f\u0131r)\nCREATE USER 'root'@'%' IDENTIFIED WITH mysql_native_password BY 'YourStrongPassword';\nGRANT ALL PRIVILEGES ON <em>.<\/em> TO 'root'@'%' WITH GRANT OPTION;\nFLUSH PRIVILEGES;\n\n-- Uygulama kullan\u0131c\u0131s\u0131 olu\u015fturma\nCREATE USER 'app_user'@'%' IDENTIFIED WITH mysql_native_password BY 'AppUserPassword';\nGRANT ALL PRIVILEGES ON my_ndb_database.* TO 'app_user'@'%';\nFLUSH PRIVILEGES;<\/code><\/pre>\n<p>Bu ad\u0131mlar\u0131 her SQL d\u00fc\u011f\u00fcm\u00fcnde tekrarlaman\u0131z gerekir. MySQL K\u00fcmesi&#8217;nde, kullan\u0131c\u0131lar ve izinler SQL d\u00fc\u011f\u00fcmlerinde y\u00f6netilir ve NDB veri d\u00fc\u011f\u00fcmlerinde depolanmaz. Ancak, NDB depolama motorunu kullanan tablolar k\u00fcme genelinde tutarl\u0131 olacakt\u0131r.<\/p>\n<h3>5. K\u00fcme Durumunu Do\u011frulama ve Test Etme<\/h3>\n<p>T\u00fcm d\u00fc\u011f\u00fcmler ba\u015flat\u0131ld\u0131ktan sonra, k\u00fcmenin do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in do\u011frulama yap\u0131n.<\/p>\n<h4>5.1. Y\u00f6netim D\u00fc\u011f\u00fcm\u00fcnde K\u00fcme Durumunu Kontrol Etme<\/h4>\n<p>Y\u00f6netim d\u00fc\u011f\u00fcm\u00fcnde <code>ndb_mgm<\/code> istemcisini kullanarak t\u00fcm d\u00fc\u011f\u00fcmlerin ba\u011fl\u0131 ve \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 kontrol edin:<\/p>\n<pre><code class=\"language-bash\">sudo \/opt\/mysqlcluster\/bin\/ndb_mgm<\/code><\/pre>\n<p>Ard\u0131ndan <code>ndb_mgm><\/code> isteminde <code>SHOW<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-\">ndb_mgm> SHOW<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da t\u00fcm NDBD ve MySQLD d\u00fc\u011f\u00fcmlerinin <code>connected<\/code> ve <code>started<\/code> durumunda oldu\u011funu g\u00f6rmelisiniz.<\/p>\n<h4>5.2. SQL D\u00fc\u011f\u00fcm\u00fcnde NDB Motorunu Kontrol Etme<\/h4>\n<p>Bir SQL d\u00fc\u011f\u00fcm\u00fcne ba\u011flan\u0131n ve NDB depolama motorunun mevcut ve etkin oldu\u011funu kontrol edin:<\/p>\n<pre><code class=\"language-bash\">mysql -u root -p<\/code><\/pre>\n<p>\u015eifrenizi girdikten sonra:<\/p>\n<pre><code class=\"language-sql\">SHOW ENGINES;<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da <code>NDBCLUSTER<\/code> veya <code>NDB<\/code> motorunun <code>YES<\/code> veya <code>DEFAULT<\/code> olarak listelendi\u011fini g\u00f6rmelisiniz.<\/p>\n<h4>5.3. NDB Tablosu Olu\u015fturma ve Test Etme<\/h4>\n<p>Bir SQL d\u00fc\u011f\u00fcm\u00fcnde NDB depolama motorunu kullanarak bir veritaban\u0131 ve tablo olu\u015fturun:<\/p>\n<pre><code class=\"language-sql\">CREATE DATABASE my_ndb_database;\nUSE my_ndb_database;\n\nCREATE TABLE my_ndb_table (\n    id INT NOT NULL PRIMARY KEY AUTO_INCREMENT,\n    name VARCHAR(100),\n    value INT\n) ENGINE=NDBCLUSTER;\n\nINSERT INTO my_ndb_table (name, value) VALUES ('Test Item 1', 100);\nINSERT INTO my_ndb_table (name, value) VALUES ('Test Item 2', 200);\n\nSELECT * FROM my_ndb_table;<\/code><\/pre>\n<p>Bu tablo, NDB depolama motorunu kulland\u0131\u011f\u0131 i\u00e7in verileri veri d\u00fc\u011f\u00fcmlerinde saklanacakt\u0131r.<\/p>\n<h4>5.4. Veri Tutarl\u0131l\u0131\u011f\u0131n\u0131 Kontrol Etme<\/h4>\n<p>\u015eimdi ba\u015fka bir SQL d\u00fc\u011f\u00fcm\u00fcne ba\u011flan\u0131n ve ayn\u0131 veritaban\u0131n\u0131 ve tabloyu sorgulay\u0131n:<\/p>\n<pre><code class=\"language-bash\">mysql -u root -p -h 192.168.1.105 # Di\u011fer SQL d\u00fc\u011f\u00fcm\u00fcn\u00fcn IP adresi<\/code><\/pre>\n<pre><code class=\"language-sql\">USE my_ndb_database;\nSELECT * FROM my_ndb_table;<\/code><\/pre>\n<p>Her iki SQL d\u00fc\u011f\u00fcm\u00fcnde de ayn\u0131 verileri g\u00f6rmelisiniz. Bu, veri tutarl\u0131l\u0131\u011f\u0131n\u0131n ve replikasyonun do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6sterir.<\/p>\n<h4>5.5. Hata Tolerans\u0131n\u0131 Test Etme (Opsiyonel)<\/h4>\n<p>Bir veri d\u00fc\u011f\u00fcm\u00fcn\u00fc veya SQL d\u00fc\u011f\u00fcm\u00fcn\u00fc durdurarak k\u00fcmenin hata tolerans\u0131n\u0131 test edebilirsiniz.<\/p>\n<p><strong>\u00d6rnek: Bir Veri D\u00fc\u011f\u00fcm\u00fcn\u00fc Durdurma<\/strong><br \/>\nVeri d\u00fc\u011f\u00fcm\u00fc 1&#8217;e (192.168.1.102) gidin ve <code>ndbd<\/code> servisini durdurun:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl stop ndbd<\/code><\/pre>\n<p>Y\u00f6netim d\u00fc\u011f\u00fcm\u00fcnde <code>ndb_mgm<\/code> istemcisinden <code>SHOW<\/code> komutunu \u00e7al\u0131\u015ft\u0131r\u0131n. Veri d\u00fc\u011f\u00fcm\u00fc 1&#8217;in <code>stopped<\/code> veya <code>disconnected<\/code> olarak g\u00f6r\u00fcnd\u00fc\u011f\u00fcn\u00fc ancak k\u00fcmenin hala \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 g\u00f6rmelisiniz. SQL d\u00fc\u011f\u00fcmlerinden hala verilere eri\u015febiliyor olman\u0131z gerekir.<\/p>\n<p>Durmu\u015f olan veri d\u00fc\u011f\u00fcm\u00fcn\u00fc tekrar ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start ndbd<\/code><\/pre>\n<p>K\u00fcme otomatik olarak kendini senkronize edecek ve veri d\u00fc\u011f\u00fcm\u00fc tekrar aktif olacakt\u0131r.<\/p>\n<h3>6. Ek Yap\u0131land\u0131rma ve \u0130pu\u00e7lar\u0131<\/h3>\n<p>*   <strong>Y\u00fcksek Eri\u015filebilir Y\u00f6netim D\u00fc\u011f\u00fcmleri:<\/strong> \u00dcretim ortamlar\u0131nda tek bir y\u00f6netim d\u00fc\u011f\u00fcm\u00fc yerine iki y\u00f6netim d\u00fc\u011f\u00fcm\u00fc kullan\u0131lmas\u0131 \u00f6nerilir. \u0130kinci bir MGM d\u00fc\u011f\u00fcm\u00fc kurmak i\u00e7in <code>config.ini<\/code> dosyas\u0131na ek bir <code>[ndb_mgmd]<\/code> b\u00f6l\u00fcm\u00fc eklemeniz ve ilgili sunucuda <code>ndb_mgmd<\/code> servisini ba\u015flatman\u0131z yeterlidir.<br \/>\n*   <strong>Bellek Ayarlar\u0131:<\/strong> <code>DataMemory<\/code> ve <code>IndexMemory<\/code> ayarlar\u0131, NDB Cluster performans\u0131nda kritik rol oynar. Bu de\u011ferleri dikkatlice izlemeli ve uygulaman\u0131z\u0131n ihtiya\u00e7lar\u0131na g\u00f6re ayarlamal\u0131s\u0131n\u0131z. Yetersiz bellek, k\u00fcmenin performans\u0131n\u0131 d\u00fc\u015f\u00fcrebilir veya karars\u0131z hale getirebilir.<br \/>\n*   <strong>Disk Alan\u0131:<\/strong> NDB motoru verileri bellekte tutsa da, i\u015flem loglar\u0131 ve checkpoint&#8217;ler diskte saklan\u0131r. Bu nedenle, veri d\u00fc\u011f\u00fcmlerinde yeterli ve h\u0131zl\u0131 disk alan\u0131 oldu\u011fundan emin olun.<br \/>\n*   <strong>Yedekleme ve Geri Y\u00fckleme:<\/strong> MySQL K\u00fcmesi i\u00e7in \u00f6zel yedekleme ve geri y\u00fckleme stratejileri vard\u0131r. <code>ndb_restore<\/code> ve <code>ndb_backup<\/code> gibi ara\u00e7lar kullan\u0131larak k\u00fcmenin yedeklemesi yap\u0131labilir.<br \/>\n*   <strong>\u0130zleme:<\/strong> K\u00fcmenin durumunu izlemek i\u00e7in <code>ndb_mgm<\/code> istemcisi d\u0131\u015f\u0131nda, MySQL Enterprise Monitor gibi profesyonel ara\u00e7lar veya Prometheus\/Grafana gibi a\u00e7\u0131k kaynakl\u0131 \u00e7\u00f6z\u00fcmler kullan\u0131labilir.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu makalede, Ubuntu 18.04 \u00fczerinde \u00e7ok d\u00fc\u011f\u00fcml\u00fc bir MySQL K\u00fcmesi (MySQL NDB Cluster) kurman\u0131n ve yap\u0131land\u0131rman\u0131n temel ad\u0131mlar\u0131n\u0131 ele ald\u0131k. Y\u00f6netim d\u00fc\u011f\u00fcmlerinden veri d\u00fc\u011f\u00fcmlerine ve SQL d\u00fc\u011f\u00fcmlerine kadar her bile\u015fenin kurulumunu, yap\u0131land\u0131rmas\u0131n\u0131 ve ba\u015flat\u0131lmas\u0131n\u0131 detayland\u0131rd\u0131k. Ayr\u0131ca k\u00fcmenin do\u011fru \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulamak ve temel hata tolerans\u0131n\u0131 test etmek i\u00e7in ad\u0131mlar sunduk.<\/p>\n<p>MySQL K\u00fcmesi, y\u00fcksek eri\u015filebilirlik, ger\u00e7ek zamanl\u0131 performans ve yatay \u00f6l\u00e7eklenebilirlik gerektiren modern uygulamalar i\u00e7in g\u00fc\u00e7l\u00fc bir \u00e7\u00f6z\u00fcmd\u00fcr. Ancak karma\u015f\u0131k bir yap\u0131ya sahip oldu\u011fu i\u00e7in, \u00fcretim ortam\u0131nda devreye almadan \u00f6nce detayl\u0131 planlama, test ve performans ayarlamas\u0131 yapmak kritik \u00f6neme sahiptir. Bu rehber, k\u00fcme kurulumu i\u00e7in sa\u011flam bir temel olu\u015fturmaktad\u0131r ve ileri d\u00fczey yap\u0131land\u0131rmalar i\u00e7in MySQL Cluster resmi dok\u00fcmantasyonuna ba\u015fvurman\u0131z \u00f6nerilir.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"Ubuntu 18.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc MySQL K\u00fcmesi Olu\u015fturma Rehberi\nBu makale, y\u00fcksek eri\u015filebilirlik ve \u00f6l\u00e7eklenebilirlik gerektiren uygula","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":[1468],"tags":[],"class_list":{"0":"post-37759","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-ubuntu","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>Ubuntu 18.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc MySQL K\u00fcmesi Olu\u015fturma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131<\/title>\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\/ubuntu-18-04-uzerinde-cok-dugumlu-mysql-kumesi-olusturma-rehberi\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Ubuntu 18.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc MySQL K\u00fcmesi Olu\u015fturma Rehberi\" \/>\n<meta property=\"og:description\" content=\"Ubuntu 18.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc MySQL K\u00fcmesi Olu\u015fturma Rehberi Bu makale, y\u00fcksek eri\u015filebilirlik ve \u00f6l\u00e7eklenebilirlik gerektiren uygula\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerinde-cok-dugumlu-mysql-kumesi-olusturma-rehberi\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2026-01-14T14:40:49+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=\"18 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerinde-cok-dugumlu-mysql-kumesi-olusturma-rehberi\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerinde-cok-dugumlu-mysql-kumesi-olusturma-rehberi\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"Ubuntu 18.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc MySQL K\u00fcmesi Olu\u015fturma Rehberi\",\"datePublished\":\"2026-01-14T14:40:49+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerinde-cok-dugumlu-mysql-kumesi-olusturma-rehberi\/\"},\"wordCount\":2585,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Ubuntu\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerinde-cok-dugumlu-mysql-kumesi-olusturma-rehberi\/#respond\"]}],\"copyrightYear\":\"2026\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerinde-cok-dugumlu-mysql-kumesi-olusturma-rehberi\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerinde-cok-dugumlu-mysql-kumesi-olusturma-rehberi\/\",\"name\":\"Ubuntu 18.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc MySQL K\u00fcmesi Olu\u015fturma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2026-01-14T14:40:49+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerinde-cok-dugumlu-mysql-kumesi-olusturma-rehberi\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerinde-cok-dugumlu-mysql-kumesi-olusturma-rehberi\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerinde-cok-dugumlu-mysql-kumesi-olusturma-rehberi\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"Ubuntu 18.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc MySQL K\u00fcmesi Olu\u015fturma Rehberi\"}]},{\"@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":"Ubuntu 18.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc MySQL K\u00fcmesi Olu\u015fturma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","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\/ubuntu-18-04-uzerinde-cok-dugumlu-mysql-kumesi-olusturma-rehberi\/","og_locale":"tr_TR","og_type":"article","og_title":"Ubuntu 18.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc MySQL K\u00fcmesi Olu\u015fturma Rehberi","og_description":"Ubuntu 18.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc MySQL K\u00fcmesi Olu\u015fturma Rehberi Bu makale, y\u00fcksek eri\u015filebilirlik ve \u00f6l\u00e7eklenebilirlik gerektiren uygula","og_url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerinde-cok-dugumlu-mysql-kumesi-olusturma-rehberi\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2026-01-14T14:40:49+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"18 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerinde-cok-dugumlu-mysql-kumesi-olusturma-rehberi\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerinde-cok-dugumlu-mysql-kumesi-olusturma-rehberi\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"Ubuntu 18.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc MySQL K\u00fcmesi Olu\u015fturma Rehberi","datePublished":"2026-01-14T14:40:49+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerinde-cok-dugumlu-mysql-kumesi-olusturma-rehberi\/"},"wordCount":2585,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Ubuntu"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerinde-cok-dugumlu-mysql-kumesi-olusturma-rehberi\/#respond"]}],"copyrightYear":"2026","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerinde-cok-dugumlu-mysql-kumesi-olusturma-rehberi\/","url":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerinde-cok-dugumlu-mysql-kumesi-olusturma-rehberi\/","name":"Ubuntu 18.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc MySQL K\u00fcmesi Olu\u015fturma Rehberi - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2026-01-14T14:40:49+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerinde-cok-dugumlu-mysql-kumesi-olusturma-rehberi\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerinde-cok-dugumlu-mysql-kumesi-olusturma-rehberi\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/ubuntu-18-04-uzerinde-cok-dugumlu-mysql-kumesi-olusturma-rehberi\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"Ubuntu 18.04 \u00dczerinde \u00c7ok D\u00fc\u011f\u00fcml\u00fc MySQL K\u00fcmesi Olu\u015fturma Rehberi"}]},{"@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\/37759","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=37759"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37759\/revisions"}],"predecessor-version":[{"id":37760,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/37759\/revisions\/37760"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=37759"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=37759"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=37759"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}