MySQL 9.0 chegou com uma série de novas funcionalidades e melhorias significativas. Nesta atualização, destacam-se a adição de programas armazenados em JavaScript e a remoção de SHA-1. Vamos explorar as principais mudanças e como elas podem beneficiar seu gerenciamento de banco de dados.
Novidades do MySQL 9.0
A Oracle iniciou julho com a disponibilização geral de três versões do seu banco de dados open source, MySQL: MySQL 8.0.38, a primeira atualização de sua versão de suporte de longo prazo (LTS), MySQL 8.4, e a primeira grande versão de sua série de inovações 9.x, MySQL 9.0.
Enquanto as versões 8.x são focadas na correção de bugs e segurança, o MySQL 9.0 é uma versão cheia de novidades e mudanças importantes que podem requerer atenção ao atualizar versões anteriores.
Mudanças Principais no MySQL 9.0
O MySQL 9.0 apresenta várias mudanças significativas que devem ser observadas na atualização de versões anteriores. Entre essas mudanças, destacam-se:
- A introdução de um novo tipo de dado Vector nas instruções CREATE e ALTER;
- Programas Armazenados em JavaScript disponíveis na MySQL Enterprise Edition, permitindo que programas e funções baseados em JavaScript chamem SQL e vice-versa;
- A migração para versões mais novas de bibliotecas e compiladores, como Linux 8 e 9 no GCC13, e Boost 1.85;
- Novas funcionalidades no Event Scheduler, permitindo aos usuários preparar instruções SQL como CREATE EVENT, ALTER EVENT e DROP EVENT.
Além disso, algumas funcionalidades foram removidas, como o algoritmo de segurança SHA-1, que foi aposentado devido a sua insegurança. Agora, o servidor rejeita solicitações de autenticação mysql_native de programas clientes mais antigos que não possuem a capacidade CLIENT_PLUGIN_AUTH.
Outra mudança importante no Optimizer foi a remoção do ER_SUBQUERY_NO_1_ROW da lista de erros ignorados por instruções que incluem a palavra-chave IGNORE. Isso pode fazer com que uma instrução UPDATE, DELETE ou INSERT, que tenha um SELECT com uma subconsulta escalar produzindo mais de uma linha, cause erros.
Recursos Atualizados do MySQL 9.0
O MySQL 9.0, parte da série de inovação, traz uma série de recursos novos e atualizações significativas. Vamos explorar alguns deles:
JavaScript Stored Programs: Agora disponível na edição Enterprise do MySQL, esses programas armazenados baseados em JavaScript permitem que desenvolvedores criem funções e programas diretamente no banco de dados. Estes podem chamar SQL e, vice-versa, SQL pode chamar esses programas, facilitando a integração de lógica complexa diretamente no banco.
Nova Data Type Vector: Uma adição importante é o suporte ao novo tipo de dados Vector. Este tipo pode ser usado em instruções CREATE e ALTER, aumentando a eficiência e a versatilidade na manipulação de dados complexos.
Compatibilidade com Novas Bibliotecas e Compiladores: O MySQL 9.0 agora utiliza versões mais recentes de bibliotecas e compiladores. No caso do Linux, suporta as versões 8 e 9 utilizando o GCC 13, além do Boost 1.85, o que promete melhorias em performance e segurança.
Organização de Eventos: O Scheduler de eventos foi atualizado, permitindo aos usuários preparar instruções SQL para criação, alteração e remoção de eventos (CREATE EVENT, ALTER EVENT, DROP EVENT), tornando a administração de eventos automatizados mais amigável.
Essas atualizações fazem parte do compromisso do MySQL de fornecer um banco de dados robusto e eficiente, alinhado com as necessidades modernas de desenvolvimento e gestão de dados.
O que foi Removido no MySQL 9.0
SHA-1 Desativado: O algoritmo de hash SHA-1, que já havia sido depreciado na versão 8 do MySQL, foi completamente removido no MySQL 9.0. Isso significa que o servidor agora rejeita solicitações de autenticação mysql_native de programas cliente mais antigos que não possuem a capacidade CLIENT_PLUGIN_AUTH. Antes de atualizar para 9.0, é necessário alterar as contas de usuário em 8.0 e 8.4 de mysql_native_password para caching_sha2_password.
Remoção de Ignorância de Erros Específicos no Otimizador: No otimizador, o erro ER_SUBQUERY_NO_1_ROW foi removido da lista de erros que são ignorados por declarações que incluem a palavra-chave IGNORE. Essa alteração pode fazer com que uma instrução UPDATE, DELETE ou INSERT que inclua a palavra-chave IGNORE gere erros se contiver uma instrução SELECT com uma subconsulta escalar que produza mais de uma linha.
Essas remoções impactam a segurança e a maneira como as subconsultas são tratadas, incentivando os usuários a atualizar seus sistemas e ajustar seus códigos para atender aos novos padrões estabelecidos pelo MySQL 9.0.
Próximos Passos após o MySQL 9.0
Novidades do MySQL 9.0: O MySQL 9.0 traz uma série de novos recursos e melhorias em relação às versões anteriores. Entre as principais novidades está o suporte ao novo tipo de dado Vector em comandos CREATE e ALTER, bem como a inclusão de Programas Armazenados em JavaScript. Esses programas permitem que funções baseadas em JavaScript possam chamar SQL e vice-versa, aumentando a flexibilidade no desenvolvimento. Outra atualização importante envolve a aplicação de novas versões de bibliotecas e compiladores, como o Linux 8 e 9 no GCC13, e Boost 1.85.
Mudanças Principais no MySQL 9.0: O MySQL 9.0 introduz diversas mudanças significativas que podem exigir atenção durante a atualização. Por exemplo, a exclusão do suporte ao SHA-1 devido a preocupações de segurança. Agora, o servidor rejeita solicitações de autenticação mysql_native de programas cliente mais antigos que não possuem capacidade CLIENT_PLUGIN_AUTH. É crucial que antes de atualizar para a versão 9.0, as contas de usuário nas versões 8.0 e 8.4 sejam ajustadas para utilizar a autenticação caching_sha2_password ao invés do mysql_native_password. Outra mudança importante está no Otimizador, onde o erro ER_SUBQUERY_NO_1_ROW foi removido da lista de erros que são ignorados por declarações que incluem a palavra-chave IGNORE, o que pode impactar a execução de comandos UPDATE, DELETE ou INSERT.
Recursos Atualizados do MySQL 9.0: O novo MySQL 9.0 também tem melhorias notáveis no Agendador de Eventos. Agora, os usuários podem preparar declarações SQL como CREATE EVENT, ALTER EVENT, e DROP EVENT, oferecendo maior controle e flexibilidade na gestão de eventos. Adicionalmente, os Conectores, Ferramentas e Clientes do MySQL 9.0 foram atualizados para garantir compatibilidade com as versões 8.0, 8.4 LTS, bem como a versão de Inovação 9.0.
O que foi Removido no MySQL 9.0: Além do SHA-1, diversas funções e características mais antigas e inseguras foram descontinuadas. Esse processo de remoção visa fortalecer a segurança e a performance do sistema, garantindo que o MySQL continue sendo uma escolha robusta para gerenciamento de bancos de dados. É recomendável que os administradores de banco de dados revisem cuidadosamente as mudanças e ajustem suas configurações e códigos para evitar problemas decorrentes dessas remoções.
Próximos Passos após o MySQL 9.0: O desenvolvimento do MySQL seguirá um ritmo de lançamentos a cada três meses, com grandes atualizações LTS a cada dois anos. No próximo ciclo de outubro, podemos esperar as versões de segurança e correção de bugs MySQL 8.4.2 LTS e MySQL 8.0.39, assim como a versão de Inovação MySQL 9.1, que trará novos recursos além de atualizações de segurança.
Conclusão: MySQL 9.0
Com o lançamento do MySQL 9.0, a Oracle introduziu uma série de inovações e melhorias significativas em seu popular banco de dados. Esta versão não é apenas uma atualização de segurança, mas um avanço substancial em termos de funcionalidade e desempenho.
Entre as principais mudanças, destacam-se a inclusão de JavaScript Stored Programs na edição Enterprise do MySQL. Esta funcionalidade permite a criação de programas e funções armazenados baseados em JavaScript, que podem interagir diretamente com as consultas SQL, proporcionando uma flexibilidade inédita aos desenvolvedores.
Outra novidade importante é o suporte ao novo tipo de dado Vector nas instruções CREATE e ALTER, facilitando a manipulação de dados complexos. Além disso, o Event Scheduler foi aprimorado, permitindo a preparação de instruções SQL para criação, alteração e remoção de eventos.
Também vale notar que o MySQL 9.0 passou a utilizar versões mais recentes de bibliotecas e compiladores, como o Linux 8 e 9 no GCC13 e o Boost 1.85, o que deve melhorar ainda mais a performance e a segurança da plataforma.
No entanto, algumas funcionalidades antigas foram descontinuadas. O uso do SHA-1, considerado inseguro, foi eliminado. Além disso, a versão 9.0 agora rejeita solicitações de autenticação mysql_native de programas clientes mais antigos sem a capacidade CLIENT_PLUGIN_AUTH. A remoção do erro ER_SUBQUERY_NO_1_ROW do otimizador, antes ignorado por instruções com a palavra-chave IGNORE, é outra mudança que pode impactar certos desenvolvimentos.
Para os usuários que pretendem migrar para o MySQL 9.0, é importante observar que a Oracle recomenda modificar as contas de usuário para usar o caching_sha2_password antes de fazer o upgrade, para evitar problemas com a autenticação.
Com um ciclo de lançamento de três meses, o MySQL promete continuar evoluindo rapidamente. Espera-se que em outubro sejam lançadas novas versões de correção de bugs e segurança, além do MySQL 9.1, que trará ainda mais funcionalidades e melhorias.
Portanto, as mudanças trazidas pelo MySQL 9.0 são marcantes e devem ser consideradas com atenção por qualquer empresa ou desenvolvedor que dependa deste banco de dados para suas operações.