[comment]: # ({7af1bbaa-7af1bbaa})
# 1 Datubāzes izveide

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

[comment]: # ({e35a4783-fab90562})
#### Pārskats

Zabbix datubāze ir jāizveido Zabbix servera vai starpniekservera instalēšanas laikā.

Šajā sadaļā ir sniegtas instrukcijas Zabbix datubāzes izveidei.
Katrai atbalstītajai datubāzei ir pieejams atsevišķs instrukciju kopums.

::: noteclassic
Lai uzlabotu datubāzes drošību, izveidojot datubāzes lomas/lietotājus ar minimālajām privilēģijām, skatiet datubāzes izveides paraugpraksi katrai atbalstītajai datubāzei:
<br><br>

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

Lai konfigurētu drošus TLS savienojumus, skatiet [Drošs savienojums ar datubāzi](/manual/appendix/install/db_encrypt).
:::

UTF-8 ir vienīgais Zabbix atbalstītais kodējums.
Ir zināms, ka tas darbojas bez drošības ievainojamībām.
Lietotājiem jāņem vērā, ka, izmantojot dažus citus kodējumus, pastāv zināmas drošības problēmas.
Lai pārslēgtos uz UTF-8, skatiet [Zabbix datubāzes rakstzīmju kopas un kolācijas labošana](/manual/appendix/install/db_charset_coll).
Skatiet arī [Filtrēšanas ierobežojumi ar utf8mb4 kolācijām](/manual/installation/known_issues#limits-of-filtering-with-utf8mb4-collations).

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

[comment]: # ({94aa3a83-fad527fc})
::: noteclassic
Ja instalējat no [Zabbix Git repository](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse?at=refs%2Fheads%2Frelease%2F7.4), pirms turpināt ar nākamajām darbībām, ir jāizpilda šāda komanda:
<br><br>
`make dbschema`
:::

[comment]: # ({/94aa3a83-fad527fc})

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

Rakstzīmju kopas utf8 (jeb utf8mb3) un utf8mb4 tiek atbalstītas (attiecīgi ar utf8_bin un utf8mb4_bin kolāciju), lai Zabbix serveris/starpniekserveris varētu pareizi darboties ar MySQL datubāzi.
Jaunām instalācijām ieteicams izmantot utf8mb4.

Deterministiski trigeri ir jāizveido shēmas importēšanas laikā.
MySQL un MariaDB gadījumā tas prasa iestatīt `GLOBAL log_bin_trust_function_creators = 1`, ja ir iespējota binārā žurnalēšana, nav superlietotāja privilēģiju un MySQL konfigurācijas failā nav iestatīts `log_bin_trust_function_creators = 1`.

Ja instalējat no Zabbix **pakotnēm**, pārejiet uz savas platformas [instrukcijām](https://www.zabbix.com/download).

Ja instalējat Zabbix no pirmkoda: 

* Izveidojiet un konfigurējiet datubāzi un lietotāju.

```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;
```

* Importējiet datus datubāzē un iestatiet utf8mb4 rakstzīmju kopu kā noklusējuma vērtību (pieņemot, ka atrodaties Zabbix pirmkoda saknes direktorijā).
Zabbix starpniekservera datubāzei jāimportē tikai `schema.sql` (nevis images.sql vai data.sql).

```bash
cd database/mysql
mysql -uzabbix -p<password> zabbix < schema.sql
# stop here if you are creating database for Zabbix proxy
mysql -uzabbix -p<password> zabbix < images.sql
mysql -uzabbix -p<password> --default-character-set=utf8mb4 zabbix < data.sql
```

Pēc veiksmīgas shēmas importēšanas `log_bin_trust_function_creators` var atspējot:

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

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

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

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

Jums ir nepieciešams datubāzes lietotājs ar atļaujām izveidot datubāzes objektus.

Ja instalējat no Zabbix **pakotnēm**, pārejiet uz savas platformas [instrukcijām](https://www.zabbix.com/download).

Ja instalējat Zabbix no pirmkoda:

* Izveidojiet datubāzes lietotāju.

Šī shell komanda izveidos lietotāju `zabbix`.
Kad tiks prasīts, norādiet paroli un atkārtojiet to (ņemiet vērā, ka vispirms jums var tikt prasīta `sudo` parole):

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

* Izveidojiet datubāzi.

Šī shell komanda izveidos datubāzi `zabbix` (pēdējais parametrs), izmantojot iepriekš izveidoto lietotāju kā īpašnieku (`-O zabbix`).

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

* Importējiet sākotnējo shēmu un datus (pieņemot, ka atrodaties Zabbix pirmkoda saknes direktorijā).
Zabbix starpniekserveris datubāzei jāimportē tikai `schema.sql` (nevis images.sql vai data.sql).

```bash
cd database/postgresql
cat schema.sql | sudo -u zabbix psql zabbix
# stop here if you are creating database for Zabbix proxy
cat images.sql | sudo -u zabbix psql zabbix
cat data.sql | sudo -u zabbix psql zabbix
```

::: noteimportant
Iepriekš minētās komandas ir sniegtas kā piemērs, kas darbosies lielākajā daļā GNU/Linux instalāciju.
Atkarībā no tā, kā ir konfigurēta jūsu sistēma/datubāze, varat izmantot arī citas komandas, piemēram:
<br><br>
`psql -U <username>`
<br><br>
Ja jums rodas jebkādas problēmas ar datubāzes iestatīšanu, lūdzu, sazinieties ar savu datubāzes administratoru.
:::

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

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

Norādījumi TimescaleDB izveidei un konfigurēšanai ir sniegti atsevišķā [sadaļā](/manual/appendix/install/timescaledb).

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

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

SQLite izmantošana tiek atbalstīta tikai **Zabbix starpniekserverim**!

Ja datubāze nepastāv, tā tiks izveidota automātiski.

Atgriezieties pie [instalēšanas sadaļas](/manual/installation/install).

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