Databases 26 min read

What’s New in MySQL 9.4.0? Key Features, Fixes, and Improvements

MySQL 9.4.0 introduces extensive updates including charset handling fixes, macOS compilation options, component behavior changes, new system variables, deprecations, InnoDB memory and indexing enhancements, revised installation procedures, JavaScript stored‑procedure improvements, performance‑mode tweaks, vector function fixes, numerous new features, and a long list of resolved bugs across the server, client, and replication subsystems.

dbaplus Community
dbaplus Community
dbaplus Community
What’s New in MySQL 9.4.0? Key Features, Fixes, and Improvements

Overview

MySQL 9.4.0 is the latest stable release, bringing a broad set of functional enhancements, bug fixes, and deprecations that affect the server, client, storage engines, replication, and tooling.

Charset Support Changes

IFNULL() in LIKE : Using IFNULL() inside a LIKE clause now triggers ER_CANT_AGGREGATE_2COLLATIONS because the function returns a binary collation with NONE derivation. The fix lowers the priority of NONE collations, allowing the comparison collation to be derived from the other operand.

CREATE TABLE with generated expressions : When a generated column references a non‑ASCII identifier and the client charset is not UTF‑8 (e.g., GBK), a syntax error occurs.

Compilation Notes

macOS now supports -DWITH_KERBEROS for server builds.

Buffer adjustments for reading status variables fix potential issues on macOS /M1.

Removed compatibility handling for older CMake versions.

Minimum CMake version required is 3.14.6.

ICU library upgraded to 77‑1; Zstandard upgraded to 1.5.7.

Various warnings removed for Clang 20, GCC 15, and older CMake list handling.

Boost requirement increased from 1.85.0 to 1.87.0.

Linker now correctly uses ext::icu instead of an empty ${ICU_LIBRARIES} variable.

OpenSSL linking now prefers a generic openssl symlink, supporting OpenSSL 3.

Component Changes

Component‑registered UDFs can no longer be uninstalled while running; the server now stores prior registration state to avoid accidental unloads.

Configuration Changes

Windows service upgrades now respect custom service names.

MySQL Installer no longer drops custom server settings from my.ini during upgrades.

Custom error‑log names no longer cause hangs during installer upgrades.

System variable back_log default increased to 10000.

New variable server_memory caps the physical memory used for default variable calculations.

Deprecations and Removals

Plugin API deprecated; --early-plugin-load now emits a warning.

Keyring plugin loading now warns; see keyring component migration docs.

System variable temptable_use_mmap removed.

Functions MD5() and SHA1() deprecated.

InnoDB Updates

Improved memory management to prevent leaks in error‑handling paths.

Fixed information_schema.innodb_cmp_per_index returning unknown names under cache eviction.

Default innodb_change_buffer_max_size set to 5 to balance IO‑intensive workloads.

Various bug fixes: foreign‑key checks on row updates, buffer pool affinity handling, duplicate‑key errors during temporary table cleanup, and more.

Installation Notes

macOS mysqld start now fails if --plugin-dir is omitted while --basedir lacks a trailing slash and keyring_file is enabled.

Non‑root users can now install MySQL Debian packages.

RPM/Yum repositories now support Red Hat Enterprise Linux 10 and Oracle Linux 10.

JavaScript Stored Procedures

Memory‑exhaustion handling improved: second context.parse() call may succeed, but the server now correctly returns an out‑of‑memory error.

Bundled GraalVM Maven version upgraded to 24.2.1.0.1; GraalVM and Truffle libraries updated. mysqldump --routines now skips missing INFORMATION_SCHEMA.LIBRARIES tables on older servers.

BIT type now supported in JavaScript stored procedures.

Performance Modes

Debug code in pfs_get_thread_statement_locker_vc() removed from release builds.

Vector Data Types

VECTOR_TO_STRING()

now correctly sets output collation.

New or Changed Features

mysql client --commands option : Enables or disables most client commands; disabled by default.

InnoDB now logs metadata of buf_page_t and buf_block_t for debugging.

Group replication adds error ER_GRP_RPL_APPLIER_THD_KILLED to distinguish kills.

NDB replication can shard binary logs across servers using --ndb-log-row-slice-count and --ndb-log-row-slice-id.

Signal‑handling history buffer increased to 1 GiB.

Curl bundled binary upgraded to 8.14.1.

Fixed Bugs

Hundreds of bugs were addressed, including but not limited to:

Group replication connection cleanup after member loss now stops after five minutes.

Performance regressions caused by removed redundant conditions in MySQL 8.0 are now fixed.

InnoDB foreign‑key checks now run only when needed.

Various memory leaks, assertion failures, and incorrect query handling across components such as the optimizer, replication, keyring, and the query rewrite plugin.

Windows MSI installer now checks for required Visual C++ Redistributable 14.42+.

Correct handling of non‑deterministic RAND() in RANGE window frames.

Additional Notes

For a complete list of changes, see the official MySQL documentation and the referenced bug numbers.

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.

databaseInnoDBmysqlfeaturesBug FixesRelease Notes
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.