Fala galera. MySQL 8 DMR foi disponibilizado hohe e ele traz algumas novas funcionalidades bem legais. Uma delas é a habilidade de persistir variáveis/configurações entre restart’s. Essa opção é bastante interessante se trocamos variáveis dinâmicas. Isso nos poupa de ter que editar o arquivo .cnf toda a vez que executamos um SET no MySQL(Ou mesmo quando não temos acesso aos arquivos no disco).
A nova sintaxe para o comando é a seguinte:
SET PERSIST option=value; SET @@persist.option=value;
O MySQL vai criar um arquivo chamado mysqld-auto.cnf. Este arquivo estará localizado na pasta do datadir. Este arquivo irá conter todas as variáveis que foram setadas com o PERSIST e este arquivo será carregado depois de todos os outos (my.cnf / –defaults-file / ~/.my.cnf / …). Isto quer dizer que as variáveis configuradas neste arquivo vão prevalecer perante as demais.
Estas configurações podem ser removidas restaurando seu valor para o valor padrão ou editando o arquivo manualmente no disco(não recomendado).
A funcionalidade pode ser controlada pela configuração persisted-globals-load. Ela é ativado por default. Case seja setada para off (persisted-globals-load=OFF) o MySQL irá ignorar as variáveis presentes no arquivo mysqld-auto.cnf.
As variáveis poderão ser listadas na tabela performance_schema.variables_info . Na coluna variable_source podemos filtrar a origem do valor:
- COMPILED – Compilada no source do MySQL(Valores padrões)
- GLOBAL – Parte do arquivo glogal
- SERVER – Parte do arquivo $MYSQL_HOME/my.cnf file
- EXPLICIT – Parte do arquivo setado pela opção –defaults-file
- EXTRA – Parte do arquivo setado pela opçãodefaults-extra-file
- USER – Parte do arquivo ~/.my.cnf
- LOGIN – Parte da opção de login path
- COMMAND_LINE – Opções setadas na linha de comando
- PERSISTED – Parte das configurações do arquivo mysqld-auto.cnf
- DYNAMIC – Configurações alteradas dinamicamente
Com estas opções, podemos extrair informações importantes da tabela, como por exemplo, todas as configurações alteradas depois que o servidor foi iniciado:
select * from performance_schema.variables_info where variable_source like 'DYNAMIC';
MySQL 8.0 está disponível para Download no http://dev.mysql.com/downloads/mysql/8.0.html. Tenha em mente que está é uma versão que deve ser usada para teste e não deve ser utilizada em produção. AINDA!
Testem o MySQL 8.0 e digam o que acharam.
Thanks for sharing! Check out https://www.libertycenterone.com/blog/the-mysql-cheat-sheet-part-one-seven-useful-tidbits-that-everyone-seems-to-forget/ for more tips.