# Tudo sobre MariaDB logs

Logs do MariaDB oferecem recursos abrangentes que ajudam você a monitorar e otimizar suas instâncias de banco de dados. Apresentamos os diferentes tipos de MariaDB logs e ensinamos como configurá-los e ativá-los.

## Quais tipos de MariaDB logs existem?

O [MariaDB](https://www.ionos.com/pt-br/digitalguide/servidor/conhecimento/banco-de-dados-mariadb/) disponibiliza **quatro tipos principais de log**, que registram diferentes aspectos do funcionamento do banco de dados:

### Error log

O log de erros **documenta eventos críticos**, como inicializações e desligamentos do servidor, falhas ou outros erros graves. Ele vem ativado por padrão e auxilia no diagnóstico de problemas no servidor.

### General query log

O log geral do MariaDB **registra todas as conexões ao servidor e todos os comandos SQL executados**. Por isso, é útil para análise de erros e monitoramento das atividades dos usuários.

### Binary log

O log binário do MariaDB **registra todas as alterações no banco de dados**, incluindo alterações em dados e na estrutura do banco de dados. Ele é essencial para replicações e restaurações com base em um ponto no tempo (*point-in-time recovery*).

### Slow query log

O log de consultas lentas do MariaDB **lista as consultas SQL** que excedem um determinado tempo de execução. Ele é uma ferramenta valiosa para identificar e otimizar gargalos de desempenho.

## Passo a passo: Como configurar e usar MariaDB logs

A seguir, mostramos como ativar, configurar e analisar os quatro principais arquivos de log do MariaDB. Vamos abordar o log de erros, o log geral, o log binário, o log de consultas lentas e mostrar onde os logs do MariaDB ficam armazenados.

### Pré-requisitos

- Um servidor com uma versão atual do **Ubuntu** ou outra distribuição Linux
- Uma conta de usuário com permissões de [sudo](https://www.ionos.com/pt-br/digitalguide/servidor/configuracao/comando-sudo-do-linux/)
- **Nenhuma instalação paralela do MySQL**, já que o MySQL e o MariaDB entram em conflito em arquivos de configuração e portas
- Conhecimentos básicos em SQL

### Passo 1: Exibir e configurar o error log

Primeiramente, [instale o MariaDB](https://www.ionos.com/pt-br/digitalguide/hospedagem/tecnologia-de-hospedagem/instalar-mariadb-mysql/), caso ele não esteja instalado. Para isso, execute o seguinte comando:

```bash
sudo apt update
sudo apt install mariadb-server
```

O comando atualiza primeiro a lista de pacotes do seu sistema e, em seguida, instala o servidor MariaDB.

Para se conectar ao MariaDB, execute o seguinte comando:

```bash
sudo mariadb
```

Isso abrirá o console interativo SQL como administrador.

Na etapa seguinte, verifique para onde o MariaDB está registrando mensagens como erros. Para isso, use esta instrução SQL:

```sql
SHOW VARIABLES LIKE '%log_error%';
```

Se o valor de `log_error` estiver vazio, os erros serão registrados por padrão no log central do sistema (`syslog`).

Para visualizar esse log, utilize o seguinte comando:

```bash
journalctl -u mariadb.service
```

Com isso, você obterá uma **lista cronológica das mensagens do sistema** geradas pelo serviço MariaDB. Isso é útil para investigar erros de inicialização ou outros eventos críticos.

Se preferir usar um **arquivo próprio de log de erros**, será necessário editar o arquivo de configuração. Abra-o com um editor de texto, como o nano:

```bash
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
```

Procure pela seção `[mysqld]` e adicione a seguinte linha ou remova o comentário dela, se já estiver presente:

```txt
log_error = /var/log/mariadb/error.log
```

Agora, verifique se o diretório especificado existe e tem as permissões corretas. Execute estes comandos:

```bash
sudo mkdir /var/log/mariadb
sudo chown mysql:mysql /var/log/mariadb
```

Esses comandos criam o diretório e atribuem a ele o usuário e grupo `mysql`, para que o MariaDB tenha permissão de escrita no local do log.

Em seguida, reinicie o serviço MariaDB para aplicar as alterações de configuração:

```bash
sudo systemctl restart mariadb
```

Por fim, você poderá visualizar o log de erros:

```bash
sudo cat /var/log/mariadb/error.log
```

Lá você encontrará informações sobre horários de inicialização, avisos ou problemas com plugins.

### Passo 2: Ativar o general query log

Para verificar o status atual, abra o console SQL e execute o seguinte comando:

```sql
SHOW VARIABLES LIKE '%general%';
```

Lá você verá se o general query log está ativo (`general_log = ON`) e onde ele está armazenado (`general_log_file`).

Para ativar esses logs do MariaDB permanentemente, edite novamente o arquivo de configuração:

```bash
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
```

Adicione as seguintes linhas na seção `[mysqld]`:

```ini
general_log = 1
general_log_file = /var/log/mariadb/general-query.log
```

Depois, reinicie o serviço:

```bash
sudo systemctl restart mariadb
```

Para visualizar as entradas registradas, use:

```bash
sudo cat /var/log/mariadb/general-query.log
```

Lá você encontrará todas as consultas SQL e conexões ao banco, incluindo o carimbo de data e hora. Isso ajuda a identificar quando cada solicitação foi feita.

### Passo 3: Ativar o binary log

Para configurar o binary log, edite novamente o arquivo de configuração usado anteriormente:

```bash
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
```

Adicione os seguintes parâmetros na seção `[mysqld]`:

```txt
log_bin = /var/log/mariadb/binary.log
server_id = 1
binlog_format = ROW
```

O `server_id` é importante para replicação (cada servidor precisa de um ID único). Com `binlog_format = ROW`, cada alteração nos dados é registrada no log de forma detalhada, linha por linha.

Reinicie o servidor:

```bash
sudo systemctl restart mariadb
```

Para verificar se o binary log está ativo, digite no console SQL:

```sql
SHOW BINARY LOGS;
```

Serão exibidos os arquivos de log binário ativos, com nome e tamanho.

Para ler o conteúdo de um arquivo, use o seguinte comando:

```bash
sudo mysqlbinlog /var/log/mariadb/binary.000001
```

Você verá todas as operações de alteração listadas em ordem cronológica.

### Passo 4: Ativar o slow query log

Edite o arquivo de configuração:

```bash
sudo nano /etc/mysql/mariadb.conf.d/50-server.cnf
```

Adicione o seguinte:

```txt
slow_query_log = 1
slow_query_log_file = /var/log/mariadb/slow-query.log
long_query_time = 10
```

Aqui, `long_query_time = 10` significa que todas as consultas que demorarem mais de dez segundos serão registradas.

Depois, reinicie o serviço:

```bash
sudo systemctl restart mariadb
```

Verifique se o log está ativo:

```sql
SHOW VARIABLES LIKE '%slow_query_log%';
```

Execute uma consulta de teste que é intencionalmente lenta:

```sql
SELECT SLEEP(12);
```

Esse comando instrui o servidor a aguardar doze segundos antes de concluir a execução. Assim, a consulta deverá aparecer no slow query log.

Por fim, você pode visualizar o log com:

```bash
sudo cat /var/log/mariadb/slow-query.log
```

Lá você encontrará o carimbo de data/hora, o tempo da consulta e o comando SQL executado.

Para saber mais sobre análises de arquivos de log, acesse o artigo especializado do nosso Digital Guide.


This is a markdown version of: [https://www.ionos.com/pt-br/digitalguide/hospedagem/tecnologia-de-hospedagem/mariadb-logs/](https://www.ionos.com/pt-br/digitalguide/hospedagem/tecnologia-de-hospedagem/mariadb-logs/) for AI/LLM consumption.