[comment]: # ({7af1bbaa-7af1bbaa})
# 1 Tworzenie bazy danych

[comment]: # ({/7af1bbaa-7af1bbaa})

[comment]: # ({ce45ad34-fab90562})
#### Przegląd

Baza danych Zabbix musi zostać utworzona podczas instalacji serwera Zabbix lub proxy.

Ta sekcja zawiera instrukcje dotyczące tworzenia bazy danych Zabbix.
Dla każdej obsługiwanej bazy danych dostępny jest osobny zestaw instrukcji.

::: noteclassic
Aby poprawić bezpieczeństwo bazy danych poprzez tworzenie ról/użytkowników bazy danych z minimalnymi uprawnieniami, zobacz najlepsze praktyki tworzenia bazy danych dla każdej obsługiwanej bazy danych:
<br><br>

-   [MySQL/MariaDB](/manual/best_practices/security/access_control/mysql)
-   [PostgreSQL/TimescaleDB](/manual/best_practices/security/access_control/postgresql)
-   [Oracle](/manual/best_practices/security/access_control/oracle)

Informacje o konfigurowaniu bezpiecznych połączeń TLS znajdziesz w sekcji [Bezpieczne połączenie z bazą danych](/manual/appendix/install/db_encrypt).
:::

UTF-8 jest jedynym kodowaniem obsługiwanym przez Zabbix.
Wiadomo, że działa bez żadnych luk bezpieczeństwa.
Użytkownicy powinni mieć świadomość, że w przypadku używania niektórych innych kodowań występują znane problemy bezpieczeństwa.
Aby przełączyć się na UTF-8, zobacz [Naprawa zestawu znaków i sortowania bazy danych Zabbix](/manual/appendix/install/db_charset_coll).
Zobacz także [Ograniczenia filtrowania z użyciem sortowań utf8mb4](/manual/installation/known_issues#limits-of-filtering-with-utf8mb4-collations).

[comment]: # ({/ce45ad34-fab90562})

[comment]: # ({44d449fd-fad527fc})
::: noteclassic
Jeśli instalujesz z [repozytorium Git Zabbix](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse), przed przejściem do kolejnych kroków musisz uruchomić następujące polecenie:
<br><br>
`make dbschema`
:::

[comment]: # ({/44d449fd-fad527fc})

[comment]: # ({662036d6-1e36e539})
#### MySQL/MariaDB

Zestawy znaków utf8 (znany także jako utf8mb3) i utf8mb4 są obsługiwane (odpowiednio z sortowaniem utf8_bin i utf8mb4_bin), aby serwer/proxy Zabbix działał poprawnie z bazą danych MySQL.
Zaleca się używanie utf8mb4 w nowych instalacjach.

Deterministyczne wyzwalacze muszą zostać utworzone podczas importu schematu.
W MySQL i MariaDB wymaga to ustawienia `GLOBAL log_bin_trust_function_creators = 1`, jeśli włączone jest binarne logowanie, nie ma uprawnień superużytkownika, a `log_bin_trust_function_creators = 1` nie jest ustawione w pliku konfiguracyjnym MySQL.

Jeśli instalujesz Zabbix z [pakietów](https://www.zabbix.com/download) lub [kontenerów](/manual/installation/containers), zapoznaj się z odpowiednimi instrukcjami.

Jeśli instalujesz Zabbix ze źródeł:

* Utwórz i skonfiguruj bazę danych oraz użytkownika.

```bash
mysql -uroot -p<password>

mysql> create database zabbix character set utf8mb4 collate utf8mb4_bin;
mysql> create user 'zabbix'@'localhost' identified by '<password>';
mysql> grant all privileges on zabbix.* to 'zabbix'@'localhost';
mysql> SET GLOBAL log_bin_trust_function_creators = 1;
mysql> quit;
```

* Zaimportuj dane do bazy danych i ustaw zestaw znaków utf8mb4 jako domyślny (zakładając, że znajdujesz się w katalogu głównym źródeł Zabbix).
W przypadku bazy danych proxy Zabbix należy zaimportować tylko `schema.sql` (bez `images.sql` ani `data.sql`).

```bash
cd database/mysql
mysql -uzabbix -p<password> zabbix < schema.sql
# zatrzymaj się tutaj, jeśli tworzysz bazę danych dla proxy Zabbix
mysql -uzabbix -p<password> zabbix < images.sql
mysql -uzabbix -p<password> --default-character-set=utf8mb4 zabbix < data.sql
```

`log_bin_trust_function_creators` można wyłączyć po pomyślnym zaimportowaniu schematu:

```bash
mysql -uroot -p<password>

mysql> SET GLOBAL log_bin_trust_function_creators = 0;
mysql> quit;
```

[comment]: # ({/662036d6-1e36e539})

[comment]: # ({55f587f3-61d6043c})
#### PostgreSQL

Musisz mieć użytkownika bazy danych z uprawnieniami do tworzenia obiektów bazy danych.

Jeśli instalujesz Zabbix z [pakietów](https://www.zabbix.com/download) lub [kontenerów](/manual/installation/containers), zapoznaj się z odpowiednimi instrukcjami.

Jeśli instalujesz Zabbix ze źródeł:

* Utwórz użytkownika bazy danych.

Poniższe polecenie powłoki utworzy użytkownika `zabbix`.
Podaj hasło, gdy zostaniesz o nie poproszony, i powtórz hasło (uwaga: najpierw możesz zostać poproszony o hasło `sudo`):

```bash
sudo -u postgres createuser --pwprompt zabbix
```

* Utwórz bazę danych.

Poniższe polecenie powłoki utworzy bazę danych `zabbix` (ostatni parametr) z wcześniej utworzonym użytkownikiem jako właścicielem (`-O zabbix`).

```bash
sudo -u postgres createdb -O zabbix -E Unicode -T template0 zabbix
```

* Zaimportuj początkowy schemat i dane (zakładając, że znajdujesz się w katalogu głównym źródeł Zabbix).
W przypadku bazy danych Zabbix proxy należy zaimportować tylko `schema.sql` (bez `images.sql` ani `data.sql`).

```bash
cd database/postgresql
cat schema.sql | sudo -u zabbix psql zabbix
# zatrzymaj się tutaj, jeśli tworzysz bazę danych dla Zabbix proxy
cat images.sql | sudo -u zabbix psql zabbix
cat data.sql | sudo -u zabbix psql zabbix
```

::: noteimportant
Powyższe polecenia są podane jako przykład, który będzie działał w większości instalacji GNU/Linux.
Możesz użyć innych poleceń w zależności od tego, jak skonfigurowany jest Twój system/baza danych, na przykład:
<br><br>
`psql -U <username>`
<br><br>
Jeśli masz jakiekolwiek problemy z konfiguracją bazy danych, skonsultuj się z administratorem bazy danych.
:::

[comment]: # ({/55f587f3-61d6043c})

[comment]: # ({2e49279b-cc68ca58})
#### TimescaleDB

Instrukcje dotyczące tworzenia i konfiguracji TimescaleDB znajdują się w osobnej [sekcji](/manual/appendix/install/timescaledb).

[comment]: # ({/2e49279b-cc68ca58})

[comment]: # ({3ed94695-7b4d56a7})
#### Oracle

Instrukcje dotyczące tworzenia i konfigurowania bazy danych Oracle są dostępne w osobnej [sekcji](/manual/appendix/install/oracle).

[comment]: # ({/3ed94695-7b4d56a7})

[comment]: # ({e8161295-02d49e4f})
#### SQLite

Korzystanie z SQLite jest obsługiwane tylko dla **Zabbix proxy**!

Baza danych zostanie utworzona automatycznie, jeśli nie istnieje.

Wróć do [sekcji instalacji](/manual/installation/install).

[comment]: # ({/e8161295-02d49e4f})
