MySQL 9.0 Released: What’s New, Changed, and Removed

MySQL 9.0 database rolls out with enhanced JSON support, new DDL for events, updated system variable tables, and more.

MySQL, the popular open-source relational database management system, has officially released version 9.0. This release introduces new features and several deprecations and removes outdated components. Here they are.

What’s New in MySQL 9.0

One of MySQL 9.0’s headline features is the advanced handling of JSON data. Users can now save JSON output from EXPLAIN ANALYZE commands directly into a user variable.

This feature, available under the syntax EXPLAIN ANALYZE FORMAT=JSON INTO @variable select_stmt, enhances the debugging and optimization of queries by allowing for easier manipulation and analysis of execution plans.

Additionally, MySQL 9.0 expands the functionality of prepared statements with support for Data Definition Language (DDL) commands such as CREATE EVENT, ALTER EVENT, and DROP EVENT.

This update facilitates more dynamic and flexible database management scripts, although it does not support positional parameters and requires assembling the statement text from various input sources.

To provide detailed insights into db operations, MySQL 9.0 introduces two new tables within the Performance Schema: “variables_metadata” and “global_variable_attributes.” These tables offer comprehensive details about system variables, including type, scope, and permissible values, which are crucial for fine-tuning and maintaining system performance.

However, with new features come phase-outs of older functionalities. MySQL 9.0 deprecates the “MIN_VALUE” and “MAX_VALUE” columns of the Performance Schema’s “variables_info” table. These columns are now replaced by similar ones in the new “variables_metadata” table.

On the features removal side, the most notable one in MySQL 9.0 is removing the mysql_native_password authentication plugin, which was deprecated in version 8.0.

This means that the server will now reject authentication requests from older client programs that lack CLIENT_PLUGIN_AUTH capability. This change is part of MySQL’s broader push to enhance security and encourage users to adopt more secure authentication methods.

For more in-depth details on all changes, check out the release notes.

Bobby Borisov

Bobby Borisov

Bobby, an editor-in-chief at Linuxiac, is a Linux professional with over 20 years of experience. With a strong focus on Linux and open-source software, he has worked as a Senior Linux System Administrator, Software Developer, and DevOps Engineer for small and large multinational companies.

Think You're an Ubuntu Expert? Let's Find Out!

Put your knowledge to the test in our lightning-fast Ubuntu quiz!
Ten questions to challenge yourself to see if you're a Linux legend or just a penguin in the making.

1 / 10

Ubuntu is an ancient African word that means:

2 / 10

Who is the Ubuntu's founder?

3 / 10

What year was the first official Ubuntu release?

4 / 10

What does the Ubuntu logo symbolize?

5 / 10

What package format does Ubuntu use for installing software?

6 / 10

When are Ubuntu's LTS versions released?

7 / 10

What is Unity?

8 / 10

What are Ubuntu versions named after?

9 / 10

What's Ubuntu Core?

10 / 10

Which Ubuntu version is Snap introduced?

The average score is 68%