> For the complete documentation index, see [llms.txt](https://overleaf-pro.ayaka.space/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://overleaf-pro.ayaka.space/on-premises/tr/bakim/updating-mongodb.md).

# MongoDB'yi güncelleme

{% hint style="info" %}
Server CE/Server Pro’nun herhangi bir yeni sürümü, desteklenen MongoDB sürümündeki herhangi bir değişikliği kendi [sürüm notlarında](https://docs.overleaf.com/on-premises/release-notes).
{% endhint %}

### MongoDB’yi güncellemem gerekir mi?

Şunu yapmalısınız **yalnızca** MongoDB sürümünüzü, yalnızca Server CE/Server Pro örneğinizi yükseltmeyi planlıyorsanız güncellemeyi düşünmelisiniz.

Şu anki (veya hedef) sürümünüz için önerilenden daha yeni bir MongoDB sürümü kullanıyorsanız herhangi bir değişiklik yapmanıza gerek yoktur.

{% hint style="warning" %}
MongoDB sürümünüzü asla düşürmemelisiniz.
{% endhint %}

Mevcut MongoDB sürümünüzle ilgili olduğunu düşündüğünüz belirli bir sorun yaşıyorsanız, lütfen [bir sorun bildirin](https://github.com/overleaf/overleaf/issues) eğer Server CE kullanıcısıysanız ya da Server Pro kullanıcısıysanız Overleaf Desteği ile iletişime geçin.

### MongoDB sürümünüzü kontrol etme

Açılması `mongo` kabuk mevcut sürümü hemen yazdırmalıdır.

Overleaf Toolkit kullanıcıları:

```bash
bin/docker-compose exec mongo mongod --version
db version v5.0.24
Build Info: {
    "version": "5.0.24",
    "gitVersion": "f034f0c51b3dffef4b8c9452d77ede9888f28f66",
    "openSSLVersion": "OpenSSL 1.1.1f  31 Mar 2020",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "ubuntu2004",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}
```

Docker Compose kullanıcıları:

```bash
docker compose exec mongo mongod --version
db version v5.0.24
Build Info: {
    "version": "5.0.24",
    "gitVersion": "f034f0c51b3dffef4b8c9452d77ede9888f28f66",
    "openSSLVersion": "OpenSSL 1.1.1f  31 Mar 2020",
    "modules": [],
    "allocator": "tcmalloc",
    "environment": {
        "distmod": "ubuntu2004",
        "distarch": "x86_64",
        "target_arch": "x86_64"
    }
}

```

### Güncelleme süreci

Server CE/Server Pro örneğinizi yükseltirken MongoDB sürümünü güncelleme süreci şöyledir:

1. Yükseltmeyi planladığınız Server CE/Server Pro sürümüne karar verin.
2. İlgili Overleaf Server CE/Server Pro sürümü için önerilen MongoDB sürümünü bulun.
3. MongoDB’yi hedef sürüme yükseltme talimatlarını izleyin.
4. Server CE/Server Pro görüntü sürümünü yükseltin ve örneği yeniden başlatın.

Önerimiz her zaman **Server CE/Server Pro** mevcut en son sürüme yükseltmenizdir; çünkü bunun her zaman desteklendiği garanti edilir (yalnızca Server Pro kullanıcıları).

{% hint style="danger" %}
Server CE/Pro yükseltmesi yaparken, dağıtılmış ana sürümün en son sürümüne yükseltmenizi öneririz **önce** şunun en son sürümüne yükseltmeden **bir sonraki** ana sürüm. Dağıtımınız en son sürümün birden fazla ana sürüm gerisindeyse, çok aşamalı bir yükseltme yapmanız gerekecektir.

Örneğin, 3.5.10 çalıştırıyorsanız, 3.5.13’e yükseltmeniz gerekecek -> Tam Proje Geçmişi geçişini gerçekleştirin -> 4.2.9 -> 5.5.4.

Şunu yapmalısınız **asla** ana sürümleri atlamayın (3.5.10 -> 5.5.4). Toolkit kullanıyorsanız ve en son sürümün birden fazla ana sürüm gerisindeyseniz, **yapmamalısınız** şunu kullanın `bin/upgrade` çünkü manuel, çok aşamalı bir yükseltme yapmanız gerekecektir.
{% endhint %}

{% hint style="warning" %}
Gerektiğinde geri dönebilmenizi sağlamak için her ana sürüm yükseltmesinde [tutarlı bir yedek](/on-premises/tr/bakim/data-and-backups.md#performing-a-consistent-backup) **önce** almanız önemlidir.
{% endhint %}

#### Sürüm destek bilgileri

Daha önceki bir sürüme dönmeye karar vermeniz durumunda, bu tablo Server CE/Server Pro’nun önceki sürümleri için önerilen MongoDB sürümünü gösterir, ancak **asla** MongoDB sürümünüzü düşürmelisiniz.

<table><thead><tr><th width="175">Server CE/Server Pro</th><th width="139" align="center">MongoDB Sürümü</th><th align="center">En Düşük Özellik Uyumluluk Sürümü</th><th align="center">Node.js sürücüsü tarafından desteklenen en yüksek sürüm</th></tr></thead><tbody><tr><td>2.0.x</td><td align="center">3.4</td><td align="center">-</td><td align="center">-</td></tr><tr><td>2.1.x - 2.4.x</td><td align="center">3.6</td><td align="center">-</td><td align="center">-</td></tr><tr><td>>=2.5.0</td><td align="center">4.0</td><td align="center">-</td><td align="center">-</td></tr><tr><td>>=3.1.0</td><td align="center">4.2</td><td align="center">-</td><td align="center">-</td></tr><tr><td>>=3.2.0</td><td align="center">4.4</td><td align="center">-</td><td align="center">-</td></tr><tr><td>>=4.2.0</td><td align="center">5.0</td><td align="center">-</td><td align="center">-</td></tr><tr><td>>=5.1.0</td><td align="center">6.0</td><td align="center">-</td><td align="center">-</td></tr><tr><td>>=5.3.1</td><td align="center">6.0</td><td align="center">5.0</td><td align="center">8.0</td></tr><tr><td>>=5.5.0</td><td align="center">6.0</td><td align="center">6.0</td><td align="center">8.0</td></tr><tr><td>6.0.0</td><td align="center">8.0</td><td align="center">8.0</td><td align="center">8.0</td></tr></tbody></table>

{% hint style="danger" %}
Yukarıdaki en düşük özellik uyumluluk sürümü, gösterilen Overleaf sürümüyle kullanılmak üzere önerilen ilgili MongoDB sürümüne dayanmaktadır. Daha yüksek bir sürüm kullanmayı planlıyorsanız, MongoDB’nin kendi asgari gereksinimi olacaktır.
{% endhint %}

MongoDB ile kullanım için desteklenen MongoDB Node.js sürücüsü sürümlerini belirten uyumluluk tablosunu [burada](https://www.mongodb.com/docs/drivers/node/current/reference/compatibility/).

Her MongoDB sürümü için kullanım ömrü sonu durumunu görüntüleyebilirsiniz [burada](https://endoflife.date/mongodb).

#### MongoDB’yi yükseltme

MongoDB **adım adım yükseltmeler**gerektirir. Bu, diyelim ki doğrudan şuradan geçemeyeceğiniz anlamına gelir `4.0` ile `5.0`şuna önce güncellemeniz gerekir `4.2` ile `4.4`, ardından `5.0`.

{% hint style="info" %}
MongoDB, kararlı sürümleri için çift sayıları kullanır.
{% endhint %}

#### **MongoDB Docker dışında çalışırken güncelleme talimatları**

MongoDB’yi yükseltirken mongodb.com’daki güncelleme talimatlarına bağlantılar aşağıdadır.

* [MongoDB sürüm notları - MongoDB’yi şuradan yükseltme `4.2` ile `4.4`](https://www.mongodb.com/docs/v4.4/release-notes/4.4-upgrade-standalone/)
* [MongoDB sürüm notları - MongoDB’yi şuradan yükseltme `4.4` ile `5.0`](https://www.mongodb.com/docs/v5.0/release-notes/5.0-upgrade-replica-set/)
* [MongoDB sürüm notları - MongoDB’yi şuradan yükseltme `5.0` ile `6.0`](https://www.mongodb.com/docs/v6.0/release-notes/6.0-upgrade-replica-set/)
* [MongoDB sürüm notları - MongoDB’yi şuradan yükseltme `6.0` ile `7.0`](https://www.mongodb.com/docs/manual/release-notes/7.0-upgrade-replica-set/#std-label-7.0-upgrade-replica-set)
* [MongoDB sürüm notları - MongoDB’yi şuradan yükseltme `7.0` ile `8.0`](https://www.mongodb.com/docs/manual/release-notes/8.0-upgrade-replica-set/#std-label-8.0-upgrade-replica-set)

{% hint style="info" %}
Şu sürüm için talimatlar `5.0` ve üzeri, tekil kurulum yerine bir replika seti kurulumunu belirtir. Server Pro/CE 4.0.1+ işlemleri kullandığından, MongoDB bir replika seti olarak çalıştırılmalıdır.
{% endhint %}

{% hint style="warning" %}
MongoDB 3.2 ila 4.2 belgeleri artık şuradan erişilebilir: <https://www.mongodb.com/docs/legacy/>
{% endhint %}

**Temel Talimatlar**

Çoğu durumda güncelleme, mongo sürümünü fiilen güncellemeden önce bir uyumluluk bayrağı ayarlamayı gerektirir. Adımlar şöyledir:

1. Uyumluluk bayrağını MongoDB sürüm notlarında açıklandığı şekilde ayarlayın (aşağıdaki örneklere bakın).
2. Ardından mongo görüntüsünü güncelleyin:
   1. **Toolkit kullanıcıları** Güncelleyin `MONGO_VERSION`, örn. `MONGO_VERSION=6.0`
   2. **Docker Compose kullanıcıları** şunun sürümünü güncelleyin `mongo` görüntü etiketinin,\
      örn. `services -> mongo -> image: mongo:6.0`;

**Örnek: MongoDB’yi şuradan yükseltme `5.0` ile `6.0`**

Önce MongoDB çalıştırdığımızdan emin olarak başlayalım `6.0`:

Overleaf Toolkit kullanıcıları:

```bash
bin/docker-compose exec mongo mongod --version
# db version v5.0.24
```

Docker Compose kullanıcıları:

```bash
docker compose exec mongo mongod --version
# db version v5.0.24
```

Şuna göre [yükseltme talimatları](https://docs.mongodb.com/manual/release-notes/3.6-upgrade-standalone/#upgrade-version-path)tek gereksinim şunun ayarlanmış olmasıdır `featureCompatibilityVersion` olarak `5.0`ayarlanmış olmasıdır. Bunu, bir MongoDB kabuğu açıp belirtilen komutu çalıştırarak yapıyoruz:

Overleaf Toolkit kullanıcıları:

```bash
bin/mongo
# MongoDB shell version v5.0.24
# ...
# overleaf:PRIMARY> db.adminCommand( { setFeatureCompatibilityVersion: "5.0" } )
# { 
# "ok" : 1,
# ...
# }
overleaf:PRIMARY> exit
# bye
```

{% hint style="info" %}
Docker Compose kullanıcıları şunu çalıştırabilir `docker compose exec mongo mongosh` bir kabuk açıp Toolkit kullanıcılarıyla aynı komutları çalıştırmak için.
{% endhint %}

Overleaf Toolkit kullanıcıları:

Ardından Server CE/Server Pro ve MongoDB örneklerini şu komutu kullanarak durduracağız: `bin/stop` komutunu kullanarak, şunu ayarlayacak `MONGO_VERSION=6.0` içindeki `config/overleaf.rc`ardından şunu yeniden başlatacağız `mongo` hizmeti şu komutu kullanarak `bin/up mongo`güncellemenin sorunsuz ilerlediğini doğrulamak için.

Son olarak, Server CE/Server Pro görüntü sürümünü hedef sürümümüze güncelleyecek ve tüm hizmetleri şu komutu kullanarak yeniden oluşturacağız: `bin/up -d` komutunu.

Docker Compose kullanıcıları:

Ardından Server CE/Server Pro ve MongoDB örneklerini şu komutu kullanarak durduracağız: `docker compose stop` komutunu kullanarak, şunu güncelleyin [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) dosyasını şu şekilde kullanacak `image: mongo:6.0`ardından şunu yeniden başlatacağız `mongo` hizmetini şu komutu kullanarak `docker compose up mongo` komutunu kullanarak güncellemenin sorunsuz ilerlediğini doğrulayın.

Son olarak, Server CE/Server Pro görüntü sürümünü hedef sürümümüze güncelleyecek ve tüm hizmetleri şu komutu kullanarak yeniden oluşturacağız: `docker compose up` komutunu.

**Örnek: MongoDB’yi şuradan yükseltme `6.0` ile `7.0` (toolkit kullanıcıları)**

MongoDB çalıştırdığınızdan emin olarak başlayın `6.0` şunu kullanarak `mongod --version` yukarıdaki komutlar.

Şuna göre [yükseltme talimatları](https://www.mongodb.com/docs/manual/release-notes/7.0-upgrade-replica-set/#std-label-7.0-upgrade-replica-set)tek gereksinim şunun ayarlanmış olmasıdır `featureCompatibilityVersion` olarak `6.0`. Bunu, bir MongoDB kabuğu açıp şu komutu çalıştırarak yapıyoruz `db.adminCommand({ setFeatureCompatibilityVersion: "6.0" })` .

Overleaf Toolkit kullanıcıları:

```bash
bin/mongo
# ...
# overleaf:PRIMARY> db.adminCommand( { setFeatureCompatibilityVersion: "6.0" } )
# { 
# "ok" : 1,
# ...
# }
overleaf:PRIMARY> exit
# bye
```

Ardından Server CE/Server Pro ve MongoDB örneklerini şu komutu kullanarak durduracağız: `bin/stop` komutunu kullanarak, şunu ayarlayacak `MONGO_VERSION=7.0` içindeki `config/overleaf.rc`ardından şunu yeniden başlatacağız `mongo` hizmeti şu komutu kullanarak `bin/up mongo`güncellemenin sorunsuz ilerlediğini doğrulamak için.

Son olarak, Server CE/Server Pro görüntü sürümünü hedef sürümümüze güncelleyecek ve tüm hizmetleri şu komutu kullanarak yeniden oluşturacağız: `bin/up -d` komutunu.

**Örnek: MongoDB’yi şuradan yükseltme `7.0` ile `8.0` (toolkit kullanıcıları)**

MongoDB çalıştırdığınızdan emin olarak başlayın `7.0` şunu kullanarak `mongod --version` yukarıdaki komutlar.

Şuna göre [yükseltme talimatları](https://www.mongodb.com/docs/manual/release-notes/8.0-upgrade-replica-set/#std-label-8.0-upgrade-replica-set)tek gereksinim şunun ayarlanmış olmasıdır `featureCompatibilityVersion` olarak `7.0`. Bunu, bir MongoDB kabuğu açıp şu komutu çalıştırarak yapıyoruz `db.adminCommand({ setFeatureCompatibilityVersion: "7.0", confirm: true })`. Bunun artık ek bir `confirm: true` parametre gerektirdiğini unutmayın.

```bash
bin/mongo
# ...
# overleaf:PRIMARY> db.adminCommand( { setFeatureCompatibilityVersion: "7.0", confirm: true } )
# { 
# "ok" : 1,
# ...
# }
overleaf:PRIMARY> exit
# bye
```

Ardından Server CE/Server Pro ve MongoDB örneklerini şu komutu kullanarak durduracağız: `bin/stop` komutunu kullanarak, şunu ayarlayacak `MONGO_VERSION=8.0` içindeki `config/overleaf.rc`ardından şunu yeniden başlatacağız `mongo` hizmeti şu komutu kullanarak `bin/up mongo`güncellemenin sorunsuz ilerlediğini doğrulamak için.

Son olarak, Server CE/Server Pro görüntü sürümünü hedef sürümümüze güncelleyecek ve tüm hizmetleri şu komutu kullanarak yeniden oluşturacağız: `bin/up -d` komutunu.

#### Docker compose kullanıcıları için eşdeğer komutlar

Docker compose kullanıcıları için eşdeğer komutlar şunlardır:

* `docker compose exec mongo mongod --version` mongo sürümünü görüntülemek için
* `docker compose exec mongo mongosh` yönetici komutları için bir mongo kabuğu başlatmak için
* `docker compose stop` sunucuyu durdurma komutu
* Şunu düzenleyin: [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) dosyasını şu şekilde kullanacak `image: mongo:6.0` mongo sürümünü yükseltmek için
* `docker compose up mongo` mongo hizmetini yeniden başlatıp güncellemenin sorunsuz ilerlediğini doğrulamak için
* Şunu düzenleyin: [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) dosyasını şu şekilde kullanacak `image: sharelatex:VERSION` görüntü sürümünü yükseltmek için
* `docker compose up` tüm hizmetleri yeniden oluşturmak için.

### Özel bir rol oluşturma

Şu sürümde `5.5.1`, MongoDB için özellik uyumluluk sürümünü doğrulayan bir başlatma kontrolü ekledik. MongoDB veritabanınız kimlik doğrulama kullanıyorsa (örn. temel kimlik doğrulama), `sharelatex` konteyner başlamayabilir ve bir "*admin üzerinde komutu yürütmeye yetkili değil*" izin hatası gösterebilir.

Bunu çözmek için, aşağıdaki talimatları kullanarak MongoDB’de yeni bir rol oluşturup veritabanına erişmek için kullanılan kullanıcı hesabına atayabilir veya şunu ayarlayabilirsiniz: `ALLOW_MONGO_ADMIN_CHECK_FAILURES=true` kontrolün, dağıtımın başlamasını engellemeden başarısız olmasına izin vermek için.

{% hint style="success" %}
Bu yeni rol **yalnızca** küme genelindeki MongoDB sunucu parametrelerini okuma izni verir ve izleme amaçları için yeniden kullanılabilir,
{% endhint %}

{% code overflow="wrap" %}

```bash
# Toolkit kullanıcıları
$ bin/docker-compose exec -it mongo mongosh -u {{YOUR-ADMIN-USERNAME}} -p

# Aşağıdakini kullanarak "admin" veritabanına geçin
overleaf [direct: primary] sharelatex> use admin
admin veritabanına geçildi
overleaf [direct: primary] admin> 

# "getParamter" kullanma iznine sahip yeni bir rol oluşturun. Aşağıdaki işlevi kabuğa kopyalayıp yapıştırın ve Enter tuşuna basın

db.createRole(
  {
    role: "clusterParameterReader",
    privileges: [
      {
        resource: { cluster: true },
        actions: ["getParameter"]    
      }
    ],
    roles: [] 
  }
);

# "sharelatex" veritabanına geri dönün 
use sharelatex
sharelatex veritabanına geçildi
overleaf [direct: primary] sharelatex> 

# Aşağıdaki işlevi kabuğa kopyalayıp yapıştırarak yeni "clusterParameterReader" rolünü veritabanı kullanıcınıza atayın ve Enter tuşuna basın 
db.grantRolesToUser(
  "{{YOUR-DATABASE-USER}}",
  [
    { role: "clusterParameterReader", db: "admin" }
  ]
);

# MongoDB kabuğundan çıkmak için exit yazıp Enter'a basın
# Dağıtım yığınını başlatmak için bin/up -d çalıştırın
$ bin/up -d
```

{% endcode %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

## Querying This Documentation
If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter, and the optional `goal` query parameter:

```
GET https://overleaf-pro.ayaka.space/on-premises/tr/bakim/updating-mongodb.md?ask=<question>&goal=<endgoal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
