> For the complete documentation index, see [llms.txt](https://ayakaleaf-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://ayakaleaf-pro.ayaka.space/on-premises/tr/bakim/updating-mongodb.md).

# MongoDB'yi güncelleme

{% hint style="info" %}
Server CE/Server Pro'nun herhangi yeni bir 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?

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

Mevcut (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 olabileceğini düşündüğünüz belirli bir sorun yaşarsanız, çekinmeden [bir sorun bildirin](https://github.com/overleaf/overleaf/issues) Server CE kullanıcısıysanız bunu bildirin veya Server Pro kullanıcısıysanız Overleaf Destek ile iletişime geçin.

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

Kabuk açıldığında `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 adımları şöyledir:

1. Yükseltmeyi planladığınız Server CE/Server Pro sürümünü belirleyin.
2. Bu belirli Overleaf Server CE/Server Pro sürümü tarafından önerilen MongoDB sürümünü bulun.
3. MongoDB'yi hedef sürüme yükseltmek için talimatları 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 yükseltmenizdir **Server CE/Server Pro** mevcut en son sürüme, çünkü bunun her zaman destekleneceği garantidir (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 **sonraki** ana sürüm. Dağıtımınız en son sürümün birden fazla ana sürüm gerisindeyse, çok adımlı bir yükseltme yapmanız gerekecektir.

Örneğin, 3.5.10 kullanı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.

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ümden birden fazla ana sürüm gerideyseniz, yapmanız gerekir **kullanmayın** betiği `bin/upgrade` çünkü manuel çok adımlı bir yükseltme yapmanız gerekecektir.
{% endhint %}

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

#### Sürüm destek bilgileri

Daha eski bir sürüme geçmeye karar verirseniz, bu tablo Server CE/Server Pro'nun daha eski 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">Minimum Ö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 ile 2.4.x arası</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 minimum özellik uyumluluk sürümü, gösterilen Overleaf sürümüyle birlikte kullanılması önerilen ilgili MongoDB sürümüne dayanır. Daha yüksek bir sürüm kullanmayı planlıyorsanız, MongoDB'nin kendi minimum gereksinimi olacaktır.
{% endhint %}

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

MongoDB'nin her 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**. Bu, örneğin doğrudan şuradan geçemeyeceğiniz anlamına gelir `4.0` şuraya `5.0`. Önce şunu güncellemeniz gerekir `4.2` şuraya `4.4`, ve ardından `5.0`.

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

#### **MongoDB'yi Docker dışında çalıştırırken güncelleme talimatları**

MongoDB'yi yükseltirken mongodb.com'daki güncelleme talimatlarına bağlantılar burada.

* [MongoDB sürüm notları - MongoDB'yi şuradan yükseltme `4.2` şuraya `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` şuraya `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` şuraya `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` şuraya `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` şuraya `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 sürümler, bağımsız kurulum yerine bir çoğaltma kümesi kurulumuna işaret eder. Server Pro/CE 4.0.1+ işlemleri kullandığından, MongoDB'nin bir çoğaltma kümesi olarak çalıştırılması gerekir.
{% endhint %}

{% hint style="warning" %}
MongoDB 3.2 ile 4.2 arasındaki sürümlerin 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ü gerçekten güncellemeden önce bir uyumluluk bayrağı ayarlamayı gerektirir. Adımlar şöyledir:

1. Uyumluluk bayrağını, MongoDB sürüm notlarında açıklandığı gibi 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üncelle `MONGO_VERSION`, örn. `MONGO_VERSION=6.0`
   2. **Docker Compose kullanıcıları** şu sürümü güncelleyin `mongo` görüntü etiketini,\
      örn. `services -> mongo -> image: mongo:6.0`;

**Örnek: MongoDB'yi şuradan yükseltme `5.0` şuraya `6.0`**

Önce MongoDB'yi ç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 `featureCompatibilityVersion` olarak ayarlanmış olmasıdır `5.0`. 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 şunu kullanarak durduracağız `bin/stop` komutunu kullanıp şunu ayarlayacağız `MONGO_VERSION=6.0` içinde `config/overleaf.rc`, ardından şunu yeniden başlatacağız `mongo` hizmetini şunu 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 şunu kullanarak yeniden oluşturacağız `bin/up -d` komutunu.

Docker Compose kullanıcıları:

Ardından Server CE/Server Pro ve MongoDB örneklerini şunu kullanarak durduracağız `docker compose stop` komutunu kullanarak [`docker-compose.yml`](https://github.com/overleaf/overleaf/blob/4b1babd4ea634ab12c54e9a9aea7db0e8a500941/docker-compose.yml) dosyasını şu şekilde kullanacak biçimde güncelleyin `image: mongo:6.0`, ardından şunu yeniden başlatacağız `mongo` hizmetini şunu kullanarak `docker compose up mongo` komutunu kullanarak 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 şunu kullanarak yeniden oluşturacağız `docker compose up` komutunu.

**Örnek: MongoDB'yi şuradan yükseltme `6.0` şuraya `7.0` (Toolkit kullanıcıları)**

MongoDB'yi ç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 `featureCompatibilityVersion` olarak ayarlanmış olmasıdır `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 şunu kullanarak durduracağız `bin/stop` komutunu kullanıp şunu ayarlayacağız `MONGO_VERSION=7.0` içinde `config/overleaf.rc`, ardından şunu yeniden başlatacağız `mongo` hizmetini şunu 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 şunu kullanarak yeniden oluşturacağız `bin/up -d` komutunu.

**Örnek: MongoDB'yi şuradan yükseltme `7.0` şuraya `8.0` (Toolkit kullanıcıları)**

MongoDB'yi ç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 `featureCompatibilityVersion` olarak ayarlanmış olmasıdır `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` parametresi gerektirdiğine dikkat edin.

```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 şunu kullanarak durduracağız `bin/stop` komutunu kullanıp şunu ayarlayacağız `MONGO_VERSION=8.0` içinde `config/overleaf.rc`, ardından şunu yeniden başlatacağız `mongo` hizmetini şunu 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 şunu 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 biçimde güncelleyin `image: mongo:6.0` mongo sürümünü yükseltmek için
* `docker compose up mongo` mongo hizmetini yeniden başlatmak ve 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 biçimde güncelleyin `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

Sürümünde `5.5.1`, MongoDB için özellik uyumluluk sürümünü doğrulamak üzere bir başlangıç denetimi ekledik. MongoDB veritabanınız kimlik doğrulama kullanıyorsa (örn. temel kimlik doğrulama), `sharelatex` kapsayıcı başlamayabilir ve "*admin üzerinde komutu yürütmek için yetkiniz yok*" izin hatası gösterilebilir.

Bunu çözmek için, aşağıdaki talimatları kullanarak MongoDB'de yeni bir rol oluşturup bunu veritabanına erişmek için kullanılan kullanıcı hesabına atayabilir ya da `ALLOW_MONGO_ADMIN_CHECK_FAILURES=true` denetimin başarısız olmasına izin vererek dağıtımın başlamasını engellememesini sağlayabilirsiniz.

{% hint style="success" %}
Bu yeni rol **yalnızca** kümeye genel 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

# "admin" veritabanına geçin
overleaf [direct: primary] sharelatex> use admin
db admin'e 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 Return tuşuna basın

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

# "sharelatex" veritabanına geri dönün 
use sharelatex
db sharelatex'e 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 Return tuşuna basın 
db.grantRolesToUser(
  "{{YOUR-DATABASE-USER}}",
  [
    { role: "clusterParameterReader", db: "admin" }
  ]
);

# MongoDB kabuğundan çıkmak için exit yazıp Return tuşuna 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://ayakaleaf-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.
