[comment]: # ({7af1bbaa-7af1bbaa})
# 1 Creazione del database

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

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

Un database Zabbix deve essere creato durante l'installazione di Zabbix server o proxy.

Questa sezione fornisce istruzioni per creare un database Zabbix.
Per ciascun database supportato è disponibile un insieme separato di istruzioni.

::: noteclassic
Per migliorare la sicurezza del database creando ruoli/utenti del database con privilegi minimi, vedere le best practice per la creazione del database per ciascun database supportato:
<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)

Per configurare connessioni TLS sicure, vedere [Secure connection to the database](/manual/appendix/install/db_encrypt).
:::

UTF-8 è l'unica codifica supportata da Zabbix.
È noto che funziona senza alcuna vulnerabilità di sicurezza.
Gli utenti devono essere consapevoli che esistono problemi di sicurezza noti se si utilizzano alcune delle altre codifiche.
Per passare a UTF-8, vedere [Repairing Zabbix database character set and collation](/manual/appendix/install/db_charset_coll).
Vedere anche [Limits of filtering with utf8mb4 collations](/manual/installation/known_issues#limits-of-filtering-with-utf8mb4-collations).

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

[comment]: # ({44d449fd-fad527fc})
::: noteclassic
Se si esegue l'installazione da [Zabbix Git repository](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse), è necessario eseguire il seguente comando prima di procedere ai passaggi successivi:
<br><br>
`make dbschema`
:::

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

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

I set di caratteri utf8 (detto anche utf8mb3) e utf8mb4 sono supportati (con le rispettive collation utf8_bin e utf8mb4_bin) affinché server/proxy di Zabbix funzionino correttamente con il database MySQL.
Per le nuove installazioni, si consiglia di usare utf8mb4.

I trigger deterministici devono essere creati durante l'importazione dello schema.
Su MySQL e MariaDB, ciò richiede che `GLOBAL log_bin_trust_function_creators = 1` sia impostato se il binary logging è abilitato e non si dispone dei privilegi di superuser e `log_bin_trust_function_creators = 1` non è impostato nel file di configurazione di MySQL.

Se stai installando Zabbix da [packages](https://www.zabbix.com/download) o [containers](/manual/installation/containers), consulta le rispettive istruzioni.

Se stai installando Zabbix dai sorgenti: 

* Crea e configura un database e un utente.

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

* Importa i dati nel database e imposta utf8mb4 come set di caratteri predefinito (supponendo che tu sia nella directory root dei sorgenti di Zabbix).
Per un database di Zabbix proxy, deve essere importato solo `schema.sql` (non `images.sql` né `data.sql`).

```bash
cd database/mysql
mysql -uzabbix -p<password> zabbix < schema.sql
# fermati qui se stai creando il database per Zabbix proxy
mysql -uzabbix -p<password> zabbix < images.sql
mysql -uzabbix -p<password> --default-character-set=utf8mb4 zabbix < data.sql
```

`log_bin_trust_function_creators` può essere disabilitato dopo che lo schema è stato importato con successo:

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

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

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

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

È necessario disporre di un utente del database con i permessi per creare oggetti del database.

Se stai installando Zabbix da [pacchetti](https://www.zabbix.com/download) o [container](/manual/installation/containers), consulta le rispettive istruzioni.

Se stai installando Zabbix dai sorgenti:

* Crea un utente del database.

Il seguente comando shell creerà l'utente `zabbix`.
Specifica una password quando richiesto e ripeti la password (nota che potresti prima essere richiesto di inserire la password di `sudo`):

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

* Crea un database.

Il seguente comando shell creerà il database `zabbix` (ultimo parametro) con l'utente creato in precedenza come proprietario (`-O zabbix`).

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

* Importa lo schema iniziale e i dati (supponendo che tu sia nella directory root dei sorgenti di Zabbix).
Per un database di Zabbix proxy, deve essere importato solo `schema.sql` (non `images.sql` né `data.sql`).

```bash
cd database/postgresql
cat schema.sql | sudo -u zabbix psql zabbix
# fermati qui se stai creando il database per Zabbix proxy
cat images.sql | sudo -u zabbix psql zabbix
cat data.sql | sudo -u zabbix psql zabbix
```

::: noteimportant
I comandi sopra sono forniti come esempio e funzioneranno nella maggior parte delle installazioni GNU/Linux.
Puoi usare comandi diversi a seconda di come è configurato il tuo sistema/database, ad esempio:
<br><br>
`psql -U <username>`
<br><br>
Se hai problemi nella configurazione del database, consulta l'amministratore del database.
:::

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

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

Le istruzioni per creare e configurare TimescaleDB sono fornite in una [sezione](/manual/appendix/install/timescaledb) separata.

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

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

Le istruzioni per creare e configurare un database Oracle sono fornite in una [sezione](/manual/appendix/install/oracle) separata.

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

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

L'uso di SQLite è supportato solo per **Zabbix proxy**!

Il database verrà creato automaticamente se non esiste.

Torna alla [sezione di installazione](/manual/installation/install).

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