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.