Databases 9 min read

What’s New in MySQL 8.1 & 8.0.34? Key Features and Changes Explained

MySQL 8.1, the first innovation release, and the stable 8.0.34 bring a host of new capabilities—including JSON‑based EXPLAIN INTO, enhanced replication controls, expanded security variables, audit improvements, binary‑log functions, and several deprecations—while also fixing numerous bugs to solidify MySQL’s stability.

dbaplus Community
dbaplus Community
dbaplus Community
What’s New in MySQL 8.1 & 8.0.34? Key Features and Changes Explained

MySQL 8.1, the first innovation version, and the stable 8.0.34 were released on July 18, 2023, marking the start of parallel innovation and stable releases. The article enumerates the most important new features and adjustments.

New Features

EXPLAIN FORMAT=JSON now supports an INTO option, allowing the JSON output to be stored in a user variable.

Client comments are preserved by default; to revert to the previous behavior, use the --skip-comments option.

Replication changes: the default SOURCE_RETRY_COUNT in CHANGE REPLICATION SOURCE TO is now 10, meaning the replica will wait 60 seconds between reconnection attempts and try for up to 10 minutes before timing out.

The function group_replication_set_as_primary() now waits for any ongoing DDL statements to finish before selecting a new primary.

Version‑specific comments now accept one‑ or two‑digit major versions, allowing version numbers up to six digits.

Shutdown logging is enhanced to include more detailed messages from the server, plugins, and components, aiding troubleshooting when shutdown takes a long time.

A new SHOW PARSE_TREE statement displays a JSON parse tree for SELECT statements; it is intended for testing and debugging only.

The system variable tls_certificates_enforced_validation enables forced TLS certificate validation at server start or during ALTER INSTANCE RELOAD TLS . Invalid certificates now abort startup.

Group replication plugin adds status variables that provide statistics on network usage, control messages, and data messages, improving diagnostics on unstable networks.

LDAP pluggable authentication now has a timeout variable (default 30 seconds) controlling how long the server waits for an LDAP server response.

Adjustments (Mostly Aligning with 8.0.34)

Several settings and behaviors remain consistent with the 8.0.34 release.

User Management

A new system variable validate_password.changed_characters_percentage defines the percentage of characters that must change when a user updates a password. For example, a value of 50 requires at least half of the characters to be different.

MySQL Audit

When installing the audit plugin, you can now specify a database to store log‑filter conditions. Example command:

$ mysql -u root -D database_name -p < audit_log_filter_linux_install.sql

The audit subsystem also gains the ability to schedule recurring tasks via the MySQL Scheduler, allowing automatic cache refreshes.

Binary Log

New client‑side functions mysql_binlog_open(), mysql_binlog_fetch(), and mysql_binlog_close() are added to the libmysqlclient.so library, enabling applications to read the server’s binary log.

Compatibility and Windows Build

Improved MSVC_CPPCHECK support and handling of MSVC warnings in “maintenance” mode.

Enhanced support for WIN_DEBUG_NO_INLINE=1, overcoming the 65 535 object limit.

Upgraded versions of robin‑hood‑hashing, ICU files, and ZSTD.

Deprecations and Future Changes

Several variables and tools are being deprecated: mysqlpump will emit warnings and be removed in the future.

Replication variables sync_relay_log_info and binlog_format are deprecated; after deprecation, only row‑based binary logging is supported.

Variables log_bin_trust_function_creators and log_statements_unsafe_for_binlog will also be removed.

Group replication variable group_replication_recovery_complete_at and the mysql_native_password authentication plugin are slated for deprecation.

Traditional audit‑log filter syntax and tools such as mysql_ssl_rsa_setup and key‑ring plugins will be phased out.

Version‑specific comment syntax (e.g., /*!80034KEY_BLOCK_SIZE=1024*/) may change; users should add a space after the version number.

SQL Syntax Enhancements

The release adds support for using CURRENT_USER(), SESSION_USER(), USER(), and SYSTEM_USER() as default values for VARCHAR or TEXT columns in CREATE/ALTER TABLE statements.

Overall, MySQL 8.1 and 8.0.34 introduce many functional improvements, security hardenings, and deprecations while delivering extensive bug fixes that stabilize the 8.0 series.

Original Source

Signed-in readers can open the original source through BestHub's protected redirect.

Sign in to view source
Republication Notice

This article has been distilled and summarized from source material, then republished for learning and reference. If you believe it infringes your rights, please contactadmin@besthub.devand we will review it promptly.

SQLmysqlReplicationSecurityauditNewFeatures
dbaplus Community
Written by

dbaplus Community

Enterprise-level professional community for Database, BigData, and AIOps. Daily original articles, weekly online tech talks, monthly offline salons, and quarterly XCOPS&DAMS conferences—delivered by industry experts.

0 followers
Reader feedback

How this landed with the community

Sign in to like

Rate this article

Was this worth your time?

Sign in to rate
Discussion

0 Comments

Thoughtful readers leave field notes, pushback, and hard-won operational detail here.