[comment]: # ({7af1bbaa-7af1bbaa})
# 1 Criação do banco de dados

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

[comment]: # ({e35a4783-fab90562})
#### Visão geral

Um banco de dados Zabbix deve ser criado durante a instalação do server ou proxy Zabbix.

Esta seção fornece instruções para criar um banco de dados Zabbix.
Um conjunto separado de instruções está disponível para cada banco de dados suportado.

::: noteclassic
Para melhorar a segurança do banco de dados criando funções/usuários de banco de dados com privilégios mínimos, consulte as melhores práticas de criação de banco de dados para cada banco de dados suportado:
<br><br>

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

Para configurar conexões TLS seguras, consulte [Conexão segura com o banco de dados](/manual/appendix/install/db_encrypt).
:::

UTF-8 é a única codificação suportada pelo Zabbix.
Sabe-se que funciona sem falhas de segurança.
Os usuários devem estar cientes de que existem problemas de segurança conhecidos ao usar algumas das outras codificações.
Para mudar para UTF-8, consulte [Reparando o conjunto de caracteres e a ordenação do banco de dados Zabbix](/manual/appendix/install/db_charset_coll).
Veja também [Limites de filtragem com ordenações utf8mb4](/manual/installation/known_issues#limits-of-filtering-with-utf8mb4-collations).

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

[comment]: # ({94aa3a83-fad527fc})
::: noteclassic
Se estiver instalando a partir do [repositório Git do Zabbix](https://git.zabbix.com/projects/ZBX/repos/zabbix/browse?at=refs%2Fheads%2Frelease%2F7.4), você precisa executar o seguinte comando antes de prosseguir para as próximas etapas:
<br><br>
`make dbschema`
:::

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

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

Os conjuntos de caracteres utf8 (também conhecido como utf8mb3) e utf8mb4 são suportados (com as colações utf8_bin e utf8mb4_bin, respectivamente) para que o Zabbix server/proxy funcione corretamente com o banco de dados MySQL.
Recomenda-se usar utf8mb4 para novas instalações.

Triggers determinísticas precisam ser criadas durante a importação do schema.
No MySQL e MariaDB, isso requer que `GLOBAL log_bin_trust_function_creators = 1` seja definido se o log binário estiver habilitado e não houver privilégios de superusuário e `log_bin_trust_function_creators = 1` não estiver definido no arquivo de configuração do MySQL.

Se você estiver instalando a partir dos **pacotes** do Zabbix, siga as [instruções](https://www.zabbix.com/download) para sua plataforma.

Se você estiver instalando o Zabbix a partir do código-fonte:

* Crie e configure um banco de dados e um usuário.

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

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

* Importe os dados para o banco de dados e defina o conjunto de caracteres utf8mb4 como padrão (assumindo que você está no diretório raiz do código-fonte do Zabbix).
Para um banco de dados de proxy do Zabbix, apenas o `schema.sql` deve ser importado (não importando images.sql nem data.sql).

```bash
cd database/mysql
mysql -uzabbix -p<senha> zabbix < schema.sql
# pare aqui se estiver criando o banco de dados para o Zabbix proxy
mysql -uzabbix -p<senha> zabbix < images.sql
mysql -uzabbix -p<senha> --default-character-set=utf8mb4 zabbix < data.sql
```

`log_bin_trust_function_creators` pode ser desabilitado após o schema ter sido importado com sucesso:

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

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

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

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

Você precisa ter um usuário de banco de dados com permissões para criar objetos de banco de dados.

Se você estiver instalando a partir dos **pacotes** do Zabbix, siga as [instruções](https://www.zabbix.com/download) para sua plataforma.

Se você estiver instalando o Zabbix a partir do código-fonte:

* Crie um usuário de banco de dados.

O seguinte comando shell criará o usuário `zabbix`.
Especifique uma senha quando solicitado e repita a senha (observe que, primeiro, pode ser solicitada a senha do `sudo`):

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

* Crie um banco de dados.

O seguinte comando shell criará o banco de dados `zabbix` (último parâmetro) com o usuário criado anteriormente como proprietário (`-O zabbix`).

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

* Importe o schema inicial e os dados (assumindo que você está no diretório raiz do código-fonte do Zabbix).
Para um banco de dados de proxy do Zabbix, apenas o `schema.sql` deve ser importado (não images.sql nem data.sql).

```bash
cd database/postgresql
cat schema.sql | sudo -u zabbix psql zabbix
# pare aqui se estiver criando o banco de dados para o proxy do Zabbix
cat images.sql | sudo -u zabbix psql zabbix
cat data.sql | sudo -u zabbix psql zabbix
```

::: noteimportant
Os comandos acima são fornecidos como exemplo e funcionarão na maioria das instalações GNU/Linux.
Você pode usar comandos diferentes dependendo de como seu sistema/banco de dados está configurado, por exemplo:
<br><br>
`psql -U <username>`
<br><br>
Se você tiver algum problema ao configurar o banco de dados, consulte o administrador do seu banco de dados.
:::

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

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

As instruções para criar e configurar o TimescaleDB são fornecidas em uma [seção](/manual/appendix/install/timescaledb) separada.

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

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

O uso do SQLite é suportado apenas para o **Zabbix proxy**!

O banco de dados será criado automaticamente se não existir.

Retorne à [seção de instalação](/manual/installation/install).

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