This is a Quick Peek at what Oracle delivered with MySQL 8.0.34 and 8.1.0 on July 17th, 2023. MySQL previously released software quarterly as part of a continuous delivery system where new features were made available. Many people loved access to the new features even if they could be risky, but others wanted stability and bug fixes only. Now there is a long-term support (LTS) version for the more conservative and the risk-averse folk that will have a roughly two-year lifespan between major releases.

The release with the new features will be called the Innovation series, and MySQL 8.1.0 is the first of these releases. And the LTS will be based on 8.0.34. Please note that comments in italics are mine and do not reflect the views of Percona and possibly not anyone else.

Quick reminder

The End of Life for MySQL 8.0 is in April of 2026, and the End of Life for MySQL 5.7 is in October of 2023. Tempus Fugit!

So what is new? 8.0.34 is an evolution of the MySQL server and related software. 8.1.0 is an evolution of 8.0.34, so there is a lot of overlap in the release notes. 8.0.34 release notes and 8.1 release notes.

What is new in ’34?

You can now set the percentage of characters in a new password that has to differ from the previous password with the validate_password.changed_character_percentage variable. I need to experiment with this as it could be a frustration generator at a large scale under proper circumstances.

Deprecations? The mysqlpump client utility is deprecated and will be removed. The sync_relay_log_info, binlog_format, and group_replication_recovery_complete_at system variables are deprecated and will be removed. And lz4_decompress and zlib_decompress are deprecated, too, as part of deprecating mysqlpump. Mysqlpump has a small number of devotees but never seemed to be taken to heart by the larger community.

CURRENT_USER(), USER(), SESSION_USER(), and SYSTEM_USER() can now be used as default values when defining a table. This will be handy for auditing data.

8.0.34 has 131 bug fixes and 8.1.0 lists 199 big fixes. Most of these are really minor such as updating the version of libraries.

So what is new in 8.1.0?

8.1.0 is based on 8.0.34, so along with the above changes, you get some additional material. The mysql_native_password authentication plugin is deprecated and subject to removal in a future version of MySQL. While this is a great idea for security reasons, there will be many more posts on websites like Stackoverflow bemoaning that their old code and connector can not connect to the new version of the database.

8.1 has EXPLAIN FORMAT=JSON that can output data into a user variable. This could be handy for tracking query tuning and performance auditing.

Query comments are no longer stripped.

The default for SOURE_RETRY_COUNT is now 10 for CHANGE_SOURCE_REPLICATION_TO . This means by default, with SOURCE_CONNECT_RETRY at the default of 60, that the replica tries for 10 minutes to reconnect at 60-second intervals before timing out and failing over.

Before the election of a new primary, the GROUP_REPLICATION_SET_AS_PRIMRY group_replication_set_as_primary() function now waits for ongoing DDL statements such as ALTER TABLE when waiting for all transactions to complete. The statements include ALTER TABLE, ANALYZE TABLE, CACHE INDEX, CHECK TABLE, CREATE INDEX, CREATE TABLE, DROP INDEX, LOAD INDEX, OPTIMIZE TABLE, REPAIR TABLE, TRUNCATE TABLE, DROP TABLE, and any open cursors. Seems like a lot of work to do while servers are failing, but it should save the data in a better state.

Do you have suspicious group replication servers showing up? A new MEMBER_FAILURE_SUSPICIONS_COUNT column has been added to the Performance Schema replication_group_communication_information table. The contents of this column are formatted as a JSON array whose keys are group members ID and whose values are the number of times the group member has been considered suspect. Suspicious servers?

Several new status variables have been added to group replication to improve the diagnosis and troubleshooting of network instabilities, providing statistics about network usage, control messages, and data messages for each group member. This will be very handy.

8.1.0 introduces a number of new messages that are written to the MySQL error log during shutdown To aid in troubleshooting in the event of an excessively long server shutdown, including those listed here:

  • Startup and shutdown log messages for the MySQL server, including when it has been started with –initialize.
  • Log messages showing the start and end of shutdown phases for plugins and for components.
  • Start-of-phase and end-of-phase log messages for connection closing phases.
  • Log messages showing the number and IDs of threads still alive after being forcibly disconnected and potentially causing a wait.

Support is dropped for Enterprise Linux 6 (and associated glibc 2.12 generic), SUSE 12, Debian 10, MacOS 12, Ubuntu 18.04 and 20.04, Windows 10 and Server 2012R2; and 32-bit versions are no longer built.

You can see the parse tree for selects if you build the server with debug mode enabled. This is not for production.

Server startup options can not be NULL. There are exceptions listed in the manual for some options that do not need to be specified.

And using an unquoted identifier beginning with a dollar sign and containing one or more dollar signs (in addition to the first one) now generates a syntax error.

Conclusion

I like the idea of the long-term support edition, as too many have been caught out on some of the tweaks in the quarterly releases. This should add stability to production environments and make life simpler for many.

The announcement of 8.1 was long anticipated, and new features are always interesting and, hopefully, helpful. Seeing 8.0 becoming a bug-fix only for the next few years until the EOL date seems a little bittersweet.

For those wondering when Percona’s 8.0.34 and 8.1.0 releases will become available, please have a little patience. Our engineers need to test, optimize, add the enterprise features, and then get it all ready for your use.

Percona Distribution for MySQL is the most complete, stable, scalable, and secure open source MySQL solution available, delivering enterprise-grade database environments for your most critical business applications… and it’s free to use!

 

Try Percona Distribution for MySQL today!

Subscribe
Notify of
guest

2 Comments
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
Francisco Miguel Biete Banon

mysql_native_password is deprecated in 8.0.34

8.0 being limited to bug-fix only is indeed bitter.

What is going to be Percona approach? Will you backport features in 8.0 series? Will you speed up innovation releases? With LTS every 2 years, and innovation releases is going to be a lot of versions to maintain and a lot of catchup work