{"id":32781,"date":"2025-10-25T22:41:03","date_gmt":"2025-10-25T19:41:03","guid":{"rendered":"https:\/\/fatihsoysal.com\/blog\/?p=32781"},"modified":"2025-10-25T22:41:03","modified_gmt":"2025-10-25T19:41:03","slug":"mongodbyi-ubuntu-20-04te-varsayilan-apt-depolarindan-yukleme","status":"publish","type":"post","link":"https:\/\/fatihsoysal.com\/blog\/mongodbyi-ubuntu-20-04te-varsayilan-apt-depolarindan-yukleme\/","title":{"rendered":"MongoDB&#8217;yi Ubuntu 20.04&#8217;te Varsay\u0131lan APT Depolar\u0131ndan Y\u00fckleme"},"content":{"rendered":"<p><body><\/p>\n<h2>MongoDB&#8217;yi Ubuntu 20.04&#8217;te Varsay\u0131lan APT Depolar\u0131ndan Y\u00fckleme<\/h2>\n<p>MongoDB, modern uygulamalar\u0131n veri depolama ihtiya\u00e7lar\u0131n\u0131 kar\u015f\u0131lamak \u00fczere tasarlanm\u0131\u015f, a\u00e7\u0131k kaynakl\u0131, belge tabanl\u0131 (document-oriented) bir NoSQL veritaban\u0131d\u0131r. Geleneksel ili\u015fkisel veritabanlar\u0131n\u0131n aksine, MongoDB verileri JSON benzeri BSON (Binary JSON) format\u0131nda depolar, bu da geli\u015ftiricilere \u015fema esnekli\u011fi ve y\u00fcksek \u00f6l\u00e7eklenebilirlik sunar. B\u00fcy\u00fck ve karma\u015f\u0131k veri k\u00fcmelerini y\u00f6netmek, h\u0131zl\u0131 veri eri\u015fimi sa\u011flamak ve s\u00fcrekli de\u011fi\u015fen uygulama gereksinimlerine uyum sa\u011flamak isteyen i\u015fletmeler ve geli\u015ftiriciler i\u00e7in pop\u00fcler bir se\u00e7imdir. Bu makalede, MongoDB&#8217;yi Ubuntu 20.04 i\u015fletim sisteminde varsay\u0131lan APT (Advanced Package Tool) depolar\u0131n\u0131 kullanarak nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ve temel d\u00fczeyde nas\u0131l y\u00f6netece\u011finizi ad\u0131m ad\u0131m ele alaca\u011f\u0131z.<\/p>\n<h3>Neden MongoDB ve Neden Ubuntu 20.04?<\/h3>\n<p>MongoDB, \u00f6zellikle b\u00fcy\u00fck veri i\u015fleme, ger\u00e7ek zamanl\u0131 analitik, i\u00e7erik y\u00f6netim sistemleri ve mobil uygulamalar gibi alanlarda \u00f6ne \u00e7\u0131kar. \u015eemas\u0131z yap\u0131s\u0131 sayesinde verilerinizi esnek bir \u015fekilde modelleyebilir, b\u00f6ylece uygulama geli\u015ftirme s\u00fcre\u00e7lerini h\u0131zland\u0131rabilirsiniz. Yatay \u00f6l\u00e7eklenebilirlik yetenekleri sayesinde, uygulaman\u0131z\u0131n b\u00fcy\u00fcmesiyle birlikte veritaban\u0131 performans\u0131n\u0131z\u0131 kolayca art\u0131rabilirsiniz.<\/p>\n<p>Ubuntu 20.04 LTS (Long Term Support), sunucu ortamlar\u0131nda yayg\u0131n olarak kullan\u0131lan, kararl\u0131 ve g\u00fcvenilir bir Linux da\u011f\u0131t\u0131m\u0131d\u0131r. Uzun s\u00fcreli destek sunmas\u0131, g\u00fcvenlik g\u00fcncellemeleri ve geni\u015f paket yelpazesi nedeniyle bir\u00e7ok geli\u015ftirici ve sistem y\u00f6neticisi taraf\u0131ndan tercih edilir. Bu kombinasyon, g\u00fc\u00e7l\u00fc ve esnek bir veritaban\u0131 \u00e7\u00f6z\u00fcm\u00fcn\u00fc kararl\u0131 bir i\u015fletim sistemi \u00fczerinde \u00e7al\u0131\u015ft\u0131rmak i\u00e7in ideal bir temel olu\u015fturur.<\/p>\n<p>Bu rehber, MongoDB&#8217;nin Ubuntu&#8217;nun varsay\u0131lan APT depolar\u0131nda bulunan s\u00fcr\u00fcm\u00fcn\u00fc kurmaya odaklanacakt\u0131r. Varsay\u0131lan depolar, genellikle MongoDB&#8217;nin en son s\u00fcr\u00fcm\u00fcn\u00fc i\u00e7ermese de, kurulumu basitle\u015ftirir ve temel geli\u015ftirme veya test ortamlar\u0131 i\u00e7in yeterli olabilir. \u00dcretim ortamlar\u0131 veya en yeni \u00f6zelliklere ihtiya\u00e7 duyan projeler i\u00e7in MongoDB&#8217;nin resmi depolar\u0131ndan kurulum genellikle daha iyi bir se\u00e7enektir, ancak bu makale varsay\u0131lan depolar\u0131n kullan\u0131m\u0131na odaklanacakt\u0131r.<\/p>\n<h3>\u00d6n Ko\u015fullar<\/h3>\n<p>Bu rehbere ba\u015flamadan \u00f6nce a\u015fa\u011f\u0131daki \u00f6n ko\u015fullar\u0131n yerine getirildi\u011finden emin olun:<\/p>\n<p>*   <strong>Ubuntu 20.04 Sunucusu:<\/strong> Temiz bir Ubuntu 20.04 kurulumuna sahip bir sunucu veya sanal makine.<br \/>\n*   <strong>SSH Eri\u015fimi:<\/strong> Sunucunuza SSH ile eri\u015fim.<br \/>\n*   <strong>Sudo Yetkileri:<\/strong> Komutlar\u0131 \u00e7al\u0131\u015ft\u0131rmak i\u00e7in <code>sudo<\/code> yetkilerine sahip bir kullan\u0131c\u0131 hesab\u0131.<br \/>\n*   <strong>Temel Linux Bilgisi:<\/strong> Temel komut sat\u0131r\u0131 bilgisi ve Linux dosya sistemi hakk\u0131nda genel bir anlay\u0131\u015f.<\/p>\n<h3>APT Depolar\u0131 ve MongoDB S\u00fcr\u00fcmleri<\/h3>\n<p>Ubuntu&#8217;nun varsay\u0131lan APT depolar\u0131, genellikle yaz\u0131l\u0131mlar\u0131n kararl\u0131 ve iyi test edilmi\u015f s\u00fcr\u00fcmlerini bar\u0131nd\u0131r\u0131r. Bu, sistem kararl\u0131l\u0131\u011f\u0131 a\u00e7\u0131s\u0131ndan avantajl\u0131 olsa da, yaz\u0131l\u0131mlar\u0131n en son s\u00fcr\u00fcmlerini i\u00e7ermeyebilece\u011fi anlam\u0131na gelir. Ubuntu 20.04&#8217;\u00fcn varsay\u0131lan depolar\u0131, bu makalenin yaz\u0131ld\u0131\u011f\u0131 tarihte genellikle MongoDB 3.6 veya 4.0 gibi daha eski s\u00fcr\u00fcmlerini sunmaktad\u0131r. MongoDB&#8217;nin resmi depolar\u0131 ise 5.0, 6.0, 7.0 gibi en g\u00fcncel s\u00fcr\u00fcmleri ve bunlar\u0131n sundu\u011fu yeni \u00f6zellikleri, performans iyile\u015ftirmelerini ve g\u00fcvenlik yamalar\u0131n\u0131 i\u00e7erir.<\/p>\n<p>Bu rehberde varsay\u0131lan depolar\u0131 kullanmam\u0131z\u0131n nedeni, kurulum s\u00fcrecinin daha basit olmas\u0131 ve ek depo ekleme ad\u0131mlar\u0131na gerek kalmamas\u0131d\u0131r. E\u011fer uygulaman\u0131z daha eski bir MongoDB s\u00fcr\u00fcm\u00fcyle uyumluysa veya sadece temel bir deneme\/geli\u015ftirme ortam\u0131 kuruyorsan\u0131z, bu y\u00f6ntem olduk\u00e7a pratiktir. Ancak, \u00fcretim ortamlar\u0131 veya en yeni MongoDB \u00f6zelliklerine ihtiya\u00e7 duyan projeler i\u00e7in resmi MongoDB depolar\u0131ndan kurulumu ciddi \u015fekilde d\u00fc\u015f\u00fcnmelisiniz.<\/p>\n<h3>Ad\u0131m 1: Paket Dizini G\u00fcncelleme<\/h3>\n<p>Herhangi bir yaz\u0131l\u0131m kurulumuna ba\u015flamadan \u00f6nce, sisteminizin paket dizinini g\u00fcncellemek iyi bir uygulamad\u0131r. Bu, APT&#8217;nin en son paket listelerine sahip olmas\u0131n\u0131 ve mevcut paketlerin g\u00fcncel s\u00fcr\u00fcmlerini indirmesini sa\u011flar.<\/p>\n<p>SSH \u00fczerinden sunucunuza ba\u011flan\u0131n ve a\u015fa\u011f\u0131daki komutu \u00e7al\u0131\u015ft\u0131r\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo apt update<\/code><\/pre>\n<p>Bu komut, yerel paket dizininizi uzak depolardaki bilgilerle senkronize eder. Ard\u0131ndan, sisteminizdeki y\u00fckl\u00fc paketleri en son s\u00fcr\u00fcmlerine y\u00fckseltmek isteyebilirsiniz, ancak bu MongoDB kurulumu i\u00e7in kesinlikle gerekli de\u011fildir:<\/p>\n<pre><code class=\"language-bash\">sudo apt upgrade<\/code><\/pre>\n<p>Bu ad\u0131m, sisteminizdeki mevcut paketleri y\u00fckseltecek ve olas\u0131 ba\u011f\u0131ml\u0131l\u0131k sorunlar\u0131n\u0131 \u00f6nleyebilir.<\/p>\n<h3>Ad\u0131m 2: MongoDB Paketini Y\u00fckleme<\/h3>\n<p>Paket dizini g\u00fcncellendikten sonra, MongoDB paketini varsay\u0131lan APT depolar\u0131ndan y\u00fckleyebilirsiniz. Ubuntu 20.04&#8217;te MongoDB sunucusunu i\u00e7eren paket genellikle <code>mongodb<\/code> veya <code>mongodb-server<\/code> olarak adland\u0131r\u0131l\u0131r. <code>mongodb<\/code> paketi genellikle gerekli t\u00fcm ba\u011f\u0131ml\u0131l\u0131klar\u0131 \u00e7eker.<\/p>\n<p>A\u015fa\u011f\u0131daki komutu kullanarak MongoDB sunucusunu ve ilgili ara\u00e7lar\u0131 y\u00fckleyin:<\/p>\n<pre><code class=\"language-bash\">sudo apt install mongodb<\/code><\/pre>\n<p>Kurulum s\u0131ras\u0131nda, sistem sizden onay isteyebilir. <code>Y<\/code> tu\u015funa bas\u0131p Enter&#8217;a basarak devam edin. APT, MongoDB paketini ve ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 indirecek ve sisteminize kuracakt\u0131r. Kurulum tamamland\u0131\u011f\u0131nda, MongoDB hizmeti otomatik olarak ba\u015flayacak ve sistem ba\u015flang\u0131c\u0131nda etkinle\u015ftirilecektir.<\/p>\n<h3>Ad\u0131m 3: MongoDB Kurulumunu Do\u011frulama<\/h3>\n<p>Kurulum tamamland\u0131ktan sonra, MongoDB hizmetinin d\u00fczg\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulamak \u00f6nemlidir.<\/p>\n<h4>Hizmet Durumunu Kontrol Etme<\/h4>\n<p>MongoDB hizmetinin durumunu kontrol etmek i\u00e7in <code>systemctl<\/code> komutunu kullan\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl status mongodb<\/code><\/pre>\n<p>\u00c7\u0131kt\u0131da <code>active (running)<\/code> ifadesini g\u00f6rmelisiniz. Bu, MongoDB hizmetinin ba\u015far\u0131yla ba\u015flad\u0131\u011f\u0131 ve \u00e7al\u0131\u015ft\u0131\u011f\u0131 anlam\u0131na gelir. Ayr\u0131ca, hizmetin otomatik olarak ba\u015flat\u0131lacak \u015fekilde etkinle\u015ftirildi\u011fini de g\u00f6receksiniz.<\/p>\n<pre><code class=\"language-\">\u25cf mongodb.service - An object\/document-oriented database\n     Loaded: loaded (\/lib\/systemd\/system\/mongodb.service; enabled; vendor preset: enabled)\n     Active: active (running) since ...\n       Docs: man:mongod(1)\n   Main PID: ... (mongod)\n      Tasks: ... (limit: ...)\n     Memory: ...\n        CPU: ...\n     CGroup: \/system.slice\/mongodb.service\n             \u2514\u2500... \/usr\/bin\/mongod --config \/etc\/mongodb.conf<\/code><\/pre>\n<p>E\u011fer <code>active (running)<\/code> yerine ba\u015fka bir durum g\u00f6r\u00fcyorsan\u0131z, hizmetin ba\u015flat\u0131lmas\u0131nda bir sorun olabilir. Bu durumda, <code>sudo systemctl start mongodb<\/code> komutuyla hizmeti manuel olarak ba\u015flatmay\u0131 deneyebilir ve <code>journalctl -xeu mongodb<\/code> komutuyla g\u00fcnl\u00fckleri kontrol ederek hatan\u0131n nedenini ara\u015ft\u0131rabilirsiniz.<\/p>\n<h4>MongoDB Shell&#8217;e Ba\u011flanma<\/h4>\n<p>MongoDB&#8217;nin d\u00fczg\u00fcn \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 do\u011frulaman\u0131n bir ba\u015fka yolu da MongoDB kabu\u011funa (shell) ba\u011flanmakt\u0131r. Bu, veritaban\u0131yla etkile\u015fim kurman\u0131z\u0131 sa\u011flayan bir komut sat\u0131r\u0131 arac\u0131d\u0131r.<\/p>\n<pre><code class=\"language-bash\">mongo<\/code><\/pre>\n<p>Bu komutu \u00e7al\u0131\u015ft\u0131rd\u0131\u011f\u0131n\u0131zda, MongoDB kabu\u011funa ba\u011flanacak ve bir komut istemi g\u00f6receksiniz. Kabuktan \u00e7\u0131kmak i\u00e7in <code>exit<\/code> yaz\u0131p Enter tu\u015funa basabilirsiniz.<\/p>\n<p>Kabukta iken, baz\u0131 temel komutlar\u0131 deneyebilirsiniz:<\/p>\n<p>*   <code>show dbs<\/code>: Mevcut veritabanlar\u0131n\u0131 listeler.<br \/>\n*   <code>db.stats()<\/code>: Aktif veritaban\u0131n\u0131n istatistiklerini g\u00f6sterir.<br \/>\n*   <code>use admin<\/code>: <code>admin<\/code> veritaban\u0131na ge\u00e7i\u015f yapar.<br \/>\n*   <code>db.shutdownServer()<\/code>: MongoDB sunucusunu kapat\u0131r (yaln\u0131zca <code>admin<\/code> veritaban\u0131nda ve yetkili kullan\u0131c\u0131lar taraf\u0131ndan kullan\u0131labilir).<\/p>\n<p>Bu ad\u0131mlar\u0131 ba\u015far\u0131yla tamamlad\u0131ysan\u0131z, MongoDB Ubuntu 20.04 sunucunuza ba\u015far\u0131yla kurulmu\u015f ve \u00e7al\u0131\u015f\u0131r durumdad\u0131r.<\/p>\n<h3>Ad\u0131m 4: MongoDB Hizmetini Y\u00f6netme<\/h3>\n<p>MongoDB bir <code>systemd<\/code> hizmeti olarak \u00e7al\u0131\u015ft\u0131\u011f\u0131 i\u00e7in, hizmeti y\u00f6netmek i\u00e7in standart <code>systemctl<\/code> komutlar\u0131n\u0131 kullanabilirsiniz.<\/p>\n<p>*   <strong>MongoDB Hizmetini Ba\u015flatma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl start mongodb<\/code><\/pre>\n<p>*   <strong>MongoDB Hizmetini Durdurma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl stop mongodb<\/code><\/pre>\n<p>*   <strong>MongoDB Hizmetini Yeniden Ba\u015flatma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart mongodb<\/code><\/pre>\n<p>*   <strong>Sistem Ba\u015flang\u0131c\u0131nda Otomatik Ba\u015flamay\u0131 Etkinle\u015ftirme (Varsay\u0131lan olarak etkin olmal\u0131d\u0131r):<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl enable mongodb<\/code><\/pre>\n<p>*   <strong>Sistem Ba\u015flang\u0131c\u0131nda Otomatik Ba\u015flamay\u0131 Devre D\u0131\u015f\u0131 B\u0131rakma:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl disable mongodb<\/code><\/pre>\n<p>Bu komutlar, MongoDB hizmetini gerekti\u011finde y\u00f6netmenize olanak tan\u0131r. Genellikle, yap\u0131land\u0131rma dosyalar\u0131nda bir de\u011fi\u015fiklik yapt\u0131ktan sonra hizmeti yeniden ba\u015flatman\u0131z gerekir.<\/p>\n<h3>Ad\u0131m 5: Temel MongoDB Yap\u0131land\u0131rmas\u0131<\/h3>\n<p>MongoDB&#8217;nin yap\u0131land\u0131rma dosyas\u0131, hizmetin nas\u0131l \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131 belirleyen \u00e7e\u015fitli ayarlar i\u00e7erir. Ubuntu&#8217;nun varsay\u0131lan APT depolar\u0131ndan y\u00fcklenen MongoDB i\u00e7in yap\u0131land\u0131rma dosyas\u0131 genellikle <code>\/etc\/mongodb.conf<\/code> veya <code>\/etc\/mongod.conf<\/code> konumunda bulunur.<\/p>\n<p>Yap\u0131land\u0131rma dosyas\u0131n\u0131 d\u00fczenlemek i\u00e7in favori metin d\u00fczenleyicinizi kullan\u0131n (\u00f6rne\u011fin, <code>nano<\/code> veya <code>vi<\/code>):<\/p>\n<pre><code class=\"language-bash\">sudo nano \/etc\/mongodb.conf<\/code><\/pre>\n<p>Bu dosyadaki baz\u0131 \u00f6nemli ayarlar \u015funlard\u0131r:<\/p>\n<p>*   <strong><code>bindIp<\/code>:<\/strong> Bu ayar, MongoDB&#8217;nin hangi IP adreslerini dinleyece\u011fini belirler. Varsay\u0131lan olarak <code>127.0.0.1<\/code> (localhost) olarak ayarlanm\u0131\u015ft\u0131r. Bu, MongoDB&#8217;ye yaln\u0131zca ayn\u0131 sunucu \u00fczerinden eri\u015filebilece\u011fi anlam\u0131na gelir. E\u011fer MongoDB&#8217;ye ba\u015fka bir sunucudan veya uzaktan eri\u015fmek istiyorsan\u0131z, bu de\u011feri sunucunuzun \u00f6zel IP adresine veya t\u00fcm a\u011f aray\u00fczlerinden dinlemesi i\u00e7in <code>0.0.0.0<\/code> olarak de\u011fi\u015ftirmelisiniz.<\/p>\n<pre><code class=\"language-yaml\">bindIp: 0.0.0.0 # T\u00fcm IP adreslerinden eri\u015fime izin verir (D\u0130KKAT: G\u00fcvenlik riski ta\u015f\u0131r)<\/code><\/pre>\n<p>    <strong>\u00d6NEML\u0130 G\u00dcVENL\u0130K UYARISI:<\/strong> <code>bindIp<\/code> de\u011ferini <code>0.0.0.0<\/code> olarak ayarlamak, MongoDB sunucunuzu internete veya yerel a\u011fdaki herkese a\u00e7\u0131k hale getirir. Bu, yetkilendirme ve g\u00fcvenlik duvar\u0131 kurallar\u0131 olmadan ciddi bir g\u00fcvenlik riski olu\u015fturur. \u00dcretim ortamlar\u0131nda veya hassas verilerle \u00e7al\u0131\u015f\u0131rken, yaln\u0131zca belirli g\u00fcvenilir IP adreslerinden eri\u015fime izin vermek i\u00e7in bu de\u011feri sunucunuzun \u00f6zel IP adresine veya bir dizi IP adresine ayarlamal\u0131s\u0131n\u0131z. G\u00fcvenlik duvar\u0131 kurallar\u0131n\u0131 mutlaka yap\u0131land\u0131rmal\u0131s\u0131n\u0131z.<\/p>\n<p>*   <strong><code>port<\/code>:<\/strong> MongoDB&#8217;nin dinleyece\u011fi TCP portunu belirler. Varsay\u0131lan de\u011fer <code>27017<\/code>&#8216;dir. \u00c7o\u011fu durumda bu de\u011feri de\u011fi\u015ftirmeye gerek yoktur.<\/p>\n<pre><code class=\"language-yaml\">port: 27017<\/code><\/pre>\n<p>*   <strong><code>dbPath<\/code>:<\/strong> MongoDB veri dosyalar\u0131n\u0131n depoland\u0131\u011f\u0131 dizini belirtir. Varsay\u0131lan olarak <code>\/var\/lib\/mongodb<\/code>&#8216;dir.<\/p>\n<pre><code class=\"language-yaml\">dbPath: \/var\/lib\/mongodb<\/code><\/pre>\n<p>*   <strong><code>logPath<\/code>:<\/strong> MongoDB g\u00fcnl\u00fck dosyalar\u0131n\u0131n depoland\u0131\u011f\u0131 yolu belirtir. Varsay\u0131lan olarak <code>\/var\/log\/mongodb\/mongodb.log<\/code>&#8216;dur.<\/p>\n<pre><code class=\"language-yaml\">logPath: \/var\/log\/mongodb\/mongodb.log<\/code><\/pre>\n<p>*   <strong><code>authorization<\/code>:<\/strong> Bu ayar, MongoDB&#8217;de kullan\u0131c\u0131 kimlik do\u011frulamas\u0131n\u0131 etkinle\u015ftirir. Varsay\u0131lan olarak yorum sat\u0131r\u0131 halindedir veya <code>disabled<\/code> olarak ayarlanm\u0131\u015ft\u0131r. \u00dcretim ortamlar\u0131nda kesinlikle etkinle\u015ftirilmelidir.<\/p>\n<pre><code class=\"language-yaml\">security:\n      authorization: enabled<\/code><\/pre>\n<p>De\u011fi\u015fiklikleri yapt\u0131ktan sonra dosyay\u0131 kaydedin ve kapat\u0131n (nano i\u00e7in <code>Ctrl+X<\/code>, <code>Y<\/code> ve Enter). Ard\u0131ndan, de\u011fi\u015fikliklerin etkili olmas\u0131 i\u00e7in MongoDB hizmetini yeniden ba\u015flat\u0131n:<\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart mongodb<\/code><\/pre>\n<h3>Ad\u0131m 6: MongoDB&#8217;yi G\u00fcvenli Hale Getirme (\u00c7ok \u00d6nemli!)<\/h3>\n<p>MongoDB&#8217;yi g\u00fcvenli hale getirmek, \u00f6zellikle \u00fcretim ortamlar\u0131nda kritik \u00f6neme sahiptir. Varsay\u0131lan olarak, MongoDB kimlik do\u011frulamas\u0131 kapal\u0131 gelir ve bu da herhangi bir kullan\u0131c\u0131n\u0131n veritaban\u0131na tam eri\u015fim sa\u011flamas\u0131na izin verir. Ayr\u0131ca, <code>bindIp<\/code> ayar\u0131n\u0131 <code>0.0.0.0<\/code> olarak de\u011fi\u015ftirdiyseniz, sunucunuza bir g\u00fcvenlik duvar\u0131 eklemek zorunludur.<\/p>\n<h4>G\u00fcvenlik Duvar\u0131 Yap\u0131land\u0131rmas\u0131 (UFW)<\/h4>\n<p>Ubuntu&#8217;da UFW (Uncomplicated Firewall) adl\u0131 basit bir g\u00fcvenlik duvar\u0131 arac\u0131 bulunur. UFW&#8217;yi etkinle\u015ftirerek ve kurallar belirleyerek sunucunuzu koruyabilirsiniz.<\/p>\n<p>1.  <strong>UFW&#8217;yi Etkinle\u015ftirme:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo ufw enable<\/code><\/pre>\n<p>    Bu komut, g\u00fcvenlik duvar\u0131n\u0131 etkinle\u015ftirir. SSH ba\u011flant\u0131n\u0131z\u0131n kesilmemesi i\u00e7in \u00f6ncelikle SSH portuna izin vermelisiniz.<\/p>\n<p>2.  <strong>SSH Portuna \u0130zin Verme:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo ufw allow ssh\n    # veya spesifik port numaras\u0131 i\u00e7in: sudo ufw allow 22\/tcp<\/code><\/pre>\n<p>3.  <strong>MongoDB Portuna \u0130zin Verme:<\/strong><br \/>\n    E\u011fer <code>bindIp<\/code>&#8216;yi <code>0.0.0.0<\/code> olarak ayarlad\u0131ysan\u0131z ve uzaktan eri\u015fime ihtiyac\u0131n\u0131z varsa, MongoDB&#8217;nin varsay\u0131lan portu olan 27017&#8217;ye izin vermelisiniz. Ancak, m\u00fcmk\u00fcnse yaln\u0131zca belirli IP adreslerinden eri\u015fime izin verin.<\/p>\n<p>    *   <strong>T\u00fcm IP&#8217;lerden eri\u015fime izin verme (Riskli!):<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo ufw allow 27017\/tcp<\/code><\/pre>\n<p>    *   <strong>Belirli bir IP adresinden eri\u015fime izin verme (\u00d6nerilen):<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo ufw allow from <g\u00fcvenilir_ip_adresi> to any port 27017<\/code><\/pre>\n<p>        \u00d6rne\u011fin: <code>sudo ufw allow from 192.168.1.100 to any port 27017<\/code><\/p>\n<p>4.  <strong>UFW Durumunu Kontrol Etme:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo ufw status<\/code><\/pre>\n<p>    Bu komut, aktif UFW kurallar\u0131n\u0131 listeler.<\/p>\n<h4>Kimlik Do\u011frulamas\u0131n\u0131 Etkinle\u015ftirme ve Kullan\u0131c\u0131 Olu\u015fturma<\/h4>\n<p>MongoDB&#8217;de kimlik do\u011frulamas\u0131n\u0131 etkinle\u015ftirmek, yetkisiz eri\u015fimi engellemenin en \u00f6nemli ad\u0131mlar\u0131ndan biridir.<\/p>\n<p>1.  <strong><code>mongodb.conf<\/code> dosyas\u0131n\u0131 d\u00fczenleyin:<\/strong><br \/>\n    Daha \u00f6nce bahsetti\u011fimiz gibi, <code>\/etc\/mongodb.conf<\/code> dosyas\u0131n\u0131 a\u00e7\u0131n ve <code>security<\/code> b\u00f6l\u00fcm\u00fcn\u00fcn alt\u0131na <code>authorization: enabled<\/code> sat\u0131r\u0131n\u0131 ekleyin:<\/p>\n<pre><code class=\"language-yaml\">security:\n      authorization: enabled<\/code><\/pre>\n<p>    Dosyay\u0131 kaydedin ve kapat\u0131n.<\/p>\n<p>2.  <strong>MongoDB hizmetini yeniden ba\u015flat\u0131n:<\/strong><\/p>\n<pre><code class=\"language-bash\">sudo systemctl restart mongodb<\/code><\/pre>\n<p>    Bu ad\u0131mdan sonra, MongoDB&#8217;ye ba\u011flanmak i\u00e7in art\u0131k kimlik do\u011frulama gerekecektir. Ancak hen\u00fcz bir kullan\u0131c\u0131 olu\u015fturmad\u0131\u011f\u0131m\u0131z i\u00e7in, \u015fu an i\u00e7in kimlik do\u011frulama olmadan ba\u011flanabiliriz (\u00e7\u00fcnk\u00fc hen\u00fcz hi\u00e7bir kullan\u0131c\u0131 yok).<\/p>\n<p>3.  <strong>Y\u00f6netici Kullan\u0131c\u0131s\u0131 Olu\u015fturma:<\/strong><br \/>\n    Kimlik do\u011frulama etkinle\u015ftirildi\u011finde, veritaban\u0131na eri\u015fmek i\u00e7in bir kullan\u0131c\u0131 olu\u015fturman\u0131z gerekir. \u0130lk olarak, y\u00f6netici ayr\u0131cal\u0131klar\u0131na sahip bir kullan\u0131c\u0131 olu\u015fturmal\u0131s\u0131n\u0131z.<\/p>\n<p>    MongoDB kabu\u011funa ba\u011flan\u0131n:<\/p>\n<pre><code class=\"language-bash\">mongo<\/code><\/pre>\n<p>    <code>admin<\/code> veritaban\u0131na ge\u00e7in ve y\u00f6netici kullan\u0131c\u0131s\u0131n\u0131 olu\u015fturun:<\/p>\n<pre><code class=\"language-javascript\">use admin\n    db.createUser(\n      {\n        user: \"adminUser\",\n        pwd: passwordPrompt(), \/\/ Parolay\u0131 g\u00fcvenli bir \u015fekilde girmenizi ister\n        roles: [ { role: \"userAdminAnyDatabase\", db: \"admin\" }, \"readWriteAnyDatabase\", \"dbAdminAnyDatabase\" ]\n      }\n    )<\/code><\/pre>\n<p>    <code>passwordPrompt()<\/code> komutu, parolay\u0131 g\u00fcvenli bir \u015fekilde girmeniz i\u00e7in bir istem a\u00e7acakt\u0131r. <code>adminUser<\/code> yerine istedi\u011finiz kullan\u0131c\u0131 ad\u0131n\u0131 kullanabilirsiniz. Rolleri, bu kullan\u0131c\u0131n\u0131n hangi veritabanlar\u0131 \u00fczerinde hangi i\u015flemleri yapabilece\u011fini belirler. Yukar\u0131daki roller, y\u00f6netici kullan\u0131c\u0131s\u0131 i\u00e7in geni\u015f yetkiler sa\u011flar.<\/p>\n<p>    Kullan\u0131c\u0131 olu\u015fturulduktan sonra kabuktan \u00e7\u0131k\u0131n:<\/p>\n<pre><code class=\"language-javascript\">exit<\/code><\/pre>\n<p>4.  <strong>Kimlik Do\u011frulama ile Ba\u011flanmay\u0131 Test Etme:<\/strong><br \/>\n    Art\u0131k MongoDB&#8217;ye ba\u011flanmak i\u00e7in olu\u015fturdu\u011funuz kullan\u0131c\u0131 ad\u0131n\u0131 ve parolay\u0131 kullanman\u0131z gerekir.<\/p>\n<pre><code class=\"language-bash\">mongo -u adminUser -p --authenticationDatabase admin<\/code><\/pre>\n<p>    Bu komut, sizden <code>adminUser<\/code> kullan\u0131c\u0131s\u0131n\u0131n parolas\u0131n\u0131 isteyecektir. Do\u011fru parolay\u0131 girdikten sonra MongoDB kabu\u011funa ba\u011flanabileceksiniz. E\u011fer kimlik do\u011frulama olmadan ba\u011flanmaya \u00e7al\u0131\u015f\u0131rsan\u0131z, eri\u015fim reddedilecektir.<\/p>\n<pre><code class=\"language-bash\">mongo # Bu art\u0131k \u00e7al\u0131\u015fmamal\u0131d\u0131r, hata vermeli veya eri\u015fim k\u0131s\u0131tlamal\u0131 olmal\u0131d\u0131r.<\/code><\/pre>\n<h4>Rol Tabanl\u0131 Eri\u015fim Kontrol\u00fc (RBAC)<\/h4>\n<p>MongoDB, kullan\u0131c\u0131lara belirli roller atayarak rol tabanl\u0131 eri\u015fim kontrol\u00fc (RBAC) sa\u011flar. Bu, kullan\u0131c\u0131lara yaln\u0131zca ihtiya\u00e7 duyduklar\u0131 yetkileri vermenizi sa\u011flar. \u00d6rne\u011fin, bir uygulama kullan\u0131c\u0131s\u0131 i\u00e7in yaln\u0131zca belirli bir veritaban\u0131nda okuma\/yazma yetkisi olan bir kullan\u0131c\u0131 olu\u015fturabilirsiniz.<\/p>\n<pre><code class=\"language-javascript\">use myappdb \/\/ Uygulama veritaban\u0131n\u0131za ge\u00e7in\ndb.createUser(\n  {\n    user: \"appUser\",\n    pwd: passwordPrompt(),\n    roles: [ { role: \"readWrite\", db: \"myappdb\" } ]\n  }\n)<\/code><\/pre>\n<p>Bu komut, <code>myappdb<\/code> veritaban\u0131nda <code>readWrite<\/code> yetkisine sahip <code>appUser<\/code> ad\u0131nda bir kullan\u0131c\u0131 olu\u015fturur. Bu kullan\u0131c\u0131, di\u011fer veritabanlar\u0131na eri\u015femez veya sistem d\u00fczeyinde y\u00f6netim g\u00f6revleri yapamaz.<\/p>\n<h3>Ad\u0131m 7: MongoDB&#8217;ye Ba\u011flanma<\/h3>\n<p>MongoDB&#8217;ye ba\u011flanmak i\u00e7in \u00e7e\u015fitli y\u00f6ntemler vard\u0131r:<\/p>\n<p>*   <strong>MongoDB Shell:<\/strong> Daha \u00f6nce kulland\u0131\u011f\u0131m\u0131z <code>mongo<\/code> komutuyla yerel olarak veya uzaktan ba\u011flanabilirsiniz:<\/p>\n<pre><code class=\"language-bash\"># Yerel olarak, kimlik do\u011frulama ile\n    mongo -u adminUser -p --authenticationDatabase admin\n\n    # Uzaktan, kimlik do\u011frulama ile\n    mongo --host <sunucu_ip_adresi> --port 27017 -u adminUser -p --authenticationDatabase admin<\/code><\/pre>\n<p>*   <strong>Programlama Dili S\u00fcr\u00fcc\u00fcleri:<\/strong> \u00c7o\u011fu programlama dili (Python, Node.js, Java, PHP vb.) MongoDB ile etkile\u015fim kurmak i\u00e7in resmi veya topluluk taraf\u0131ndan desteklenen s\u00fcr\u00fcc\u00fclere sahiptir. Bu s\u00fcr\u00fcc\u00fcler, uygulamalar\u0131n\u0131zdan MongoDB&#8217;ye ba\u011flanman\u0131z\u0131 ve veritaban\u0131 i\u015flemleri yapman\u0131z\u0131 sa\u011flar.<\/p>\n<p>*   <strong>GUI Ara\u00e7lar\u0131:<\/strong> MongoDB Compass gibi grafiksel kullan\u0131c\u0131 aray\u00fcz\u00fc (GUI) ara\u00e7lar\u0131, veritabanlar\u0131n\u0131 g\u00f6rsel olarak y\u00f6netmenize ve sorgulaman\u0131za olanak tan\u0131r. Ancak, MongoDB Compass genellikle daha yeni MongoDB s\u00fcr\u00fcmleriyle daha iyi \u00e7al\u0131\u015f\u0131r.<\/p>\n<h3>Ad\u0131m 8: Temel MongoDB \u0130\u015flemleri (MongoDB Shell ile)<\/h3>\n<p>MongoDB shell&#8217;i kullanarak temel veritaban\u0131 i\u015flemlerini nas\u0131l yapabilece\u011finize dair baz\u0131 \u00f6rnekler:<\/p>\n<h4>Veritaban\u0131 Olu\u015fturma ve Se\u00e7me<\/h4>\n<p>Bir veritaban\u0131 olu\u015fturmak i\u00e7in <code>use<\/code> komutunu kullanman\u0131z yeterlidir. E\u011fer veritaban\u0131 yoksa olu\u015fturulur, varsa se\u00e7ilir.<\/p>\n<pre><code class=\"language-javascript\">use myNewDatabase<\/code><\/pre>\n<h4>Koleksiyon Olu\u015fturma<\/h4>\n<p>MongoDB&#8217;de veriler koleksiyonlarda saklan\u0131r. Bir koleksiyonu a\u00e7\u0131k\u00e7a olu\u015fturabilirsiniz, ancak genellikle ilk belgeyi ekledi\u011finizde otomatik olarak olu\u015fturulur.<\/p>\n<pre><code class=\"language-javascript\">db.createCollection(\"myCollection\")<\/code><\/pre>\n<h4>Belge Ekleme (Insert)<\/h4>\n<p>Koleksiyonlara belge eklemek i\u00e7in <code>insertOne<\/code> veya <code>insertMany<\/code> y\u00f6ntemlerini kullan\u0131n:<\/p>\n<pre><code class=\"language-javascript\">\/\/ Tek belge ekleme\ndb.myCollection.insertOne({ name: \"Alice\", age: 30, city: \"New York\" })\n\n\/\/ Birden fazla belge ekleme\ndb.myCollection.insertMany([\n  { name: \"Bob\", age: 25, city: \"London\" },\n  { name: \"Charlie\", age: 35, city: \"Paris\" }\n])<\/code><\/pre>\n<h4>Belge Sorgulama (Find)<\/h4>\n<p>Koleksiyondaki belgeleri bulmak i\u00e7in <code>find<\/code> y\u00f6ntemini kullan\u0131n:<\/p>\n<pre><code class=\"language-javascript\">\/\/ T\u00fcm belgeleri bulma\ndb.myCollection.find()\n\n\/\/ Belirli bir kritere g\u00f6re belge bulma\ndb.myCollection.find({ name: \"Alice\" })\n\n\/\/ Belirli alanlar\u0131 se\u00e7erek bulma\ndb.myCollection.find({ age: { $gt: 28 } }, { name: 1, city: 1, _id: 0 }) \/\/ Ya\u015f\u0131 28'den b\u00fcy\u00fck olanlar\u0131n ad\u0131n\u0131 ve \u015fehrini getir<\/code><\/pre>\n<h4>Belge G\u00fcncelleme (Update)<\/h4>\n<p>Mevcut belgeleri g\u00fcncellemek i\u00e7in <code>updateOne<\/code> veya <code>updateMany<\/code> y\u00f6ntemlerini kullan\u0131n:<\/p>\n<pre><code class=\"language-javascript\">\/\/ Tek bir belgeyi g\u00fcncelleme\ndb.myCollection.updateOne(\n  { name: \"Alice\" },\n  { $set: { age: 31, status: \"active\" } }\n)\n\n\/\/ Birden fazla belgeyi g\u00fcncelleme\ndb.myCollection.updateMany(\n  { city: \"London\" },\n  { $set: { status: \"inactive\" } }\n)<\/code><\/pre>\n<h4>Belge Silme (Delete)<\/h4>\n<p>Belgeleri silmek i\u00e7in <code>deleteOne<\/code> veya <code>deleteMany<\/code> y\u00f6ntemlerini kullan\u0131n:<\/p>\n<pre><code class=\"language-javascript\">\/\/ Tek bir belgeyi silme\ndb.myCollection.deleteOne({ name: \"Bob\" })\n\n\/\/ Belirli bir kritere uyan t\u00fcm belgeleri silme\ndb.myCollection.deleteMany({ status: \"inactive\" })\n\n\/\/ Koleksiyondaki t\u00fcm belgeleri silme\ndb.myCollection.deleteMany({})<\/code><\/pre>\n<h4>Koleksiyon Silme<\/h4>\n<p>Bir koleksiyonu tamamen silmek i\u00e7in <code>drop<\/code> y\u00f6ntemini kullan\u0131n:<\/p>\n<pre><code class=\"language-javascript\">db.myCollection.drop()<\/code><\/pre>\n<h4>Veritaban\u0131 Silme<\/h4>\n<p>Se\u00e7ili veritaban\u0131n\u0131 tamamen silmek i\u00e7in <code>dropDatabase<\/code> y\u00f6ntemini kullan\u0131n:<\/p>\n<pre><code class=\"language-javascript\">use myNewDatabase \/\/ Silmek istedi\u011finiz veritaban\u0131n\u0131 se\u00e7in\ndb.dropDatabase()<\/code><\/pre>\n<h3>Ad\u0131m 9: Varsay\u0131lan APT Depolar\u0131ndan Kurulumun S\u0131n\u0131rlamalar\u0131<\/h3>\n<p>Bu rehberde varsay\u0131lan APT depolar\u0131ndan MongoDB kurulumunu ele ald\u0131k. Ancak bu yakla\u015f\u0131m\u0131n baz\u0131 \u00f6nemli s\u0131n\u0131rlamalar\u0131 vard\u0131r:<\/p>\n<p>*   <strong>Eski S\u00fcr\u00fcmler:<\/strong> En \u00f6nemli s\u0131n\u0131rlama, varsay\u0131lan depolar\u0131n genellikle MongoDB&#8217;nin daha eski s\u00fcr\u00fcmlerini i\u00e7ermesidir (Ubuntu 20.04 i\u00e7in genellikle 3.6 veya 4.0). Bu s\u00fcr\u00fcmler, g\u00fcncel MongoDB s\u00fcr\u00fcmlerinde bulunan bir\u00e7ok yeni \u00f6zellikten, performans iyile\u015ftirmelerinden ve g\u00fcvenlik yamalar\u0131ndan yoksundur.<br \/>\n*   <strong>Destek S\u00fcresi:<\/strong> Eski MongoDB s\u00fcr\u00fcmleri, resmi olarak MongoDB Inc. taraf\u0131ndan daha k\u0131sa bir destek s\u00fcresine sahip olabilir veya destekleri sona ermi\u015f olabilir. Bu, g\u00fcvenlik a\u00e7\u0131klar\u0131 veya kritik hatalar i\u00e7in yama almayabilece\u011finiz anlam\u0131na gelir.<br \/>\n*   <strong>Eksik \u00d6zellikler:<\/strong> Sharding, transactions (i\u015flemler), geli\u015fmi\u015f sorgu operat\u00f6rleri, atlas search, time series collections gibi MongoDB&#8217;nin yeni s\u00fcr\u00fcmlerindeki bir\u00e7ok geli\u015fmi\u015f \u00f6zellik eski s\u00fcr\u00fcmlerde bulunmaz veya farkl\u0131 \u015fekilde uygulan\u0131r.<br \/>\n*   <strong>Y\u00fckseltme Zorlu\u011fu:<\/strong> Mevcut bir eski MongoDB kurulumunu daha yeni bir s\u00fcr\u00fcme y\u00fckseltmek, \u00f6zellikle b\u00fcy\u00fck veri k\u00fcmeleriyle \u00e7al\u0131\u015f\u0131rken karma\u015f\u0131k ve zaman al\u0131c\u0131 olabilir. Resmi depolardan kurulum, daha sorunsuz y\u00fckseltme yollar\u0131 sunar.<br \/>\n*   <strong>Uyumluluk Sorunlar\u0131:<\/strong> Geli\u015ftirdi\u011finiz uygulama, MongoDB&#8217;nin en yeni s\u00fcr\u00fcmlerinde bulunan belirli bir \u00f6zelli\u011fi veya s\u00fcr\u00fcc\u00fc davran\u0131\u015f\u0131n\u0131 gerektiriyorsa, eski bir s\u00fcr\u00fcmle uyumluluk sorunlar\u0131 ya\u015fayabilirsiniz.<\/p>\n<p>Bu s\u0131n\u0131rlamalar g\u00f6z \u00f6n\u00fcne al\u0131nd\u0131\u011f\u0131nda, varsay\u0131lan depolardan kurulum genellikle yaln\u0131zca h\u0131zl\u0131 testler, temel geli\u015ftirme ortamlar\u0131 veya belirli bir eski MongoDB s\u00fcr\u00fcm\u00fcne ba\u011f\u0131ml\u0131 olan uygulamalar i\u00e7in uygundur.<\/p>\n<h3>Ad\u0131m 10: Resmi MongoDB Depolar\u0131n\u0131 Ne Zaman Kullanmal\u0131s\u0131n\u0131z?<\/h3>\n<p>Yukar\u0131da belirtilen s\u0131n\u0131rlamalar nedeniyle, \u00e7o\u011fu \u00fcretim ortam\u0131 ve yeni uygulama geli\u015ftirme projesi i\u00e7in MongoDB&#8217;nin resmi depolar\u0131ndan kurulum \u015fiddetle tavsiye edilir. Resmi depolar:<\/p>\n<p>*   <strong>En Yeni S\u00fcr\u00fcmler:<\/strong> Her zaman en g\u00fcncel MongoDB s\u00fcr\u00fcmlerini sunar.<br \/>\n*   <strong>Uzun S\u00fcreli Destek:<\/strong> G\u00fcncel s\u00fcr\u00fcmler i\u00e7in s\u00fcrekli g\u00fcvenlik yamalar\u0131 ve hata d\u00fczeltmeleri sa\u011flar.<br \/>\n*   <strong>Geli\u015fmi\u015f \u00d6zellikler:<\/strong> MongoDB&#8217;nin t\u00fcm yeni \u00f6zelliklerine ve performans iyile\u015ftirmelerine eri\u015fim sa\u011flar.<br \/>\n*   <strong>Daha \u0130yi Y\u00fckseltme Yollar\u0131:<\/strong> Belirli bir s\u00fcr\u00fcmden di\u011ferine y\u00fckseltme s\u00fcre\u00e7leri daha iyi belgelenmi\u015ftir ve daha g\u00fcvenilirdir.<\/p>\n<p>Resmi depolardan kurulum s\u00fcreci, ek bir GPG anahtar\u0131 eklemeyi ve APT kaynak listesine MongoDB deposunu eklemeyi i\u00e7erir. Bu ad\u0131mlar, Ubuntu&#8217;nun varsay\u0131lan depolar\u0131ndan kurulumdan biraz daha karma\u015f\u0131k olsa da, uzun vadede daha fazla esneklik, g\u00fcvenlik ve performans sa\u011flar.<\/p>\n<h3>Ad\u0131m 11: Yayg\u0131n Sorun Giderme<\/h3>\n<p>Kurulum veya kullan\u0131m s\u0131ras\u0131nda kar\u015f\u0131la\u015fabilece\u011finiz baz\u0131 yayg\u0131n sorunlar ve \u00e7\u00f6z\u00fcmleri:<\/p>\n<p>*   <strong>MongoDB Hizmeti Ba\u015flam\u0131yor:<\/strong><br \/>\n    *   <code>sudo systemctl status mongodb<\/code> komutuyla hizmetin durumunu kontrol edin.<br \/>\n    *   <code>journalctl -xeu mongodb<\/code> komutuyla MongoDB g\u00fcnl\u00fcklerini kontrol edin. Genellikle hata mesajlar\u0131, sorunun k\u00f6keni hakk\u0131nda ipu\u00e7lar\u0131 verir (\u00f6rne\u011fin, yap\u0131land\u0131rma dosyas\u0131nda s\u00f6zdizimi hatas\u0131, disk alan\u0131 sorunu, izin sorunlar\u0131).<br \/>\n    *   <code>sudo mongod --config \/etc\/mongodb.conf<\/code> komutunu do\u011frudan \u00e7al\u0131\u015ft\u0131rarak hatan\u0131n konsolda g\u00f6r\u00fcnmesini sa\u011flayabilirsiniz.<br \/>\n*   <strong>Ba\u011flant\u0131 Sorunlar\u0131:<\/strong><br \/>\n    *   <code>bindIp<\/code> ayar\u0131n\u0131 kontrol edin (<code>\/etc\/mongodb.conf<\/code>). Uzaktan eri\u015fime izin vermek i\u00e7in do\u011fru \u015fekilde yap\u0131land\u0131r\u0131ld\u0131\u011f\u0131ndan emin olun.<br \/>\n    *   G\u00fcvenlik duvar\u0131 (UFW) kurallar\u0131n\u0131 kontrol edin (<code>sudo ufw status<\/code>). MongoDB portuna (varsay\u0131lan 27017) izin verildi\u011finden emin olun.<br \/>\n    *   Kimlik do\u011frulama etkinse, do\u011fru kullan\u0131c\u0131 ad\u0131, parola ve <code>authenticationDatabase<\/code> ile ba\u011flanmaya \u00e7al\u0131\u015ft\u0131\u011f\u0131n\u0131zdan emin olun (<code>mongo -u <user> -p --authenticationDatabase <db><\/code>).<br \/>\n*   <strong>Disk Alan\u0131 T\u00fckenmesi:<\/strong><br \/>\n    *   <code>df -h<\/code> komutuyla disk kullan\u0131m\u0131n\u0131 kontrol edin. MongoDB veri dizini (<code>\/var\/lib\/mongodb<\/code>) \u00e7ok fazla yer kapl\u0131yorsa, disk alan\u0131 t\u00fckenmesi hizmetin durmas\u0131na neden olabilir. Veritaban\u0131n\u0131 optimize etmeniz veya daha fazla depolama alan\u0131 eklemeniz gerekebilir.<br \/>\n*   <strong>\u0130zin Sorunlar\u0131:<\/strong><br \/>\n    *   MongoDB veri dizini (<code>\/var\/lib\/mongodb<\/code>) ve g\u00fcnl\u00fck dizini (<code>\/var\/log\/mongodb<\/code>) i\u00e7in do\u011fru dosya izinlerine sahip oldu\u011fundan emin olun. Genellikle <code>mongodb<\/code> kullan\u0131c\u0131s\u0131 ve grubu taraf\u0131ndan sahip olunmal\u0131d\u0131r. Gerekirse <code>sudo chown -R mongodb:mongodb \/var\/lib\/mongodb<\/code> ve <code>sudo chown -R mongodb:mongodb \/var\/log\/mongodb<\/code> komutlar\u0131n\u0131 kullanabilirsiniz.<\/p>\n<h3>Sonu\u00e7<\/h3>\n<p>Bu makalede, MongoDB&#8217;yi Ubuntu 20.04&#8217;te varsay\u0131lan APT depolar\u0131ndan ad\u0131m ad\u0131m nas\u0131l kuraca\u011f\u0131n\u0131z\u0131, yap\u0131land\u0131raca\u011f\u0131n\u0131z\u0131 ve y\u00f6netece\u011finizi detayl\u0131 bir \u015fekilde \u00f6\u011frendiniz. Kurulum s\u00fcrecinin basitli\u011fi, \u00f6zellikle temel geli\u015ftirme veya test ortamlar\u0131 i\u00e7in bu y\u00f6ntemi cazip k\u0131lmaktad\u0131r. Ayr\u0131ca, kurulumu do\u011frulama, hizmeti y\u00f6netme, temel yap\u0131land\u0131rma ayarlar\u0131n\u0131 d\u00fczenleme ve en \u00f6nemlisi MongoDB sunucunuzu g\u00fcvenlik duvar\u0131 ve kimlik do\u011frulama ile nas\u0131l g\u00fcvenli hale getirece\u011finizi de ele ald\u0131k.<\/p>\n<p>Ancak, varsay\u0131lan APT depolar\u0131ndan kurulumun, MongoDB&#8217;nin daha eski bir s\u00fcr\u00fcm\u00fcn\u00fc sa\u011flad\u0131\u011f\u0131 ve dolay\u0131s\u0131yla en yeni \u00f6zelliklerden, performans iyile\u015ftirmelerinden ve g\u00fcvenlik yamalar\u0131ndan yoksun oldu\u011fu unutulmamal\u0131d\u0131r. \u00dcretim ortamlar\u0131 veya en g\u00fcncel MongoDB yeteneklerine ihtiya\u00e7 duyan projeler i\u00e7in, MongoDB&#8217;nin resmi depolar\u0131ndan kurulumu tercih etmek genellikle daha uygun bir yakla\u015f\u0131md\u0131r.<\/p>\n<p>Se\u00e7ti\u011finiz kurulum y\u00f6ntemi ne olursa olsun, MongoDB&#8217;nin esnekli\u011fi ve \u00f6l\u00e7eklenebilirli\u011fi, modern uygulama geli\u015ftirme i\u00e7in g\u00fc\u00e7l\u00fc bir temel sunar. Art\u0131k MongoDB sunucunuz \u00e7al\u0131\u015f\u0131r durumda oldu\u011funa g\u00f6re, uygulaman\u0131z\u0131 bu g\u00fc\u00e7l\u00fc NoSQL veritaban\u0131yla entegre etmeye ve belge tabanl\u0131 veri modellemenin avantajlar\u0131ndan yararlanmaya ba\u015flayabilirsiniz. Her zaman oldu\u011fu gibi, MongoDB&#8217;nin resmi belgeleri, daha derinlemesine bilgi ve geli\u015fmi\u015f yap\u0131land\u0131rma se\u00e7enekleri i\u00e7in en iyi kaynakt\u0131r.<\/body><\/p>\n","protected":false},"excerpt":{"rendered":"MongoDB&#8217;yi Ubuntu 20.04&#8217;te Varsay\u0131lan APT Depolar\u0131ndan Y\u00fckleme\nMongoDB, modern uygulamalar\u0131n veri depolama ihtiya\u00e7lar\u0131n\u0131 kar\u015f\u0131lamak \u00fczere t","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-32781","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>MongoDB&#039;yi Ubuntu 20.04&#039;te Varsay\u0131lan APT Depolar\u0131ndan Y\u00fckleme - 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\/mongodbyi-ubuntu-20-04te-varsayilan-apt-depolarindan-yukleme\/\" \/>\n<meta property=\"og:locale\" content=\"tr_TR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"MongoDB&#039;yi Ubuntu 20.04&#039;te Varsay\u0131lan APT Depolar\u0131ndan Y\u00fckleme\" \/>\n<meta property=\"og:description\" content=\"MongoDB&#039;yi Ubuntu 20.04&#039;te Varsay\u0131lan APT Depolar\u0131ndan Y\u00fckleme MongoDB, modern uygulamalar\u0131n veri depolama ihtiya\u00e7lar\u0131n\u0131 kar\u015f\u0131lamak \u00fczere t\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fatihsoysal.com\/blog\/mongodbyi-ubuntu-20-04te-varsayilan-apt-depolarindan-yukleme\/\" \/>\n<meta property=\"og:site_name\" content=\"Kodlar\u0131n Gizemli D\u00fcnyas\u0131\" \/>\n<meta property=\"article:published_time\" content=\"2025-10-25T19:41:03+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=\"19 dakika\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodbyi-ubuntu-20-04te-varsayilan-apt-depolarindan-yukleme\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodbyi-ubuntu-20-04te-varsayilan-apt-depolarindan-yukleme\/\"},\"author\":{\"name\":\"Fatih Soysal\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1\"},\"headline\":\"MongoDB&#8217;yi Ubuntu 20.04&#8217;te Varsay\u0131lan APT Depolar\u0131ndan Y\u00fckleme\",\"datePublished\":\"2025-10-25T19:41:03+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodbyi-ubuntu-20-04te-varsayilan-apt-depolarindan-yukleme\/\"},\"wordCount\":3260,\"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\/mongodbyi-ubuntu-20-04te-varsayilan-apt-depolarindan-yukleme\/#respond\"]}],\"copyrightYear\":\"2025\",\"copyrightHolder\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#organization\"}},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodbyi-ubuntu-20-04te-varsayilan-apt-depolarindan-yukleme\/\",\"url\":\"https:\/\/fatihsoysal.com\/blog\/mongodbyi-ubuntu-20-04te-varsayilan-apt-depolarindan-yukleme\/\",\"name\":\"MongoDB'yi Ubuntu 20.04'te Varsay\u0131lan APT Depolar\u0131ndan Y\u00fckleme - Kodlar\u0131n Gizemli D\u00fcnyas\u0131\",\"isPartOf\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/#website\"},\"datePublished\":\"2025-10-25T19:41:03+00:00\",\"breadcrumb\":{\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodbyi-ubuntu-20-04te-varsayilan-apt-depolarindan-yukleme\/#breadcrumb\"},\"inLanguage\":\"tr\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/fatihsoysal.com\/blog\/mongodbyi-ubuntu-20-04te-varsayilan-apt-depolarindan-yukleme\/\"]}]},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/fatihsoysal.com\/blog\/mongodbyi-ubuntu-20-04te-varsayilan-apt-depolarindan-yukleme\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Anasayfa\",\"item\":\"https:\/\/fatihsoysal.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"MongoDB&#8217;yi Ubuntu 20.04&#8217;te Varsay\u0131lan APT Depolar\u0131ndan Y\u00fckleme\"}]},{\"@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":"MongoDB'yi Ubuntu 20.04'te Varsay\u0131lan APT Depolar\u0131ndan Y\u00fckleme - 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\/mongodbyi-ubuntu-20-04te-varsayilan-apt-depolarindan-yukleme\/","og_locale":"tr_TR","og_type":"article","og_title":"MongoDB'yi Ubuntu 20.04'te Varsay\u0131lan APT Depolar\u0131ndan Y\u00fckleme","og_description":"MongoDB'yi Ubuntu 20.04'te Varsay\u0131lan APT Depolar\u0131ndan Y\u00fckleme MongoDB, modern uygulamalar\u0131n veri depolama ihtiya\u00e7lar\u0131n\u0131 kar\u015f\u0131lamak \u00fczere t","og_url":"https:\/\/fatihsoysal.com\/blog\/mongodbyi-ubuntu-20-04te-varsayilan-apt-depolarindan-yukleme\/","og_site_name":"Kodlar\u0131n Gizemli D\u00fcnyas\u0131","article_published_time":"2025-10-25T19:41:03+00:00","author":"Fatih Soysal","twitter_card":"summary_large_image","twitter_misc":{"Yazan:":"Fatih Soysal","Tahmini okuma s\u00fcresi":"19 dakika"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fatihsoysal.com\/blog\/mongodbyi-ubuntu-20-04te-varsayilan-apt-depolarindan-yukleme\/#article","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/mongodbyi-ubuntu-20-04te-varsayilan-apt-depolarindan-yukleme\/"},"author":{"name":"Fatih Soysal","@id":"https:\/\/fatihsoysal.com\/blog\/#\/schema\/person\/002a254750921dcfd568a99e48240dd1"},"headline":"MongoDB&#8217;yi Ubuntu 20.04&#8217;te Varsay\u0131lan APT Depolar\u0131ndan Y\u00fckleme","datePublished":"2025-10-25T19:41:03+00:00","mainEntityOfPage":{"@id":"https:\/\/fatihsoysal.com\/blog\/mongodbyi-ubuntu-20-04te-varsayilan-apt-depolarindan-yukleme\/"},"wordCount":3260,"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\/mongodbyi-ubuntu-20-04te-varsayilan-apt-depolarindan-yukleme\/#respond"]}],"copyrightYear":"2025","copyrightHolder":{"@id":"https:\/\/fatihsoysal.com\/blog\/#organization"}},{"@type":"WebPage","@id":"https:\/\/fatihsoysal.com\/blog\/mongodbyi-ubuntu-20-04te-varsayilan-apt-depolarindan-yukleme\/","url":"https:\/\/fatihsoysal.com\/blog\/mongodbyi-ubuntu-20-04te-varsayilan-apt-depolarindan-yukleme\/","name":"MongoDB'yi Ubuntu 20.04'te Varsay\u0131lan APT Depolar\u0131ndan Y\u00fckleme - Kodlar\u0131n Gizemli D\u00fcnyas\u0131","isPartOf":{"@id":"https:\/\/fatihsoysal.com\/blog\/#website"},"datePublished":"2025-10-25T19:41:03+00:00","breadcrumb":{"@id":"https:\/\/fatihsoysal.com\/blog\/mongodbyi-ubuntu-20-04te-varsayilan-apt-depolarindan-yukleme\/#breadcrumb"},"inLanguage":"tr","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fatihsoysal.com\/blog\/mongodbyi-ubuntu-20-04te-varsayilan-apt-depolarindan-yukleme\/"]}]},{"@type":"BreadcrumbList","@id":"https:\/\/fatihsoysal.com\/blog\/mongodbyi-ubuntu-20-04te-varsayilan-apt-depolarindan-yukleme\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Anasayfa","item":"https:\/\/fatihsoysal.com\/blog\/"},{"@type":"ListItem","position":2,"name":"MongoDB&#8217;yi Ubuntu 20.04&#8217;te Varsay\u0131lan APT Depolar\u0131ndan Y\u00fckleme"}]},{"@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\/32781","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=32781"}],"version-history":[{"count":1,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32781\/revisions"}],"predecessor-version":[{"id":32782,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/posts\/32781\/revisions\/32782"}],"wp:attachment":[{"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/media?parent=32781"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/categories?post=32781"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fatihsoysal.com\/blog\/wp-json\/wp\/v2\/tags?post=32781"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}