Skip to main content

Alterar configurações dos parâmetros do MySQL

Uma vez conectado ao banco de dados MySQL usando suas credenciais, o MySQL permite configurar uma ampla variedade de parâmetros que podem ser definidos e persistidos através dos comandos SET, SET PERSIST, e SET PERSIST_ONLY. Esses comandos permitem ajustar o comportamento do banco de dados MySQL tanto para a sessão atual quanto de forma permanente, garantindo que as alterações persistam através de reinicializações do banco de dados.

É importante ressaltar que, embora muitas variáveis possam ser alteradas dinamicamente utilizando os comandos acima, algumas variáveis requerem que o serviço MySQL seja reiniciado para que as alterações entrem em efeito. Portanto, ao ajustar essas variáveis, será necessário desligar e ligar a instância do MySQL para que as novas configurações sejam aplicadas.

A lista completa de variáveis de sistema é extensa, mas aqui estão algumas das mais comuns e úteis:

Lista de Parâmetros Comuns

1. Conexões e Rede

  • max_connections: Define o número máximo de conexões simultâneas.
  • connect_timeout: Tempo máximo de espera para uma conexão ser estabelecida.
  • wait_timeout: Tempo de espera para conexões inativas antes de serem fechadas.
  • interactive_timeout: Tempo de espera para conexões interativas inativas.
  • max_allowed_packet: Tamanho máximo de um pacote de comunicação.
  • net_buffer_length: Tamanho inicial do buffer de rede.

2. Configurações de Memória e Cache

  • query_cache_size: Tamanho da cache de consultas.
  • query_cache_type: Tipo de cache de consultas.
  • innodb_buffer_pool_size: Tamanho do pool de buffers do InnoDB.
  • innodb_log_buffer_size: Tamanho do buffer de log do InnoDB.
  • key_buffer_size: Tamanho do buffer de índice.
  • sort_buffer_size: Tamanho do buffer de ordenação.
  • join_buffer_size: Tamanho do buffer de junção.
  • read_buffer_size: Tamanho do buffer de leitura.
  • read_rnd_buffer_size: Tamanho do buffer de leitura aleatória.
  • tmp_table_size: Tamanho máximo das tabelas temporárias.
  • max_heap_table_size: Tamanho máximo das tabelas HEAP.

3. Log e Replicação

  • log_queries_not_using_indexes: Loga consultas que não usam índices.
  • log_slave_updates: Ativa logs de atualizações em slaves.
  • sync_binlog: Sincroniza o log binário.
  • relay_log_info_repository: Define o repositório de informações do relay log.
  • binlog_cache_size: Tamanho da cache do log binário.
  • binlog_checksum: Ativa checksums no log binário.

4. InnoDB

  • innodb_file_per_table: Cria arquivos individuais por tabela.
  • innodb_flush_log_at_trx_commit: Define a política de flush do log do InnoDB.
  • innodb_log_file_size: Tamanho dos arquivos de log do InnoDB.
  • innodb_log_files_in_group: Número de arquivos de log no grupo do InnoDB.
  • innodb_flush_method: Método de flush do InnoDB.
  • innodb_thread_concurrency: Número máximo de threads concorrentes no InnoDB.
  • innodb_lock_wait_timeout: Tempo de espera para lock no InnoDB.

5. Segurança

  • sql_mode: Define o modo SQL.
  • secure_file_priv: Restringe operações de arquivos.
  • skip_name_resolve: Desativa a resolução de nomes de host.
  • require_secure_transport: Exige transporte seguro para conexões.

6. Desempenho

  • table_open_cache: Tamanho da cache de tabelas abertas.
  • thread_cache_size: Tamanho da cache de threads.
  • query_cache_limit: Limite de tamanho para a cache de consultas.
  • innodb_autoinc_lock_mode: Modo de lock para auto incremento no InnoDB.

7. Outros

  • event_scheduler: Ativa o agendador de eventos.
  • autocommit: Define o comportamento de autocommit.
  • default_storage_engine: Define o engine de armazenamento padrão.
  • character_set_server: Define o conjunto de caracteres do servidor.
  • collation_server: Define a collation do servidor.
  • time_zone: Define o fuso horário do servidor.
  • tmpdir: Diretório para tabelas temporárias.

Exemplos de Comandos

Aqui estão alguns exemplos de como esses parâmetros podem ser definidos:

-- Definir o número máximo de conexões
SET PERSIST max_connections = 500;

-- Ajustar o tamanho do pool de buffers do InnoDB
SET PERSIST innodb_buffer_pool_size = 1073741824; -- 1 GB

-- Ativar log binário
SET PERSIST log_bin = 'ON';

-- Definir o modo SQL
SET PERSIST sql_mode = 'STRICT_TRANS_TABLES,NO_ENGINE_SUBSTITUTION';

-- Definir o tempo de espera para conexões inativas
SET PERSIST wait_timeout = 300;

Verificação de Variáveis

Você pode verificar os valores atuais das variáveis com o comando SHOW VARIABLES:

SHOW VARIABLES LIKE 'max_connections';
SHOW VARIABLES LIKE 'innodb_buffer_pool_size';

Documentação Completa

Para uma lista completa e atualizada de todas as variáveis de sistema que podem ser configuradas no MySQL, consulte a documentação oficial do MySQL: MySQL 8.0 Reference Manual - System Variables.

Esta lista cobre apenas uma seleção das variáveis de sistema mais comumente ajustadas. A documentação oficial oferece uma visão abrangente de todas as variáveis configuráveis, incluindo descrições detalhadas e valores possíveis. Verifique sempre a documentação para entender completamente o impacto e os requisitos de cada alteração de configuração.