---
title: Databáze
description: Vytvoření databáze ve Futrou v1.
---

Na serverletu můžete provozovat několik databázových systémů. Jsou předinstalované a připravené k použití a každou z nich spravujete z administrace.

## Podporované databáze

| Databáze | Použití |
| --- | --- |
| **Redis** | Rychlá key-value databáze vhodná pro cache i primární úložiště dat. |
| **MariaDB** | Relační databáze, fork MySQL. |
| **PostgreSQL** | Pokročilá relační databáze s otevřeným zdrojovým kódem. |
| **MongoDB** | NoSQL dokumentová databáze. |

Databázi vytvořte v administraci serverletu a přístupové údaje vložte do konfigurace aplikace. Tajemství držte mimo zdrojový kód. Při migraci nejprve vytvořte službu, importujte data a až potom přepněte údaje pro připojení v aplikaci.

:::note[Poznámka]

Podporované databáze nejsou omezením platformy. Libovolný software dostupný jako statická binárka pro Linux AMD64 včetně nutných knihoven lze na serverletu provozovat také.

:::

## MariaDB

MariaDB je open-source relační databázový systém, fork MySQL. Poskytuje kompatibilitu s MySQL a další vylepšení; hodí se pro webové aplikace, e-shopy a projekty vyžadující spolehlivá relační data.

> **Poznámka:** MariaDB je kompatibilní s MySQL. Aplikace navržené pro MySQL obvykle fungují s MariaDB bez úprav.

### První použití

MariaDB je na novém serverletu ve výchozím stavu zakázaná. Povolte ji v administraci na kartě **Software**, nebo přes terminál:

```bash
app enable mariadb
app start mariadb
```

![Povolení MariaDB v administraci](/img/docs/v1/enable-mariadb.png)

### Vytváření a správa databází

Novou databázi a uživatelský účet vytvoříte v administraci na kartě **Databáze**.

![Správa MariaDB v administraci](/img/docs/v1/mariadb.png)

Z SSH použijte Futrou DB Manager:

```text
db mariadb list
db mariadb add {název_databáze} {heslo}
db mariadb update {název_databáze} {nové_heslo}
db mariadb del {název_databáze}
```

Například `db mariadb add moje_db tajne_heslo` vytvoří databázi, uživatele a heslo. K databázi se připojíte příkazem `mysql`, případně `mysql -D nazev_databaze`. Konfigurace je v `/srv/config/mariadb/`; hlavní soubor je `my.cnf`.

## PostgreSQL

PostgreSQL je pokročilý relační databázový systém s otevřeným zdrojovým kódem. Je vhodný pro náročné aplikace vyžadující komplexní dotazy, vysokou spolehlivost a transakční integritu.

### První použití

PostgreSQL je ve výchozím stavu zakázané. Povolte a spusťte jej v administraci nebo přes SSH:

```bash
app enable postgresql
app start postgresql
```

![Povolení PostgreSQL v administraci](/img/docs/v1/enable-postgresql.png)

### Vytváření a správa databází

Databázi a uživatele přidáte v administraci na kartě **Databáze**.

![Správa PostgreSQL v administraci](/img/docs/v1/postgresql.png)

V terminálu používejte Futrou DB Manager:

```text
db postgresql list
db postgresql add {název_databáze} {heslo}
db postgresql update {název_databáze} {nové_heslo}
db postgresql del {název_databáze}
```

Příklad: `db postgresql add moje_db tajne_heslo`. Pro práci v konzoli použijte `psql`, nebo `psql -d nazev_databaze`. Konfigurace je v `/srv/config/postgresql/`, hlavní soubor `postgresql.conf`.

## MongoDB

MongoDB je NoSQL dokumentová databáze ukládající data ve formátu BSON (Binary JSON). Hodí se pro aplikace s nestrukturovanými nebo polostrukturovanými daty, flexibilním schématem a potřebou horizontálního škálování.

### První použití

MongoDB je na novém serverletu zakázaná. Povolte ji na kartě **Software** nebo příkazy:

```bash
app enable mongodb
app start mongodb
```

![Povolení MongoDB v administraci](/img/docs/v1/enable-mongodb.png)

### Vytváření a správa databází

Novou databázi a uživatelský účet vytvoříte v administraci na kartě **Databáze**.

![Správa MongoDB v administraci](/img/docs/v1/mongodb.png)

Z SSH použijte DB Manager:

```text
db mongodb list
db mongodb add {název_databáze} {heslo}
db mongodb update {název_databáze} {nové_heslo}
db mongodb del {název_databáze}
```

Například `db mongodb add moje_db tajne_heslo`. Pro připojení použijte `mongosh`. Konfigurace MongoDB je v `/srv/config/mongodb/mongod.conf`.

## Redis

Redis je velmi rychlá key-value databáze. Můžete ji použít jako cache nebo i jako primární úložiště dat.

### První použití

Redis je na novém serverletu zakázaný. Povolte a spusťte jej v administraci nebo přes SSH:

```bash
app enable redis
app start redis
```

![Povolení Redis v administraci](/img/docs/v1/enable-redis.png)

### Ovládání a nastavení

Redis ovládejte příkazem `redis-cli`. Konfigurace je v `/srv/config/redis/redis.conf`. Ve výchozím stavu Redis nemá nastavené heslo a naslouchá na TCP portu `6379`; před vystavením služby mimo serverlet nastavte odpovídající zabezpečení.