A empresa Oracle formou um novo ramo do banco de dados MySQL 8.2 e publicou atualizações corretivas MySQL 8.0.35 e 5.7.44. As compilações do MySQL Community Server 8.2.0 estão preparadas para todas as principais distribuições Linux, FreeBSD, macOS e Windows.
MySQL 8.2.0 é a segunda versão formada sob o novo modelo de lançamento, que prevê dois tipos de ramificações do MySQL — "Inovação" e "LTS". As ramificações Inovação, que incluem MySQL 8.1 e 8.2, são recomendadas para aqueles que desejam ter acesso antecipado a novos recursos. Essas ramificações são publicadas a cada 3 meses e são suportadas apenas até a publicação do próximo grande lançamento (por exemplo, após o surgimento da ramificação 8.2, o suporte à ramificação 8.1 é encerrado). As ramificações LTS são recomendadas para implementações que necessitam de previsibilidade e de um comportamento consistente por um longo período. As ramificações LTS serão lançadas a cada dois anos e suportadas normalmente por 5 anos, além de poderem receber mais 3 anos de suporte estendido. O lançamento LTS do MySQL 8.4 é esperado para a primavera de 2024, após o qual uma nova ramificação de Inovação 9.0 será formada.
Principais mudanças no MySQL 8.2:
- Adicionada a suporte ao mecanismo de autenticação baseado na especificação Webauthn (FIDO2), permitindo o uso de autenticação multifatorial e confirmando a conexão ao servidor MySQL sem senhas, utilizando tokens de hardware com suporte a FIDO2 ou autenticação biométrica. O plugin com suporte a Webauthn está disponível apenas para o MySQL Enterprise.
- O plugin do servidor mysql_native_password, que fornece autenticação usando senhas, foi movido para a categoria opcional e pode ser desativado. Em vez de mysql_native_password, é recomendado migrar para o uso do plugin caching_sha2_password, que utiliza o algoritmo de hash SHA2 em vez de SHA1. Para alternar os usuários para o plugin caching_sha2_password, substituindo a senha por uma aleatória, pode-se usar o comando: ALTER USER ‘username’@’localhost’ IDENTIFIED WITH caching_sha2_password BY RANDOM PASSWORD PASSWORD EXPIRE FAILED_LOGIN_ATTEMPTS 3 PASSWORD_LOCK_TIME 2;
- Otimização das tabelas hash foi realizada, permitindo aumentar a velocidade na execução das operações EXCEPT e INTERSECT.
- Ampliadas as capacidades de depuração. Na operação SELECT, INSERT, REPLACE, UPDATE e DELETE adicionada a suporte à expressão "EXPLAIN FORMAT=JSON" para gerar saída de diagnóstico em formato JSON (por exemplo, "EXPLAIN FORMAT=JSON INTO @var select_stmt;").
- Foi adicionada a expressão «EXPLAIN FOR SCHEMA» para a exibição de diagnósticos relacionados apenas a um esquema de dados específico.
- Foi adicionada à ferramenta mysqldump a opção «—output-as-version» para criar dumps compatíveis com uma versão anterior específica do MySQL (por exemplo, é possível especificar BEFORE_8_2_0 ou BEFORE_8_0_23 para retornar à terminologia não inclusiva master/slave, considerada obsoleta nas versões 8.2.0 e 8.0.23).
- Adicionada à biblioteca cliente em C a capacidade de usar atributos nomeados em consultas parametrizadas (prepared statement), implementadas pela nova função mysql_stmt_bind_named_param(), que substitui a função mysql_stmt_bind_param().
- Simplificada a distribuição de tráfego SQL em um cluster de servidores MySQL. Foram disponibilizadas opções para conexões transparentes para aplicativos a servidores secundários ou primários.
- Adicionada uma nova privilégio SET_ANY_DEFINER, que concede o direito de criar objetos com a expressão DEFINER, além do privilégio ALLOW_NONEXISTENT_DEFINER para proteger objetos sem proprietário.
- Declaradas obsoletas: as variáveis old e new, as máscaras «%» e «_» em operações de concessão de acesso ao BD, a opção «—character-set-client-handshake», a variável binlog_transaction_dependency_tracking e o privilégio SET_USER_ID.
- No âmbito da correção da terminologia não inclusiva relacionada à replicação, foram declaradas obsoletas as expressões «RESET MASTER», «SHOW MASTER STATUS», «SHOW MASTER LOGS» e «PURGE MASTER LOGS», substituídas pelas expressões «RESET BINARY LOGS AND GTIDS», «SHOW BINARY LOG STATUS», «SHOW BINARY LOGS» e «PURGE BINARY LOGS».
- Removidas as funcionalidades previamente declaradas obsoletas: a função WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS(), a variável expire_logs_days, as opções «—abort-slave-event-count» e «—disconnect-slave-event-count».
- Eliminadas 26 vulnerabilidades. Duas vulnerabilidades relacionadas ao uso do pacote Curl e da biblioteca OpenSSL podem ser exploradas remotamente.
Fonte: opennet.ru
