{"id":36139,"date":"2025-12-08T20:41:08","date_gmt":"2025-12-08T17:41:08","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=36139"},"modified":"2025-12-08T20:41:08","modified_gmt":"2025-12-08T17:41:08","slug":"centos-7-uzerine-mongodb-kurulumu-kapsamli-bir-rehber","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerine-mongodb-kurulumu-kapsamli-bir-rehber\/","title":{"rendered":"CentOS 7 \u00dczerine MongoDB Kurulumu: Kapsaml\u0131 Bir Rehber"},"content":{"rendered":"<p><body><\/p>\n<h2>CentOS 7 \u00dczerine MongoDB Kurulumu: Kapsaml\u0131 Bir Rehber<\/h2>\n<p>Bu makale, CentOS 7 i\u015fletim sistemi \u00fczerine MongoDB&#8217;nin topluluk s\u00fcr\u00fcm\u00fcn\u00fc (Community Edition) ad\u0131m ad\u0131m nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ve temel g\u00fcvenlik ayarlar\u0131n\u0131 yapaca\u011f\u0131n\u0131z\u0131 detayl\u0131 bir \u015fekilde a\u00e7\u0131klamaktad\u0131r. MongoDB, modern uygulamalar i\u00e7in tasarlanm\u0131\u015f, esnek ve \u00f6l\u00e7eklenebilir bir NoSQL veritaban\u0131d\u0131r. Dok\u00fcman tabanl\u0131 yap\u0131s\u0131 sayesinde, geli\u015ftiricilere JSON benzeri verileri depolama ve sorgulama konusunda b\u00fcy\u00fck bir esneklik sunar. CentOS 7 ise, sunucu ortamlar\u0131nda yayg\u0131n olarak kullan\u0131lan stabil ve g\u00fcvenilir bir Linux da\u011f\u0131t\u0131m\u0131d\u0131r. Bu kombinasyon, bir\u00e7ok web uygulamas\u0131 ve b\u00fcy\u00fck veri projesi i\u00e7in g\u00fc\u00e7l\u00fc bir temel olu\u015fturur.<\/p>\n<p>Geleneksel ili\u015fkisel veritabanlar\u0131n\u0131n aksine, MongoDB \u015femas\u0131z bir yap\u0131ya sahiptir. Bu, veritaban\u0131 yap\u0131s\u0131n\u0131 \u00f6nceden tan\u0131mlama zorunlulu\u011fu olmadan, farkl\u0131 t\u00fcrdeki verileri ayn\u0131 koleksiyonda depolayabilece\u011finiz anlam\u0131na gelir. Bu esneklik, \u00f6zellikle h\u0131zl\u0131 geli\u015ftirme d\u00f6ng\u00fclerine sahip projeler ve veri yap\u0131s\u0131n\u0131n zamanla de\u011fi\u015febilece\u011fi uygulamalar i\u00e7in b\u00fcy\u00fck bir avantajd\u0131r. \u00d6l\u00e7eklenebilirlik a\u00e7\u0131s\u0131ndan, MongoDB yatay \u00f6l\u00e7eklendirmeyi (sharding) destekleyerek, b\u00fcy\u00fck veri k\u00fcmelerini ve y\u00fcksek trafikli uygulamalar\u0131 kolayca y\u00f6netmenize olanak tan\u0131r. Bu makale boyunca, bu g\u00fc\u00e7l\u00fc veritaban\u0131 sistemini CentOS 7 sunucunuza sorunsuz bir \u015fekilde entegre etmenizi sa\u011flayacak t\u00fcm ad\u0131mlar\u0131 bulacaks\u0131n\u0131z.<\/p>\n<h3>MongoDB Nedir ve Neden Kullan\u0131l\u0131r?<\/h3>\n<p>MongoDB, a\u00e7\u0131k kaynakl\u0131, dok\u00fcman tabanl\u0131 bir NoSQL veritaban\u0131d\u0131r. &#8220;NoSQL&#8221; terimi, &#8220;Not only SQL&#8221; (Sadece SQL de\u011fil) anlam\u0131na gelir ve geleneksel ili\u015fkisel veritabanlar\u0131n\u0131n aksine farkl\u0131 veri depolama ve eri\u015fim modelleri sunan veritaban\u0131 sistemlerini ifade eder. MongoDB&#8217;de veriler, JSON benzeri BSON (Binary JSON) format\u0131nda depolanan &#8220;belgeler&#8221; (documents) halinde d\u00fczenlenir. Bu belgeler, &#8220;koleksiyonlar&#8221; (collections) ad\u0131 verilen gruplar i\u00e7inde saklan\u0131r. Koleksiyonlar, ili\u015fkisel veritabanlar\u0131ndaki tablolara benzetilebilir, ancak MongoDB&#8217;nin \u015femas\u0131z yap\u0131s\u0131 sayesinde ayn\u0131 koleksiyon i\u00e7indeki belgeler farkl\u0131 alanlara ve yap\u0131lara sahip olabilir.<\/p>\n<p>MongoDB&#8217;nin temel \u00f6zellikleri ve kullan\u0131m nedenleri \u015funlard\u0131r:<\/p>\n<ul>\n<li><strong>Esneklik ve \u00c7eviklik:<\/strong> \u015eemas\u0131z yap\u0131s\u0131 sayesinde, uygulama gereksinimleri de\u011fi\u015ftik\u00e7e veritaban\u0131 \u015femas\u0131n\u0131 kolayca adapte edebilirsiniz. Bu, h\u0131zl\u0131 geli\u015ftirme ve s\u00fcrekli entegrasyon\/da\u011f\u0131t\u0131m (CI\/CD) ortamlar\u0131 i\u00e7in idealdir.<\/li>\n<li><strong>Y\u00fcksek Performans:<\/strong> B\u00fcy\u00fck veri k\u00fcmeleri \u00fczerinde h\u0131zl\u0131 okuma ve yazma i\u015flemleri i\u00e7in optimize edilmi\u015ftir. Dizinler (indexes) ve sorgu optimizasyonlar\u0131 ile performans\u0131 daha da art\u0131rmak m\u00fcmk\u00fcnd\u00fcr.<\/li>\n<li><strong>Yatay \u00d6l\u00e7eklenebilirlik:<\/strong> Sharding (par\u00e7alama) \u00f6zelli\u011fi sayesinde, veri k\u00fcmelerini birden fazla sunucuya da\u011f\u0131tarak yatay \u00f6l\u00e7eklenebilirlik sa\u011flar. Bu, \u00e7ok b\u00fcy\u00fck veri hacimlerini ve y\u00fcksek e\u015f zamanl\u0131 kullan\u0131c\u0131 y\u00fcklerini y\u00f6netmek i\u00e7in kritik \u00f6neme sahiptir.<\/li>\n<li><strong>Y\u00fcksek Eri\u015filebilirlik:<\/strong> Replica Set&#8217;ler (\u00e7o\u011faltma k\u00fcmeleri) ile veritaban\u0131n\u0131n y\u00fcksek eri\u015filebilirli\u011fini ve veri yedeklili\u011fini garanti eder. Birincil sunucu (primary) ar\u0131zaland\u0131\u011f\u0131nda, ikincil sunuculardan (secondary) biri otomatik olarak birincil sunucu rol\u00fcn\u00fc \u00fcstlenir.<\/li>\n<li><strong>Zengin Sorgu Dili:<\/strong> Agregasyon \u00e7er\u00e7evesi (Aggregation Framework) ve g\u00fc\u00e7l\u00fc sorgu operat\u00f6rleri ile karma\u015f\u0131k veri analizleri ve d\u00f6n\u00fc\u015f\u00fcmleri yapma imkan\u0131 sunar.<\/li>\n<li><strong>Geli\u015ftirici Dostu:<\/strong> JSON benzeri belgeler ve \u00e7e\u015fitli programlama dilleri i\u00e7in kapsaml\u0131 s\u00fcr\u00fcc\u00fcler (drivers) sayesinde geli\u015ftiricilerin MongoDB ile \u00e7al\u0131\u015fmas\u0131 olduk\u00e7a kolayd\u0131r.<\/li>\n<\/ul>\n<p>MongoDB genellikle a\u015fa\u011f\u0131daki senaryolarda tercih edilir:<\/p>\n<ul>\n<li>\u0130\u00e7erik Y\u00f6netim Sistemleri (CMS) ve Blog Platformlar\u0131<\/li>\n<li>E-ticaret uygulamalar\u0131<\/li>\n<li>Mobil uygulamalar\u0131n arka u\u00e7lar\u0131 (backend)<\/li>\n<li>Ger\u00e7ek zamanl\u0131 analitik uygulamalar<\/li>\n<li>IoT (Nesnelerin \u0130nterneti) veri depolama<\/li>\n<li>Kullan\u0131c\u0131 profilleri ve ki\u015fiselle\u015ftirme motorlar\u0131<\/li>\n<\/ul>\n<h3>\u00d6n Gereksinimler<\/h3>\n<p>MongoDB kurulumuna ba\u015flamadan \u00f6nce, CentOS 7 sunucunuzun belirli \u00f6n gereksinimleri kar\u015f\u0131lad\u0131\u011f\u0131ndan emin olmal\u0131s\u0131n\u0131z. Bu ad\u0131mlar, kurulum s\u00fcrecinin sorunsuz ilerlemesini ve sistemin g\u00fcvenli\u011fini sa\u011flamak i\u00e7in kritik \u00f6neme sahiptir.<\/p>\n<h4>Sistem G\u00fcncelleme<\/h4>\n<p>Herhangi bir yaz\u0131l\u0131m kurulumuna ba\u015flamadan \u00f6nce i\u015fletim sisteminizin paketlerini g\u00fcncelleyerek en son g\u00fcvenlik yamalar\u0131na ve yaz\u0131l\u0131m s\u00fcr\u00fcmlerine sahip oldu\u011funuzdan emin olmak iyi bir uygulamad\u0131r. Bu, potansiyel uyumluluk sorunlar\u0131n\u0131 \u00f6nler ve sistem kararl\u0131l\u0131\u011f\u0131n\u0131 art\u0131r\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo yum update -y\nsudo yum upgrade -y<\/code><\/pre>\n<p><code>yum update<\/code> komutu mevcut paketleri g\u00fcncellerken, <code>yum upgrade<\/code> komutu daha kapsaml\u0131 bir g\u00fcncelleme yaparak sistemdeki t\u00fcm paketleri en yeni s\u00fcr\u00fcmlerine y\u00fckseltir. <code>-y<\/code> bayra\u011f\u0131, t\u00fcm sorulara otomatik olarak &#8220;evet&#8221; yan\u0131t\u0131 verilmesini sa\u011flar.<\/p>\n<h4>Gerekli Ara\u00e7lar\u0131n Kurulumu<\/h4>\n<p>MongoDB deposunu eklemek ve baz\u0131 temel i\u015flemleri ger\u00e7ekle\u015ftirmek i\u00e7in <code>wget<\/code> gibi ara\u00e7lara ihtiyac\u0131n\u0131z olabilir. \u00c7o\u011fu CentOS 7 sisteminde bu ara\u00e7lar zaten y\u00fckl\u00fcd\u00fcr, ancak y\u00fckl\u00fc de\u011fillerse a\u015fa\u011f\u0131daki komutla kurabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo yum install -y wget nano vim<\/code><\/pre>\n<ul>\n<li><code>wget<\/code>: Uzak sunuculardan dosya indirmek i\u00e7in kullan\u0131l\u0131r.<\/li>\n<li><code>nano<\/code> veya <code>vim<\/code>: Metin dosyalar\u0131n\u0131 d\u00fczenlemek i\u00e7in kullan\u0131\u015fl\u0131 metin d\u00fczenleyicileridir. Bu makalede yap\u0131land\u0131rma dosyalar\u0131n\u0131 d\u00fczenlemek i\u00e7in bunlardan birini kullanaca\u011f\u0131z.<\/li>\n<\/ul>\n<h4>Firewall Ayarlar\u0131<\/h4>\n<p>CentOS 7, varsay\u0131lan olarak <code>firewalld<\/code> g\u00fcvenlik duvar\u0131 hizmetini kullan\u0131r. MongoDB sunucusuna d\u0131\u015far\u0131dan eri\u015fim sa\u011flamak istiyorsan\u0131z (\u00f6rne\u011fin, ba\u015fka bir makineden ba\u011flanmak i\u00e7in), MongoDB&#8217;nin varsay\u0131lan portu olan 27017&#8217;yi g\u00fcvenlik duvar\u0131ndan a\u00e7man\u0131z gerekir. E\u011fer MongoDB&#8217;yi yaln\u0131zca yerel sunucuda kullanacaksan\u0131z bu ad\u0131m\u0131 atlayabilirsiniz, ancak genel olarak bir g\u00fcvenlik duvar\u0131 kural\u0131 eklemek iyi bir uygulamad\u0131r.<\/p>\n<pre><code class=\"language-bash\">sudo firewall-cmd --zone=public --add-port=27017\/tcp --permanent\nsudo firewall-cmd --reload<\/code><\/pre>\n<ul>\n<li><code>--zone=public<\/code>: Kural\u0131n genel a\u011f b\u00f6lgesi i\u00e7in ge\u00e7erli oldu\u011funu belirtir.<\/li>\n<li><code>--add-port=27017\/tcp<\/code>: TCP protokol\u00fc \u00fczerinden 27017 numaral\u0131 portun a\u00e7\u0131lmas\u0131n\u0131 sa\u011flar.<\/li>\n<li><code>--permanent<\/code>: Kural\u0131n kal\u0131c\u0131 olmas\u0131n\u0131, yani sistem yeniden ba\u015flat\u0131ld\u0131\u011f\u0131nda da ge\u00e7erli olmas\u0131n\u0131 sa\u011flar.<\/li>\n<li><code>--reload<\/code>: G\u00fcvenlik duvar\u0131 ayarlar\u0131n\u0131 yeniden y\u00fckleyerek de\u011fi\u015fikliklerin an\u0131nda etkinle\u015fmesini sa\u011flar.<\/li>\n<\/ul>\n<p>Bu ad\u0131mlar\u0131 tamamlad\u0131ktan sonra, MongoDB kurulumuna ge\u00e7meye haz\u0131rs\u0131n\u0131z.<\/p>\n<h3>MongoDB Deposu Ekleme<\/h3>\n<p>MongoDB, CentOS&#8217;un varsay\u0131lan depolar\u0131nda bulunmaz. Bu nedenle, MongoDB&#8217;nin kendi resmi deposunu sisteminize eklemeniz gerekir. Bu sayede <code>yum<\/code> paket y\u00f6neticisi arac\u0131l\u0131\u011f\u0131yla MongoDB paketlerini kolayca kurabilir ve g\u00fcncelleyebilirsiniz. MongoDB Community Edition&#8217;\u0131n en son stabil s\u00fcr\u00fcm\u00fcn\u00fc kurmak i\u00e7in a\u015fa\u011f\u0131daki ad\u0131mlar\u0131 izleyece\u011fiz.<\/p>\n<h4>MongoDB S\u00fcr\u00fcm\u00fcn\u00fc Se\u00e7me<\/h4>\n<p>MongoDB&#8217;nin birden fazla s\u00fcr\u00fcm\u00fc bulunur. Genellikle en son stabil s\u00fcr\u00fcm tercih edilir. Bu makale yaz\u0131ld\u0131\u011f\u0131 s\u0131rada en son kararl\u0131 s\u00fcr\u00fcm 6.0&#8217;d\u0131r (veya 7.0 gibi daha yeni s\u00fcr\u00fcmler). Hangi s\u00fcr\u00fcm\u00fc kurmak istedi\u011finize karar vermeniz \u00f6nemlidir. MongoDB&#8217;nin resmi dok\u00fcmantasyonundan en g\u00fcncel s\u00fcr\u00fcmleri kontrol edebilirsiniz. Genellikle, en yeni s\u00fcr\u00fcm i\u00e7in depo yap\u0131land\u0131rmas\u0131 benzerdir, sadece s\u00fcr\u00fcm numaras\u0131n\u0131 de\u011fi\u015ftirmeniz yeterlidir.<\/p>\n<h4>.repo Dosyas\u0131 Olu\u015fturma ve \u0130\u00e7eri\u011fi<\/h4>\n<p>MongoDB deposunu eklemek i\u00e7in <code>\/etc\/yum.repos.d\/<\/code> dizini alt\u0131nda bir <code>.repo<\/code> dosyas\u0131 olu\u015fturmal\u0131s\u0131n\u0131z. Bu dosya, <code>yum<\/code>&#8216;a MongoDB paketlerinin nereden indirilece\u011fini s\u00f6yler. A\u015fa\u011f\u0131daki \u00f6rnekte, MongoDB 6.0 s\u00fcr\u00fcm\u00fc i\u00e7in bir depo dosyas\u0131 olu\u015fturulacakt\u0131r. Farkl\u0131 bir s\u00fcr\u00fcm kurmak isterseniz, <code>baseurl<\/code> i\u00e7indeki s\u00fcr\u00fcm numaras\u0131n\u0131 (\u00f6rne\u011fin <code>6.0<\/code>) de\u011fi\u015ftirebilirsiniz.<\/p>\n<p>Bir metin d\u00fczenleyici (\u00f6rne\u011fin <code>nano<\/code> veya <code>vim<\/code>) kullanarak <code>mongodb-org-6.0.repo<\/code> ad\u0131nda bir dosya olu\u015fturun:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/yum.repos.d\/mongodb-org-6.0.repo<\/code><\/pre>\n<p>A\u00e7\u0131lan dosyaya a\u015fa\u011f\u0131daki i\u00e7eri\u011fi yap\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-ini\">[mongodb-org-6.0]\nname=MongoDB Repository\nbaseurl=https:\/\/repo.mongodb.org\/yum\/redhat\/$releasever\/mongodb-org\/6.0\/x86_64\/\ngpgcheck=1\nenabled=1\ngpgkey=https:\/\/www.mongodb.org\/static\/pgp\/server-6.0.asc<\/code><\/pre>\n<p>Dosyay\u0131 kaydedin ve kapat\u0131n (Nano i\u00e7in <code>Ctrl+X<\/code>, <code>Y<\/code>, <code>Enter<\/code>).<\/p>\n<p>Bu dosyadaki her bir sat\u0131r\u0131n anlam\u0131 \u015f\u00f6yledir:<\/p>\n<ul>\n<li><code>[mongodb-org-6.0]<\/code>: Bu, deponun benzersiz ad\u0131d\u0131r.<\/li>\n<li><code>name=MongoDB Repository<\/code>: Deponun insan taraf\u0131ndan okunabilir ad\u0131d\u0131r.<\/li>\n<li><code>baseurl=https:\/\/repo.mongodb.org\/yum\/redhat\/$releasever\/mongodb-org\/6.0\/x86_64\/<\/code>: Paketlerin indirilece\u011fi URL&#8217;yi belirtir.\n<ul>\n<li><code>$releasever<\/code>: CentOS&#8217;un ana s\u00fcr\u00fcm numaras\u0131n\u0131 (\u00f6rne\u011fin 7) otomatik olarak al\u0131r.<\/li>\n<li><code>6.0<\/code>: Kurmak istedi\u011finiz MongoDB s\u00fcr\u00fcm\u00fcd\u00fcr. E\u011fer 7.0 kurmak istiyorsan\u0131z buray\u0131 <code>7.0<\/code> olarak de\u011fi\u015ftirmelisiniz.<\/li>\n<li><code>x86_64<\/code>: Sistem mimarisini belirtir.<\/li>\n<\/ul>\n<\/li>\n<li><code>gpgcheck=1<\/code>: Paketlerin GPG anahtar\u0131 ile imzalan\u0131p imzalanmad\u0131\u011f\u0131n\u0131 kontrol etmesini sa\u011flar. Bu, indirilen paketlerin b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc ve g\u00fcvenli\u011fini do\u011frular.<\/li>\n<li><code>enabled=1<\/code>: Bu deponun <code>yum<\/code> taraf\u0131ndan kullan\u0131labilir oldu\u011funu belirtir.<\/li>\n<li><code>gpgkey=https:\/\/www.mongodb.org\/static\/pgp\/server-6.0.asc<\/code>: Paketleri imzalamak i\u00e7in kullan\u0131lan GPG anahtar\u0131n\u0131n URL&#8217;sidir.<\/li>\n<\/ul>\n<p>Depo dosyas\u0131n\u0131 olu\u015fturduktan sonra, <code>yum<\/code> \u00f6nbelle\u011fini temizleyerek yeni deponun tan\u0131nmas\u0131n\u0131 sa\u011flayabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo yum clean all<\/code><\/pre>\n<p>Art\u0131k <code>yum<\/code> paket y\u00f6neticisi MongoDB paketlerini bulabilir ve kurabilir durumda olmal\u0131d\u0131r.<\/p>\n<h3>MongoDB Kurulumu<\/h3>\n<p>MongoDB deposunu sisteminize ekledikten sonra, <code>yum<\/code> komutunu kullanarak MongoDB&#8217;nin t\u00fcm gerekli bile\u015fenlerini kurabilirsiniz. MongoDB Community Edition, <code>mongodb-org<\/code> meta paketi arac\u0131l\u0131\u011f\u0131yla kurulur. Bu meta paket, MongoDB sunucusu, kabuk ve di\u011fer yard\u0131mc\u0131 programlar\u0131 i\u00e7eren birden fazla paketi i\u00e7erir.<\/p>\n<h4><code>yum install mongodb-org<\/code> Komutu<\/h4>\n<p>A\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131rarak MongoDB Community Edition&#8217;\u0131 kurun:<\/p>\n<pre><code class=\"language-bash\">sudo yum install -y mongodb-org<\/code><\/pre>\n<p>Bu komut, <code>mongodb-org<\/code> meta paketini ve onun ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 kuracakt\u0131r. Kurulacak ba\u015fl\u0131ca paketler \u015funlard\u0131r:<\/p>\n<ul>\n<li><code>mongodb-org-server<\/code>: MongoDB sunucu daemon&#8217;\u0131n\u0131 (<code>mongod<\/code>) i\u00e7erir.<\/li>\n<li><code>mongodb-org-mongos<\/code>: MongoDB Shard Router&#8217;\u0131 i\u00e7erir (sharding i\u00e7in kullan\u0131l\u0131r).<\/li>\n<li><code>mongodb-org-shell<\/code>: MongoDB kabu\u011funu (<code>mongo<\/code>) i\u00e7erir, bu kabuk ile veritaban\u0131 ile etkile\u015fim kurabilirsiniz.<\/li>\n<li><code>mongodb-org-tools<\/code>: MongoDB yard\u0131mc\u0131 programlar\u0131n\u0131 (\u00f6rne\u011fin <code>mongodump<\/code>, <code>mongorestore<\/code>, <code>mongoimport<\/code>, <code>mongoexport<\/code>) i\u00e7erir.<\/li>\n<\/ul>\n<p>Kurulum s\u0131ras\u0131nda, <code>yum<\/code> size paketlerin listesini ve disk alan\u0131 kullan\u0131m\u0131n\u0131 g\u00f6sterecektir. <code>-y<\/code> bayra\u011f\u0131 sayesinde herhangi bir onay istenmeden kurulum otomatik olarak tamamlanacakt\u0131r.<\/p>\n<h4>Kurulum Sonras\u0131 Do\u011frulama<\/h4>\n<p>Kurulum tamamland\u0131ktan sonra, MongoDB&#8217;nin do\u011fru bir \u015fekilde kuruldu\u011fundan emin olmak i\u00e7in birka\u00e7 kontrol yapabilirsiniz. \u00d6rne\u011fin, <code>mongod<\/code> ve <code>mongo<\/code> komutlar\u0131n\u0131n mevcut olup olmad\u0131\u011f\u0131n\u0131 kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">mongod --version\nmongo --version<\/code><\/pre>\n<p>Bu komutlar, kurulu MongoDB s\u00fcr\u00fcm\u00fcn\u00fc ve di\u011fer ilgili bilgileri g\u00f6stermelidir. E\u011fer komutlar bulunamazsa veya hata verirse, kurulumda bir sorun olabilir ve ad\u0131mlar\u0131 tekrar g\u00f6zden ge\u00e7irmeniz gerekebilir.<\/p>\n<p>Varsay\u0131lan olarak, MongoDB&#8217;nin veri dizini <code>\/var\/lib\/mongo<\/code> ve log dizini <code>\/var\/log\/mongodb<\/code> olarak ayarlan\u0131r. Bu dizinlerin otomatik olarak olu\u015fturuldu\u011funu ve <code>mongod<\/code> kullan\u0131c\u0131s\u0131n\u0131n bunlara eri\u015fim izinlerine sahip oldu\u011funu kontrol edebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">ls -ld \/var\/lib\/mongo\nls -ld \/var\/log\/mongodb<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da genellikle <code>mongod<\/code> kullan\u0131c\u0131s\u0131 ve grubunun bu dizinlerin sahibi oldu\u011fu g\u00f6r\u00fclmelidir. Bu, MongoDB servisinin sorunsuz \u00e7al\u0131\u015fmas\u0131 i\u00e7in \u00f6nemlidir.<\/p>\n<h3>MongoDB Servisini Y\u00f6netme<\/h3>\n<p>MongoDB ba\u015far\u0131yla kurulduktan sonra, servis y\u00f6netimi i\u00e7in <code>systemd<\/code> kullanaca\u011f\u0131z. <code>systemd<\/code>, CentOS 7&#8217;de sistem ve servis y\u00f6neticisidir ve servisleri ba\u015flatma, durdurma, yeniden ba\u015flatma ve durumlar\u0131n\u0131 kontrol etme gibi i\u015flemleri kolayla\u015ft\u0131r\u0131r.<\/p>\n<h4>Servisi Ba\u015flatma<\/h4>\n<p>MongoDB servisini ba\u015flatmak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl start mongod<\/code><\/pre>\n<p>Bu komut, <code>mongod<\/code> daemon&#8217;\u0131n\u0131 ba\u015flat\u0131r ve MongoDB sunucusunun \u00e7al\u0131\u015fmaya ba\u015flamas\u0131n\u0131 sa\u011flar.<\/p>\n<h4>Servisi Otomatik Ba\u015flatma<\/h4>\n<p>Sistemin yeniden ba\u015flat\u0131lmas\u0131 durumunda MongoDB servisinin otomatik olarak ba\u015flamas\u0131n\u0131 sa\u011flamak i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl enable mongod<\/code><\/pre>\n<p>Bu komut, <code>mongod<\/code> servisi i\u00e7in bir <code>systemd<\/code> sembolik ba\u011flant\u0131s\u0131 olu\u015fturur ve sistem \u00f6ny\u00fcklendi\u011finde servisin otomatik olarak ba\u015flat\u0131lmas\u0131n\u0131 garanti eder.<\/p>\n<h4>Servis Durumunu Kontrol Etme<\/h4>\n<p>MongoDB servisinin \u00e7al\u0131\u015f\u0131p \u00e7al\u0131\u015fmad\u0131\u011f\u0131n\u0131, durumunu ve son log mesajlar\u0131n\u0131 kontrol etmek i\u00e7in a\u015fa\u011f\u0131daki komutu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status mongod<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da <code>Active: active (running)<\/code> ifadesini g\u00f6rmeniz, servisin ba\u015far\u0131l\u0131 bir \u015fekilde \u00e7al\u0131\u015ft\u0131\u011f\u0131 anlam\u0131na gelir. Ayr\u0131ca, servisin PID&#8217;si (Process ID), bellek kullan\u0131m\u0131 ve son log girdileri gibi faydal\u0131 bilgiler de g\u00f6sterilir.<\/p>\n<h4>Servisi Durdurma ve Yeniden Ba\u015flatma<\/h4>\n<p>Herhangi bir yap\u0131land\u0131rma de\u011fi\u015fikli\u011fi yapt\u0131ktan sonra veya sorun giderme amac\u0131yla servisi durdurman\u0131z veya yeniden ba\u015flatman\u0131z gerekebilir:<\/p>\n<ul>\n<li><strong>Servisi Durdurma:<\/strong>\n<pre><code class=\"language-bash\">sudo systemctl stop mongod<\/code><\/pre>\n<p>Bu komut, MongoDB sunucusunu g\u00fcvenli bir \u015fekilde kapat\u0131r.<\/p>\n<\/li>\n<li><strong>Servisi Yeniden Ba\u015flatma:<\/strong>\n<pre><code class=\"language-bash\">sudo systemctl restart mongod<\/code><\/pre>\n<p>Bu komut, servisi durdurur ve ard\u0131ndan tekrar ba\u015flat\u0131r. Yap\u0131land\u0131rma dosyalar\u0131nda yapt\u0131\u011f\u0131n\u0131z de\u011fi\u015fikliklerin etkinle\u015fmesi i\u00e7in genellikle servisi yeniden ba\u015flatman\u0131z gerekir.<\/p>\n<\/li>\n<\/ul>\n<p>Bu komutlarla MongoDB servisinin ya\u015fam d\u00f6ng\u00fcs\u00fcn\u00fc kolayca y\u00f6netebilirsiniz. Servisin d\u00fczg\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131ndan emin olmak i\u00e7in her zaman <code>systemctl status mongod<\/code> komutunu kullanmay\u0131 unutmay\u0131n.<\/p>\n<h3>MongoDB Yap\u0131land\u0131rmas\u0131 (Configuration)<\/h3>\n<p>MongoDB&#8217;nin davran\u0131\u015f\u0131n\u0131 ve \u00e7al\u0131\u015fma \u015feklini \u00f6zelle\u015ftirmek i\u00e7in yap\u0131land\u0131rma dosyalar\u0131n\u0131 d\u00fczenlemeniz gerekir. Varsay\u0131lan yap\u0131land\u0131rma dosyas\u0131 CentOS 7&#8217;de <code>\/etc\/mongod.conf<\/code> konumundad\u0131r. Bu dosya, YAML format\u0131nda yaz\u0131lm\u0131\u015ft\u0131r ve \u00e7e\u015fitli ayarlar\u0131 i\u00e7erir. Bu b\u00f6l\u00fcmde, en \u00f6nemli yap\u0131land\u0131rma parametrelerini inceleyece\u011fiz ve gerekti\u011finde nas\u0131l de\u011fi\u015ftirece\u011finizi g\u00f6sterece\u011fiz.<\/p>\n<p>Yap\u0131land\u0131rma dosyas\u0131n\u0131 bir metin d\u00fczenleyici ile a\u00e7\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/mongod.conf<\/code><\/pre>\n<p>\u0130\u015fte <code>\/etc\/mongod.conf<\/code> dosyas\u0131nda s\u0131k\u00e7a kar\u015f\u0131la\u015f\u0131lan ve ayarlanmas\u0131 gerekebilecek baz\u0131 b\u00f6l\u00fcmler:<\/p>\n<h4><code>systemLog<\/code> B\u00f6l\u00fcm\u00fc<\/h4>\n<p>Bu b\u00f6l\u00fcm, MongoDB&#8217;nin log (g\u00fcnl\u00fck) dosyalar\u0131n\u0131n nerede tutulaca\u011f\u0131n\u0131 ve nas\u0131l kaydedilece\u011fini belirler.<\/p>\n<pre><code class=\"language-yaml\">systemLog:\n  destination: file\n  logAppend: true\n  path: \/var\/log\/mongodb\/mongod.log<\/code><\/pre>\n<ul>\n<li><code>destination: file<\/code>: Loglar\u0131n bir dosyaya yaz\u0131laca\u011f\u0131n\u0131 belirtir. Di\u011fer se\u00e7enek <code>syslog<\/code> olabilir.<\/li>\n<li><code>logAppend: true<\/code>: Mevcut log dosyas\u0131n\u0131n \u00fczerine yazmak yerine, yeni loglar\u0131n dosyan\u0131n sonuna eklenmesini sa\u011flar. Bu, eski log verilerini korumak i\u00e7in \u00f6nemlidir.<\/li>\n<li><code>path: \/var\/log\/mongodb\/mongod.log<\/code>: Log dosyas\u0131n\u0131n tam yolunu belirtir. Bu varsay\u0131lan de\u011fer genellikle uygun olacakt\u0131r.<\/li>\n<\/ul>\n<h4><code>storage<\/code> B\u00f6l\u00fcm\u00fc<\/h4>\n<p>Bu b\u00f6l\u00fcm, MongoDB&#8217;nin veri dosyalar\u0131n\u0131 nerede depolayaca\u011f\u0131n\u0131 ve depolama motorunu belirler.<\/p>\n<pre><code class=\"language-yaml\">storage:\n  dbPath: \/var\/lib\/mongo\n  journal:\n    enabled: true\n<h2>engine: wiredTiger<\/code><\/pre>\n<\/h2>\n<ul>\n<li><code>dbPath: \/var\/lib\/mongo<\/code>: MongoDB&#8217;nin t\u00fcm veri dosyalar\u0131n\u0131 (koleksiyonlar, indeksler vb.) depolayaca\u011f\u0131 dizini belirtir. Bu dizini farkl\u0131 bir konuma ta\u015f\u0131mak isterseniz, yeni dizini olu\u015fturman\u0131z ve <code>mongod<\/code> kullan\u0131c\u0131s\u0131na gerekli izinleri vermeniz gerekir.<\/li>\n<li><code>journal.enabled: true<\/code>: G\u00fcnl\u00fckleme (journaling) \u00f6zelli\u011finin etkin oldu\u011funu belirtir. G\u00fcnl\u00fckleme, beklenmedik kapanmalar durumunda veri b\u00fct\u00fcnl\u00fc\u011f\u00fcn\u00fc sa\u011flamak i\u00e7in \u00f6nemlidir ve varsay\u0131lan olarak etkindir.<\/li>\n<li><code>engine: wiredTiger<\/code>: MongoDB 3.2 ve sonraki s\u00fcr\u00fcmlerinde varsay\u0131lan depolama motoru WiredTiger&#8217;d\u0131r. Genellikle bu ayar\u0131 de\u011fi\u015ftirmeye gerek yoktur.<\/li>\n<\/ul>\n<h4><code>processManagement<\/code> B\u00f6l\u00fcm\u00fc<\/h4>\n<p>Bu b\u00f6l\u00fcm, MongoDB i\u015fleminin y\u00f6netimiyle ilgili ayarlar\u0131 i\u00e7erir.<\/p>\n<pre><code class=\"language-yaml\">processManagement:\n  fork: true\n  pidFilePath: \/var\/run\/mongodb\/mongod.pid<\/code><\/pre>\n<ul>\n<li><code>fork: true<\/code>: MongoDB&#8217;nin arka planda bir daemon olarak \u00e7al\u0131\u015fmas\u0131n\u0131 sa\u011flar. Bu, <code>systemd<\/code> ile y\u00f6netilirken genellikle otomatik olarak ayarlan\u0131r.<\/li>\n<li><code>pidFilePath: \/var\/run\/mongodb\/mongod.pid<\/code>: MongoDB s\u00fcrecinin PID (Process ID) numaras\u0131n\u0131 i\u00e7eren dosyan\u0131n yolunu belirtir.<\/li>\n<\/ul>\n<h4><code>net<\/code> B\u00f6l\u00fcm\u00fc<\/h4>\n<p>Bu b\u00f6l\u00fcm, MongoDB&#8217;nin a\u011f ba\u011flant\u0131lar\u0131yla ilgili ayarlar\u0131n\u0131 i\u00e7erir. Buras\u0131 en s\u0131k de\u011fi\u015ftirilen b\u00f6l\u00fcmlerden biridir.<\/p>\n<pre><code class=\"language-yaml\">net:\n  port: 27017\n  bindIp: 127.0.0.1<\/code><\/pre>\n<ul>\n<li><code>port: 27017<\/code>: MongoDB&#8217;nin dinleyece\u011fi port numaras\u0131n\u0131 belirtir. Varsay\u0131lan port 27017&#8217;dir.<\/li>\n<li><code>bindIp: 127.0.0.1<\/code>: MongoDB&#8217;nin hangi IP adresleri \u00fczerinden gelen ba\u011flant\u0131lar\u0131 kabul edece\u011fini belirtir.\n<ul>\n<li><strong><code>127.0.0.1<\/code> (varsay\u0131lan):<\/strong> Yaln\u0131zca yerel makineden (sunucunun kendisinden) gelen ba\u011flant\u0131lar\u0131 kabul eder. Bu, en g\u00fcvenli ayard\u0131r ve MongoDB&#8217;ye d\u0131\u015far\u0131dan eri\u015fim gerekmiyorsa bu \u015fekilde b\u0131rak\u0131lmal\u0131d\u0131r.<\/li>\n<li><strong><code>0.0.0.0<\/code>:<\/strong> T\u00fcm a\u011f aray\u00fczlerinden gelen ba\u011flant\u0131lar\u0131 kabul eder. Bu ayar, MongoDB&#8217;ye d\u0131\u015far\u0131dan eri\u015fim sa\u011flamak i\u00e7in gereklidir ancak g\u00fcvenlik riskleri ta\u015f\u0131r. Bu durumda, g\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131n do\u011fru yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131ndan emin olmal\u0131s\u0131n\u0131z.<\/li>\n<li><strong><code>192.168.1.100, 10.0.0.5<\/code>:<\/strong> Belirli IP adreslerinden gelen ba\u011flant\u0131lar\u0131 kabul eder. Daha g\u00fcvenli bir uzaktan eri\u015fim sa\u011flamak i\u00e7in belirli istemci IP adreslerini veya a\u011flar\u0131 virg\u00fclle ay\u0131rarak listeleyebilirsiniz.<\/li>\n<\/ul>\n<p>E\u011fer MongoDB&#8217;ye uzaktan eri\u015fim sa\u011flamak istiyorsan\u0131z ve g\u00fcvenlik duvar\u0131 ayarlar\u0131n\u0131 yapt\u0131ysan\u0131z, <code>bindIp<\/code> de\u011ferini sunucunuzun d\u0131\u015far\u0131dan eri\u015filebilir IP adresine veya <code>0.0.0.0<\/code> olarak de\u011fi\u015ftirmelisiniz. \u00d6rne\u011fin, t\u00fcm aray\u00fczlerden eri\u015fime izin vermek i\u00e7in:<\/p>\n<pre><code class=\"language-yaml\">net:\n          port: 27017\n          bindIp: 0.0.0.0<\/code><\/pre>\n<p><strong>UYARI:<\/strong> <code>bindIp: 0.0.0.0<\/code> ayar\u0131n\u0131 yaparsan\u0131z, sunucunuzun g\u00fcvenlik duvar\u0131n\u0131n 27017 portunu yaln\u0131zca g\u00fcvenilir IP adreslerine a\u00e7t\u0131\u011f\u0131ndan veya ba\u015fka g\u00fcvenlik \u00f6nlemleri ald\u0131\u011f\u0131n\u0131zdan (\u00f6rne\u011fin kimlik do\u011frulama) emin olun. Aksi takdirde, veritaban\u0131n\u0131z internete a\u00e7\u0131k ve savunmas\u0131z kalabilir.<\/p>\n<\/li>\n<\/ul>\n<h4><code>security<\/code> B\u00f6l\u00fcm\u00fc<\/h4>\n<p>Bu b\u00f6l\u00fcm, MongoDB&#8217;nin g\u00fcvenlik ayarlar\u0131n\u0131 i\u00e7erir. En \u00f6nemli ayar, kimlik do\u011frulaman\u0131n (authentication) etkinle\u015ftirilmesidir.<\/p>\n<pre><code class=\"language-yaml\">security:\n  authorization: enabled<\/code><\/pre>\n<ul>\n<li><code>authorization: enabled<\/code>: Bu ayar\u0131 etkinle\u015ftirmek, MongoDB&#8217;ye ba\u011flanmak i\u00e7in kullan\u0131c\u0131 ad\u0131 ve parola gerektirecektir. Bu, \u00fcretim ortamlar\u0131nda kesinlikle \u00f6nerilen bir g\u00fcvenlik \u00f6nlemidir. Varsay\u0131lan olarak bu ayar yorum sat\u0131r\u0131 halindedir veya <code>disabled<\/code> durumundad\u0131r, yani kimlik do\u011frulama olmadan herkes ba\u011flanabilir.<\/li>\n<\/ul>\n<p>Yap\u0131land\u0131rma dosyas\u0131nda de\u011fi\u015fiklik yapt\u0131ktan sonra, dosyay\u0131 kaydedin ve MongoDB servisini yeniden ba\u015flat\u0131n ki de\u011fi\u015fiklikler etkinle\u015fsin:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart mongod\nsudo systemctl status mongod<\/code><\/pre>\n<p>Servisin sorunsuz bir \u015fekilde yeniden ba\u015flad\u0131\u011f\u0131ndan emin olun. Herhangi bir hata durumunda, log dosyalar\u0131n\u0131 (<code>\/var\/log\/mongodb\/mongod.log<\/code>) kontrol ederek sorunun kayna\u011f\u0131n\u0131 belirleyebilirsiniz.<\/p>\n<h3>MongoDB G\u00fcvenli\u011fi<\/h3>\n<p>MongoDB&#8217;nin g\u00fcvenli\u011fini sa\u011flamak, \u00fcretim ortamlar\u0131nda veri b\u00fct\u00fcnl\u00fc\u011f\u00fc ve gizlili\u011fi i\u00e7in kritik \u00f6neme sahiptir. G\u00fcvenlik, yaln\u0131zca veritaban\u0131 sunucusunun kendisiyle ilgili de\u011fil, ayn\u0131 zamanda sunucunun \u00e7al\u0131\u015ft\u0131\u011f\u0131 i\u015fletim sistemi ve a\u011f ortam\u0131yla da ilgilidir. \u0130\u015fte MongoDB kurulumunuzu g\u00fcvence alt\u0131na almak i\u00e7in atman\u0131z gereken temel ad\u0131mlar:<\/p>\n<h4>Firewall (G\u00fcvenlik Duvar\u0131) Ayarlar\u0131<\/h4>\n<p>Daha \u00f6nce de belirtildi\u011fi gibi, g\u00fcvenlik duvar\u0131, sunucunuza gelen ve giden a\u011f trafi\u011fini kontrol eden ilk savunma hatt\u0131d\u0131r. MongoDB&#8217;nin varsay\u0131lan portu 27017&#8217;dir. Bu portu yaln\u0131zca g\u00fcvenilir kaynaklardan gelen ba\u011flant\u0131lara a\u00e7mal\u0131s\u0131n\u0131z.<\/p>\n<ul>\n<li><strong>Yaln\u0131zca Yerel Eri\u015fim:<\/strong> E\u011fer MongoDB&#8217;ye yaln\u0131zca sunucunun kendisinden eri\u015filecekse (\u00f6rne\u011fin, ayn\u0131 sunucuda \u00e7al\u0131\u015fan bir uygulama), 27017 portunu g\u00fcvenlik duvar\u0131nda a\u00e7maya gerek yoktur. Ayr\u0131ca, <code>\/etc\/mongod.conf<\/code> dosyas\u0131ndaki <code>bindIp<\/code> ayar\u0131n\u0131 <code>127.0.0.1<\/code> olarak b\u0131rak\u0131n.<\/li>\n<li><strong>Belirli IP Adreslerinden Eri\u015fim:<\/strong> E\u011fer belirli bir IP adresinden veya IP aral\u0131\u011f\u0131ndan eri\u015fim gerekiyorsa, g\u00fcvenlik duvar\u0131nda bu IP adreslerine izin verin.\n<pre><code class=\"language-bash\">sudo firewall-cmd --zone=public --add-rich-rule='rule family=\"ipv4\" source address=\"192.168.1.0\/24\" port port=\"27017\" protocol=\"tcp\" accept' --permanent\nsudo firewall-cmd --reload<\/code><\/pre>\n<p>Bu \u00f6rnek, 192.168.1.0\/24 a\u011f\u0131na 27017 portu \u00fczerinden eri\u015fim izni verir. <code>bindIp<\/code> ayar\u0131n\u0131 da sunucunuzun d\u0131\u015f IP adresine veya <code>0.0.0.0<\/code> olarak de\u011fi\u015ftirmelisiniz.<\/p>\n<\/li>\n<li><strong>T\u00fcm IP Adreslerinden Eri\u015fim (Ka\u00e7\u0131n\u0131n!):<\/strong> <code>bindIp: 0.0.0.0<\/code> ayar\u0131n\u0131 yapmak ve g\u00fcvenlik duvar\u0131nda 27017 portunu herkese a\u00e7mak, veritaban\u0131n\u0131z\u0131 internete tamamen a\u00e7\u0131k hale getirir ve ciddi g\u00fcvenlik riskleri olu\u015fturur. Bu, yaln\u0131zca test ortamlar\u0131nda veya \u00e7ok s\u0131k\u0131 a\u011f k\u0131s\u0131tlamalar\u0131 alt\u0131ndaki \u00f6zel durumlarda d\u00fc\u015f\u00fcn\u00fclmelidir.<\/li>\n<\/ul>\n<h4>Yetkilendirme (Authentication) Etkinle\u015ftirme<\/h4>\n<p>MongoDB&#8217;ye ba\u011flanmak i\u00e7in kullan\u0131c\u0131 ad\u0131 ve parola gereksinimini etkinle\u015ftirmek, en \u00f6nemli g\u00fcvenlik ad\u0131mlar\u0131ndan biridir. Varsay\u0131lan olarak, MongoDB kimlik do\u011frulama olmadan \u00e7al\u0131\u015f\u0131r, bu da herkesin veritaban\u0131na ba\u011flanabilece\u011fi anlam\u0131na gelir. Yetkilendirme etkinle\u015ftirildi\u011finde, kullan\u0131c\u0131lar\u0131n belirli roller ve izinlerle olu\u015fturulmas\u0131 gerekir.<\/p>\n<h5>1. Y\u00f6netici Kullan\u0131c\u0131 Olu\u015fturma<\/h5>\n<p>Kimlik do\u011frulamay\u0131 etkinle\u015ftirmeden \u00f6nce, bir y\u00f6netici kullan\u0131c\u0131s\u0131 olu\u015fturman\u0131z gerekir. Aksi takdirde, kimlik do\u011frulama etkinle\u015ftirildikten sonra veritaban\u0131na eri\u015femezsiniz.<\/p>\n<p>\u0130lk olarak, <code>mongod.conf<\/code> dosyas\u0131nda <code>security.authorization<\/code> ayar\u0131 <strong>devre d\u0131\u015f\u0131 b\u0131rak\u0131lm\u0131\u015fken<\/strong> (veya yorum sat\u0131r\u0131 halindeyken) MongoDB&#8217;ye ba\u011flan\u0131n:<\/p>\n<pre><code class=\"language-bash\">mongo<\/code><\/pre>\n<p>Ard\u0131ndan, <code>admin<\/code> veritaban\u0131na ge\u00e7in ve y\u00f6netici kullan\u0131c\u0131n\u0131z\u0131 olu\u015fturun:<\/p>\n<pre><code class=\"language-javascript\">use admin\ndb.createUser(\n   {\n     user: \"adminUser\",\n     pwd: passwordPrompt(), \/\/ Parolay\u0131 g\u00fcvenli bir \u015fekilde girmenizi sa\u011flar\n     roles: [ { role: \"userAdminAnyDatabase\", db: \"admin\" }, \"readWriteAnyDatabase\" ]\n   }\n)<\/code><\/pre>\n<ul>\n<li><code>user: \"adminUser\"<\/code>: Olu\u015fturaca\u011f\u0131n\u0131z kullan\u0131c\u0131n\u0131n ad\u0131.<\/li>\n<li><code>pwd: passwordPrompt()<\/code>: Parolay\u0131 komut sat\u0131r\u0131ndan g\u00fcvenli bir \u015fekilde girmenizi ister.<\/li>\n<li><code>roles<\/code>: Kullan\u0131c\u0131n\u0131n sahip olaca\u011f\u0131 rolleri tan\u0131mlar.\n<ul>\n<li><code>userAdminAnyDatabase<\/code>: T\u00fcm veritabanlar\u0131 \u00fczerinde kullan\u0131c\u0131lar\u0131 ve rolleri y\u00f6netme yetkisi verir.<\/li>\n<li><code>readWriteAnyDatabase<\/code>: T\u00fcm veritabanlar\u0131 \u00fczerinde okuma ve yazma yetkisi verir.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p>Kullan\u0131c\u0131 olu\u015fturulduktan sonra <code>exit<\/code> yazarak <code>mongo<\/code> kabu\u011fundan \u00e7\u0131k\u0131n.<\/p>\n<h5>2. <code>mongod.conf<\/code> Dosyas\u0131nda Yetkilendirmeyi Etkinle\u015ftirme<\/h5>\n<p>\u015eimdi <code>\/etc\/mongod.conf<\/code> dosyas\u0131n\u0131 a\u00e7\u0131n ve <code>security<\/code> b\u00f6l\u00fcm\u00fcn\u00fcn alt\u0131ndaki <code>authorization<\/code> ayar\u0131n\u0131 etkinle\u015ftirin:<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/mongod.conf<\/code><\/pre>\n<p>A\u015fa\u011f\u0131daki sat\u0131r\u0131 bulun ve yorum i\u015faretini kald\u0131r\u0131n veya ekleyin:<\/p>\n<pre><code class=\"language-yaml\">security:\n  authorization: enabled<\/code><\/pre>\n<p>Dosyay\u0131 kaydedin ve kapat\u0131n.<\/p>\n<h5>3. Servisi Yeniden Ba\u015flatma<\/h5>\n<p>De\u011fi\u015fikliklerin etkinle\u015fmesi i\u00e7in MongoDB servisini yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart mongod<\/code><\/pre>\n<h5>4. Kullan\u0131c\u0131 ile Ba\u011flanma<\/h5>\n<p>Art\u0131k MongoDB&#8217;ye ba\u011flanmak i\u00e7in olu\u015fturdu\u011funuz y\u00f6netici kullan\u0131c\u0131s\u0131n\u0131 kullanman\u0131z gerekecek:<\/p>\n<pre><code class=\"language-bash\">mongo -u adminUser -p --authenticationDatabase admin<\/code><\/pre>\n<ul>\n<li><code>-u adminUser<\/code>: Kullan\u0131c\u0131 ad\u0131n\u0131 belirtir.<\/li>\n<li><code>-p<\/code>: Parola girmenizi ister.<\/li>\n<li><code>--authenticationDatabase admin<\/code>: Kullan\u0131c\u0131n\u0131n hangi veritaban\u0131nda tan\u0131mland\u0131\u011f\u0131n\u0131 belirtir (bu durumda <code>admin<\/code> veritaban\u0131).<\/li>\n<\/ul>\n<p>Do\u011fru parolay\u0131 girdikten sonra <code>mongo<\/code> kabu\u011funa ba\u015far\u0131yla ba\u011flanmal\u0131s\u0131n\u0131z. E\u011fer ba\u011flanamazsan\u0131z, log dosyalar\u0131n\u0131 kontrol edin ve kullan\u0131c\u0131 ad\u0131\/parola veya yap\u0131land\u0131rma ayarlar\u0131n\u0131z\u0131 g\u00f6zden ge\u00e7irin.<\/p>\n<h4>IP K\u0131s\u0131tlamalar\u0131 (bindIp)<\/h4>\n<p><code>\/etc\/mongod.conf<\/code> dosyas\u0131ndaki <code>net.bindIp<\/code> ayar\u0131, MongoDB&#8217;nin hangi a\u011f aray\u00fczlerinden ba\u011flant\u0131lar\u0131 kabul edece\u011fini belirler. Bu ayar\u0131 do\u011fru yap\u0131land\u0131rmak, yetkisiz eri\u015fimi engellemek i\u00e7in g\u00fcvenlik duvar\u0131 ayarlar\u0131yla birlikte \u00e7al\u0131\u015f\u0131r. Varsay\u0131lan olarak <code>127.0.0.1<\/code> (localhost) olarak ayarlanm\u0131\u015ft\u0131r, bu da yaln\u0131zca ayn\u0131 sunucu \u00fczerindeki uygulamalar\u0131n ba\u011flanabilece\u011fi anlam\u0131na gelir. Uzaktan eri\u015fim gerekiyorsa, bu de\u011feri belirli IP adreslerine veya a\u011flara k\u0131s\u0131tlay\u0131n.<\/p>\n<h4>SSL\/TLS Kullan\u0131m\u0131<\/h4>\n<p>\u00dcretim ortamlar\u0131nda, MongoDB istemcileri ile sunucu aras\u0131ndaki ileti\u015fimi \u015fifrelemek i\u00e7in SSL\/TLS kullan\u0131lmas\u0131 \u015fiddetle tavsiye edilir. Bu, a\u011f \u00fczerinden g\u00f6nderilen hassas verilerin dinlenmesini (eavesdropping) \u00f6nler. SSL\/TLS yap\u0131land\u0131rmas\u0131, sertifika yetkilileri, sertifikalar ve anahtarlar gerektirdi\u011finden daha karma\u015f\u0131k bir konudur ve bu makalenin kapsam\u0131 d\u0131\u015f\u0131ndad\u0131r. Ancak, ciddi bir g\u00fcvenlik \u00f6nlemi olarak akl\u0131n\u0131zda bulundurmal\u0131s\u0131n\u0131z.<\/p>\n<h3>MongoDB&#8217;ye Ba\u011flanma ve Temel \u0130\u015flemler<\/h3>\n<p>MongoDB&#8217;yi kurup temel g\u00fcvenlik ayarlar\u0131n\u0131 yapt\u0131ktan sonra, veritaban\u0131 ile etkile\u015fim kurmaya ba\u015flayabilirsiniz. MongoDB, etkile\u015fimli bir JavaScript kabu\u011fu olan <code>mongo<\/code> ile gelir. Bu kabuk, veritaban\u0131 \u00fczerinde CRUD (Create, Read, Update, Delete) i\u015flemleri yapman\u0131za ve y\u00f6netim g\u00f6revlerini ger\u00e7ekle\u015ftirmenize olanak tan\u0131r.<\/p>\n<h4><code>mongo<\/code> Kabu\u011fu ile Ba\u011flanma<\/h4>\n<p>E\u011fer kimlik do\u011frulama etkin de\u011filse, do\u011frudan ba\u011flanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\">mongo<\/code><\/pre>\n<p>E\u011fer kimlik do\u011frulama etkinse, kullan\u0131c\u0131 ad\u0131 ve parola ile ba\u011flanman\u0131z gerekir (\u00f6nceki b\u00f6l\u00fcmde olu\u015fturdu\u011fumuz <code>adminUser<\/code> ile \u00f6rnek):<\/p>\n<pre><code class=\"language-bash\">mongo -u adminUser -p --authenticationDatabase admin<\/code><\/pre>\n<p>Ba\u015far\u0131l\u0131 bir \u015fekilde ba\u011fland\u0131\u011f\u0131n\u0131zda, <code>><\/code> ile ba\u015flayan bir komut istemi g\u00f6receksiniz.<\/p>\n<h4>Veritaban\u0131 Olu\u015fturma\/Se\u00e7me<\/h4>\n<p>MongoDB&#8217;de bir veritaban\u0131 olu\u015fturmak i\u00e7in <code>use<\/code> komutunu kullanman\u0131z yeterlidir. E\u011fer belirtilen veritaban\u0131 yoksa, otomatik olarak olu\u015fturulur. \u00d6rne\u011fin, <code>mydatabase<\/code> ad\u0131nda bir veritaban\u0131 olu\u015fturmak veya se\u00e7mek i\u00e7in:<\/p>\n<pre><code class=\"language-javascript\">use mydatabase<\/code><\/pre>\n<p>Hangi veritaban\u0131nda oldu\u011funuzu kontrol etmek i\u00e7in:<\/p>\n<pre><code class=\"language-javascript\">db<\/code><\/pre>\n<p>Mevcut veritabanlar\u0131n\u0131 listelemek i\u00e7in (i\u00e7inde en az bir koleksiyon ve belge olan veritabanlar\u0131 g\u00f6r\u00fcn\u00fcr):<\/p>\n<pre><code class=\"language-javascript\">show dbs<\/code><\/pre>\n<h4>Koleksiyon Olu\u015fturma<\/h4>\n<p>MongoDB&#8217;de koleksiyonlar, veritaban\u0131na ilk belge eklendi\u011finde otomatik olarak olu\u015fturulur. Ancak, isterseniz <code>createCollection()<\/code> metodunu kullanarak da a\u00e7\u0131k\u00e7a bir koleksiyon olu\u015fturabilirsiniz:<\/p>\n<pre><code class=\"language-javascript\">db.createCollection(\"users\")<\/code><\/pre>\n<p>Mevcut koleksiyonlar\u0131 listelemek i\u00e7in:<\/p>\n<pre><code class=\"language-javascript\">show collections<\/code><\/pre>\n<h4>Belge Ekleme (Create)<\/h4>\n<p>Koleksiyonlara belge eklemek i\u00e7in <code>insertOne()<\/code> veya <code>insertMany()<\/code> metodlar\u0131n\u0131 kullanabilirsiniz.<\/p>\n<ul>\n<li><strong>Tek Belge Ekleme:<\/strong>\n<pre><code class=\"language-javascript\">db.users.insertOne(\n           {\n             name: \"Ali Can\",\n             age: 30,\n             email: \"ali.can@example.com\",\n             status: \"active\"\n           }\n        )<\/code><\/pre>\n<\/li>\n<li><strong>Birden Fazla Belge Ekleme:<\/strong>\n<pre><code class=\"language-javascript\">db.users.insertMany([\n           {\n             name: \"Ay\u015fe Y\u0131lmaz\",\n             age: 25,\n             email: \"ayse.yilmaz@example.com\",\n             status: \"active\"\n           },\n           {\n             name: \"Mehmet Demir\",\n             age: 35,\n             email: \"mehmet.demir@example.com\",\n             status: \"inactive\"\n           }\n        ])<\/code><\/pre>\n<\/li>\n<\/ul>\n<h4>Belge Sorgulama (Read)<\/h4>\n<p>Koleksiyonlardaki belgeleri sorgulamak i\u00e7in <code>find()<\/code> metodunu kullanabilirsiniz. <code>find()<\/code> metoduna sorgu kriterleri belirterek belirli belgeleri filtreleyebilirsiniz.<\/p>\n<ul>\n<li><strong>T\u00fcm Belgeleri Sorgulama:<\/strong>\n<pre><code class=\"language-javascript\">db.users.find()<\/code><\/pre>\n<p>Okunabilir bir formatta g\u00f6rmek i\u00e7in <code>pretty()<\/code> metodunu ekleyebilirsiniz:<\/p>\n<pre><code class=\"language-javascript\">db.users.find().pretty()<\/code><\/pre>\n<\/li>\n<li><strong>Belirli Kriterlere G\u00f6re Sorgulama:<\/strong>\n<pre><code class=\"language-javascript\">db.users.find({ age: { $gt: 28 }, status: \"active\" }).pretty()<\/code><\/pre>\n<p>Bu sorgu, ya\u015f\u0131 28&#8217;den b\u00fcy\u00fck ve durumu &#8220;active&#8221; olan kullan\u0131c\u0131lar\u0131 getirir.<\/p>\n<\/li>\n<li><strong>Tek Belge Sorgulama:<\/strong>\n<pre><code class=\"language-javascript\">db.users.findOne({ name: \"Ali Can\" })<\/code><\/pre>\n<p>Bu, belirtilen kritere uyan ilk belgeyi getirir.<\/p>\n<\/li>\n<\/ul>\n<h4>Belge G\u00fcncelleme (Update)<\/h4>\n<p>Belgeleri g\u00fcncellemek i\u00e7in <code>updateOne()<\/code> veya <code>updateMany()<\/code> metodlar\u0131n\u0131 kullanabilirsiniz.<\/p>\n<ul>\n<li><strong>Tek Belge G\u00fcncelleme:<\/strong>\n<pre><code class=\"language-javascript\">db.users.updateOne(\n           { name: \"Ali Can\" },\n           { $set: { age: 31, status: \"pending\" } }\n        )<\/code><\/pre>\n<p>Bu, ad\u0131 &#8220;Ali Can&#8221; olan ilk belgenin <code>age<\/code> ve <code>status<\/code> alanlar\u0131n\u0131 g\u00fcnceller.<\/p>\n<\/li>\n<li><strong>Birden Fazla Belge G\u00fcncelleme:<\/strong>\n<pre><code class=\"language-javascript\">db.users.updateMany(\n           { status: \"inactive\" },\n           { $set: { status: \"archived\" } }\n        )<\/code><\/pre>\n<p>Bu, durumu &#8220;inactive&#8221; olan t\u00fcm belgelerin <code>status<\/code> alan\u0131n\u0131 &#8220;archived&#8221; olarak g\u00fcnceller.<\/p>\n<\/li>\n<\/ul>\n<h4>Belge Silme (Delete)<\/h4>\n<p>Belgeleri silmek i\u00e7in <code>deleteOne()<\/code> veya <code>deleteMany()<\/code> metodlar\u0131n\u0131 kullanabilirsiniz.<\/p>\n<ul>\n<li><strong>Tek Belge Silme:<\/strong>\n<pre><code class=\"language-javascript\">db.users.deleteOne({ name: \"Mehmet Demir\" })<\/code><\/pre>\n<p>Bu, ad\u0131 &#8220;Mehmet Demir&#8221; olan ilk belgeyi siler.<\/p>\n<\/li>\n<li><strong>Birden Fazla Belge Silme:<\/strong>\n<pre><code class=\"language-javascript\">db.users.deleteMany({ status: \"archived\" })<\/code><\/pre>\n<p>Bu, durumu &#8220;archived&#8221; olan t\u00fcm belgeleri siler.<\/p>\n<\/li>\n<li><strong>T\u00fcm Belgeleri Silme (Koleksiyonu Bo\u015faltma):<\/strong>\n<pre><code class=\"language-javascript\">db.users.deleteMany({})<\/code><\/pre>\n<p>Bo\u015f bir filtre ile <code>deleteMany()<\/code>, koleksiyondaki t\u00fcm belgeleri siler.<\/p>\n<\/li>\n<\/ul>\n<h4>Kullan\u0131c\u0131 Listeleme, Rol Atama<\/h4>\n<p>Y\u00f6netimsel g\u00f6revler i\u00e7in, <code>admin<\/code> veritaban\u0131nda kullan\u0131c\u0131lar\u0131 listeleme ve rollerini y\u00f6netme i\u015flemleri de yapabilirsiniz. \u00d6rne\u011fin, mevcut kullan\u0131c\u0131lar\u0131 listelemek i\u00e7in:<\/p>\n<pre><code class=\"language-javascript\">use admin\ndb.getUsers()<\/code><\/pre>\n<p>Bu temel i\u015flemler, MongoDB ile \u00e7al\u0131\u015fmaya ba\u015flaman\u0131z i\u00e7in yeterlidir. Daha karma\u015f\u0131k sorgular ve y\u00f6netim g\u00f6revleri i\u00e7in MongoDB&#8217;nin resmi dok\u00fcmantasyonuna ba\u015fvurabilirsiniz.<\/p>\n<h3>MongoDB&#8217;yi Kald\u0131rma (\u0130ste\u011fe Ba\u011fl\u0131)<\/h3>\n<p>E\u011fer MongoDB&#8217;yi sisteminizden kald\u0131rmak isterseniz, bu ad\u0131mlar\u0131 takip edebilirsiniz. Bu, test ortamlar\u0131n\u0131 temizlemek veya farkl\u0131 bir s\u00fcr\u00fcm\u00fc kurmak istedi\u011finizde faydal\u0131 olabilir.<\/p>\n<h4>Servisi Durdurma<\/h4>\n<p>\u0130lk olarak, MongoDB servisini durdurun ve otomatik ba\u015flat\u0131lmas\u0131n\u0131 devre d\u0131\u015f\u0131 b\u0131rak\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl stop mongod\nsudo systemctl disable mongod<\/code><\/pre>\n<h4>Paketleri Kald\u0131rma<\/h4>\n<p>MongoDB paketlerini sisteminizden kald\u0131rmak i\u00e7in <code>yum remove<\/code> komutunu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo yum remove -y mongodb-org mongodb-org-server mongodb-org-shell mongodb-org-mongos mongodb-org-tools<\/code><\/pre>\n<p>Veya t\u00fcm <code>mongodb-org<\/code> paketlerini tek bir komutla kald\u0131rmak i\u00e7in:<\/p>\n<pre><code class=\"language-bash\">sudo yum remove -y mongodb-org*<\/code><\/pre>\n<p>Bu komut, MongoDB ile ilgili t\u00fcm kurulu paketleri kald\u0131racakt\u0131r. <code>-y<\/code> bayra\u011f\u0131, onay istemeden kald\u0131rma i\u015flemini tamamlar.<\/p>\n<h4>Veri Dizinlerini Silme<\/h4>\n<p>Paketleri kald\u0131rmak, veri dizinlerini ve log dosyalar\u0131n\u0131 otomatik olarak silmez. Bu dizinler, daha sonra tekrar MongoDB kurmak isterseniz eski verilerinizi korumak i\u00e7in b\u0131rak\u0131l\u0131r. E\u011fer t\u00fcm verileri ve loglar\u0131 da silmek istiyorsan\u0131z, bunlar\u0131 manuel olarak kald\u0131rman\u0131z gerekir:<\/p>\n<pre><code class=\"language-bash\">sudo rm -rf \/var\/lib\/mongo\nsudo rm -rf \/var\/log\/mongodb<\/code><\/pre>\n<p><strong>D\u0130KKAT:<\/strong> Bu komutlar, MongoDB&#8217;nin t\u00fcm veri ve log dosyalar\u0131n\u0131 kal\u0131c\u0131 olarak silecektir. Bu i\u015flemi yapmadan \u00f6nce \u00f6nemli verilerinizin yede\u011fini ald\u0131\u011f\u0131n\u0131zdan emin olun.<\/p>\n<h4>Depo Dosyas\u0131n\u0131 Silme<\/h4>\n<p>Son olarak, daha \u00f6nce ekledi\u011finiz MongoDB depo dosyas\u0131n\u0131 da kald\u0131rmak isteyebilirsiniz:<\/p>\n<pre><code class=\"language-bash\">sudo rm \/etc\/yum.repos.d\/mongodb-org-6.0.repo<\/code><\/pre>\n<p>Bu ad\u0131mlar\u0131 tamamlad\u0131ktan sonra MongoDB, CentOS 7 sisteminizden tamamen kald\u0131r\u0131lm\u0131\u015f olacakt\u0131r.<\/p>\n<h3>Sorun Giderme (Troubleshooting)<\/h3>\n<p>MongoDB kurulumu ve yap\u0131land\u0131rmas\u0131 s\u0131ras\u0131nda \u00e7e\u015fitli sorunlarla kar\u015f\u0131la\u015fmak m\u00fcmk\u00fcnd\u00fcr. \u0130\u015fte s\u0131k kar\u015f\u0131la\u015f\u0131lan sorunlar ve olas\u0131 \u00e7\u00f6z\u00fcmleri:<\/p>\n<h4>Servis Ba\u015flat\u0131lam\u0131yor<\/h4>\n<p>MongoDB servisi (<code>mongod<\/code>) ba\u015flat\u0131lam\u0131yorsa, ilk yapman\u0131z gereken log dosyalar\u0131n\u0131 kontrol etmektir. Log dosyalar\u0131, sorunun nedenini anlaman\u0131za yard\u0131mc\u0131 olacak \u00f6nemli bilgiler i\u00e7erir.<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status mongod\nsudo journalctl -u mongod --since \"5 minutes ago\"\nsudo tail -f \/var\/log\/mongodb\/mongod.log<\/code><\/pre>\n<p>S\u0131k kar\u015f\u0131la\u015f\u0131lan nedenler:<\/p>\n<ul>\n<li><strong>Yap\u0131land\u0131rma Dosyas\u0131 Hatas\u0131:<\/strong> <code>\/etc\/mongod.conf<\/code> dosyas\u0131nda YAML format\u0131nda bir hata (\u00f6rne\u011fin, yanl\u0131\u015f girinti, eksik karakter) olabilir. YAML format\u0131n\u0131n bo\u015fluklara kar\u015f\u0131 hassas oldu\u011funu unutmay\u0131n.<\/li>\n<li><strong>Veri Dizini \u0130zinleri:<\/strong> <code>\/var\/lib\/mongo<\/code> veya <code>\/var\/log\/mongodb<\/code> dizinlerinin <code>mongod<\/code> kullan\u0131c\u0131s\u0131 i\u00e7in do\u011fru izinlere sahip olmamas\u0131. <code>sudo chown -R mongod:mongod \/var\/lib\/mongo \/var\/log\/mongodb<\/code> komutuyla izinleri d\u00fczeltebilirsiniz.<\/li>\n<li><strong>Port \u00c7ak\u0131\u015fmas\u0131:<\/strong> MongoDB&#8217;nin dinlemeye \u00e7al\u0131\u015ft\u0131\u011f\u0131 27017 portunun ba\u015fka bir servis taraf\u0131ndan kullan\u0131l\u0131yor olmas\u0131. <code>sudo netstat -tulnp | grep 27017<\/code> komutuyla kontrol edebilirsiniz.<\/li>\n<li><strong>Disk Alan\u0131 Sorunu:<\/strong> Veri dizininin bulundu\u011fu disk b\u00f6l\u00fcm\u00fcnde yeterli bo\u015f alan olmamas\u0131.<\/li>\n<\/ul>\n<h4>Ba\u011flant\u0131 Sorunlar\u0131 (Firewall, bindIp)<\/h4>\n<p>MongoDB&#8217;ye uzaktan ba\u011flanam\u0131yorsan\u0131z, genellikle a\u011f veya yap\u0131land\u0131rma sorunlar\u0131 vard\u0131r:<\/p>\n<ul>\n<li><strong>Firewall Engeli:<\/strong> CentOS 7 sunucunuzdaki g\u00fcvenlik duvar\u0131n\u0131n (firewalld) 27017 portunu kapatm\u0131\u015f olmas\u0131. Daha \u00f6nce belirtildi\u011fi gibi, portu a\u00e7t\u0131\u011f\u0131n\u0131zdan ve g\u00fcvenlik duvar\u0131n\u0131 yeniden y\u00fckledi\u011finizden emin olun.\n<pre><code class=\"language-bash\">sudo firewall-cmd --list-all<\/code><\/pre>\n<p>komutuyla mevcut kurallar\u0131 kontrol edebilirsiniz.<\/p>\n<\/li>\n<li><strong><code>bindIp<\/code> Ayar\u0131:<\/strong> <code>\/etc\/mongod.conf<\/code> dosyas\u0131ndaki <code>net.bindIp<\/code> ayar\u0131n\u0131n yanl\u0131\u015f olmas\u0131. E\u011fer uzaktan eri\u015fim gerekiyorsa, bu de\u011feri <code>0.0.0.0<\/code> veya belirli bir IP adresine ayarlad\u0131\u011f\u0131n\u0131zdan emin olun. De\u011fi\u015fiklikten sonra servisi yeniden ba\u015flatmay\u0131 unutmay\u0131n.<\/li>\n<li><strong>A\u011f Ba\u011flant\u0131s\u0131:<\/strong> \u0130stemci makinenizin sunucuya a\u011f \u00fczerinden eri\u015febildi\u011finden emin olun (ping testi yapabilirsiniz).<\/li>\n<\/ul>\n<h4>Yetkilendirme Hatalar\u0131<\/h4>\n<p>Kimlik do\u011frulama etkinle\u015ftirildi\u011finde ba\u011flanma sorunlar\u0131 ya\u015f\u0131yorsan\u0131z:<\/p>\n<ul>\n<li><strong>Yanl\u0131\u015f Kullan\u0131c\u0131 Ad\u0131\/Parola:<\/strong> En yayg\u0131n neden. Kullan\u0131c\u0131 ad\u0131 ve parolan\u0131n do\u011fru oldu\u011fundan emin olun.<\/li>\n<li><strong>Yanl\u0131\u015f <code>authenticationDatabase<\/code>:<\/strong> <code>mongo<\/code> kabu\u011fu ile ba\u011flan\u0131rken <code>--authenticationDatabase<\/code> parametresini do\u011fru veritaban\u0131na (genellikle <code>admin<\/code>) ayarlad\u0131\u011f\u0131n\u0131zdan emin olun.<\/li>\n","protected":false},"excerpt":{"rendered":"CentOS 7 \u00dczerine MongoDB Kurulumu: Kapsaml\u0131 Bir Rehber\nBu makale, CentOS 7 i\u015fletim sistemi \u00fczerine MongoDB&#8217;nin topluluk s\u00fcr\u00fcm\u00fcn\u00fc (Community","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":[241],"tags":[],"class_list":{"0":"post-36139","1":"post","2":"type-post","3":"status-publish","4":"format-standard","6":"category-linux","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>CentOS 7 \u00dczerine MongoDB Kurulumu: Kapsaml\u0131 Bir Rehber - 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\/centos-7-uzerine-mongodb-kurulumu-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"CentOS 7 \u00dczerine MongoDB Kurulumu: Kapsaml\u0131 Bir Rehber\" \/>\n<meta property=\"og:description\" content=\"CentOS 7 \u00dczerine MongoDB Kurulumu: Kapsaml\u0131 Bir Rehber Bu makale, CentOS 7 i\u015fletim sistemi \u00fczerine MongoDB&#039;nin topluluk s\u00fcr\u00fcm\u00fcn\u00fc (Community\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerine-mongodb-kurulumu-kapsamli-bir-rehber\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-12-08T17:41: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=\"25 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerine-mongodb-kurulumu-kapsamli-bir-rehber\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerine-mongodb-kurulumu-kapsamli-bir-rehber\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"CentOS 7 \u00dczerine MongoDB Kurulumu: Kapsaml\u0131 Bir Rehber\",\"datePublished\":\"2025-12-08T17:41:08+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerine-mongodb-kurulumu-kapsamli-bir-rehber\/\"},\"wordCount\":4402,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"articleSection\":[\"Linux\"],\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerine-mongodb-kurulumu-kapsamli-bir-rehber\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerine-mongodb-kurulumu-kapsamli-bir-rehber\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerine-mongodb-kurulumu-kapsamli-bir-rehber\/\",\"name\":\"CentOS 7 \u00dczerine MongoDB Kurulumu: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-12-08T17:41:08+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerine-mongodb-kurulumu-kapsamli-bir-rehber\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerine-mongodb-kurulumu-kapsamli-bir-rehber\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerine-mongodb-kurulumu-kapsamli-bir-rehber\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"CentOS 7 \u00dczerine MongoDB Kurulumu: Kapsaml\u0131 Bir Rehber\"}]},{\"@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":"CentOS 7 \u00dczerine MongoDB Kurulumu: Kapsaml\u0131 Bir Rehber - 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\/centos-7-uzerine-mongodb-kurulumu-kapsamli-bir-rehber\/","og_locale":"tr_TR","og_type":"article","og_title":"CentOS 7 \u00dczerine MongoDB Kurulumu: Kapsaml\u0131 Bir Rehber","og_description":"CentOS 7 \u00dczerine MongoDB Kurulumu: Kapsaml\u0131 Bir Rehber Bu makale, CentOS 7 i\u015fletim sistemi \u00fczerine MongoDB'nin topluluk s\u00fcr\u00fcm\u00fcn\u00fc (Community","og_url":"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerine-mongodb-kurulumu-kapsamli-bir-rehber\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-12-08T17:41:08+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"25 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerine-mongodb-kurulumu-kapsamli-bir-rehber\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerine-mongodb-kurulumu-kapsamli-bir-rehber\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"CentOS 7 \u00dczerine MongoDB Kurulumu: Kapsaml\u0131 Bir Rehber","datePublished":"2025-12-08T17:41:08+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerine-mongodb-kurulumu-kapsamli-bir-rehber\/"},"wordCount":4402,"commentCount":0,"publisher":{"@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"articleSection":["Linux"],"inLanguage":"tr","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fatihsoysal.com\/blog\/centos-7-uzerine-mongodb-kurulumu-kapsamli-bir-rehber\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerine-mongodb-kurulumu-kapsamli-bir-rehber\/","url":"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerine-mongodb-kurulumu-kapsamli-bir-rehber\/","name":"CentOS 7 \u00dczerine MongoDB Kurulumu: Kapsaml\u0131 Bir Rehber - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-12-08T17:41:08+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerine-mongodb-kurulumu-kapsamli-bir-rehber\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/centos-7-uzerine-mongodb-kurulumu-kapsamli-bir-rehber\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/centos-7-uzerine-mongodb-kurulumu-kapsamli-bir-rehber\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"CentOS 7 \u00dczerine MongoDB Kurulumu: Kapsaml\u0131 Bir Rehber"}]},{"@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\/36139","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=36139"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36139\/revisions"}],"predecessor-version":[{"id":36140,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/36139\/revisions\/36140"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=36139"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=36139"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=36139"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}