Oracle recently made their quarterly releases with MySQL 8.0.35 and MySQL 8.2. This blog post is a quick look at the release notes to see what these new versions bring to the community. You’ll want to keep an eye on the deprecations in particular because some long-accepted behavior, including wildcards, will change eventually.

We get 83 and 50 bug fixes, respectively. We also get 17 and 33 deprecations. Those are good things, but those of us looking for an exciting new feature, function, or expansion are going to have to shrug and hope that the December release is more fruitful than October’s.

Sadly, the only really groundbreaking new code is the transparent read/write split built into the 8.2 MySQL Router. Any comments in italics are mine and not the view of Percona, Oracle, or probably anyone else.

MySQL 8.0.35

WHEN % != localhost

The use of the characters % and _ as wildcards in database-level grants is now deprecated. So SET GRANT SELECT on dave_.* TO dave will grant user dave access to all the tables in database dave_ but not dave1, davex, or davey.

Also deprecated is the use of % by the server as a synonym for localhost when checking privileges. If you are used to using ‘user1’@’%’ also working ‘user1’@’localhost’, then you are going to have to now grant privileges to ‘user1’@’localhost’ explicitly, using the localhost hostname. This localhost not equating to % will be a pain in the rear as it has been the common usage for a long time. Get ready for the support calls now.

A processlist by any other name

Also going away is the INFORMATION_SCHEMA.PROCESSLIST, and we need to shift to the PERFORMANCE_SCHEMA version. Logically, this should have been in the Performance Schema instead of the Information Schema. Once again, this was the standard way of doing things for many years and will generate some help tickets when it is finally removed.

Group replication relaxation
Group Replication gets relaxed as version requirements for groups are relaxed beginning with this release:

  • A server running any MySQL 8.0 release of version 8.0.35 or newer can join the same group.
  • A group member running any MySQL 8.0 release newer than 8.0.35 can be downgraded in place to the previous release.

The requirement that the primary must be running the lowest MySQL version present in the group is still in place.

MySQL 8.2

Remember that 8.2 is a short-term release and will replaced at the end of the year by 8.3.

The days of the native password are gone

The mysql_native_password plugin is no longer required and can be removed at startup time. A fond farewell to over twenty-five years of use.

The deprecated and removed

Use WAIT_FOR _EXECUTED_GTID_SET() instead of the deprecated WAIT_UNTIL_SQL_THREAD_AFTER_GTIDS(). Also deprecated is binlog-transaction-dependency-tracking. And EXPIRE_LOG_DAYS is removed.

SET_USER_ID is deprecated. Use SET_ANY_DEFINER and ALLOW_NONEXISTENT_DEFINER instead.
See Above

See the section above for 8.0.35 on the use of % and _ as it applied to 8.2 also. As well as the PROCESSLIST change.

Multithreaded applier

The multithreaded applier is now with SQL_AFTER_GTIDS() when using START REPLICA. A replica that needs to catch up with missing transactions can do so while taking advantage of the performance benefits of multithreading. Faster is always better in replication.

Hashing EXCEPT and INTERSECT

A new hash optimization for EXCEPT and INTERSECT is enabled automatically for such statements.

Not a simple SED change

More work has been done on replacing the words MASTER and SLAVE in Replication. This includes switches for mysqldump to use the old or new terms. This work does seem to be dragging on, doesn’t it?

EXPLAIN change

EXPLAIN FOR SCHEMA has been added to let you test queries as if they had been run in the database specified by the option. But this does not work with the FOR CONNECTION option.

Conclusion

Bug fixes are good. Deprecations can be a double-edged sword. In the cases of MySQL servers 8.0.35 and 8.2, the bug fixes and deprecations go a long way in making them better products. Unless you find a compelling bug fix in 8.0.35 affecting you, there is probably not a strong reason to upgrade. You may want to try 8.2 if having the latest and greatest version is important to you.

It will take Percona a few weeks to add our Enterprise features to our release of 8.0.35, but it comes (for free) with things like connection pooling and data masking. The wait will be worth it.

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

1 Comment
Oldest
Newest Most Voted
Inline Feedbacks
View all comments
hechunyang

So SET GRANT SELECT on dave_.* TO dave will grant user dave access to all the tables in database dave_ but not dave1, davex, or davey.
—————————-
It’s wrong!