
What the Error Looks Like?
If you recently upgraded to MySQL 8.4, you may have run into the dreaded:
“ERROR 2059 (HY000): Authentication plugin 'mysql_native_password' is not loaded”
That suggests you have to choose between switching to the more modern approach or manually activating the old one. This blog guides you step-by-step through why the mistake happens, how to fix it, and what MySQL actually advises.
Why This Error Happens in MySQL 8.4 ?
MySQL has tightened security starting with 8.0 and particularly in 8.4 LTS.
The plugin mysql_native_password is usually disabled. In many settings, it is no longer loaded at all.
Therefore, if you want to make a user like this:
CREATE USER 'user'@'%' FOUND AS mysql_native_password BY 'password';
The plugin being unavailable will help you to find the mistake.
How to fix mysql_native_password is not loaded in MySQL 8.4+
1: Use the New Default Authentication (Recommended)
MySQL recommends using:
✔ caching_sha2_password (default and secure)
So instead of forcing mysql_native_password, create the user like this:
CREATE USER 'user'@'%' IDENTIFIED BY 'password'; GRANT ALL PRIVILEGES ON . TO 'user'@'%'; FLUSH PRIVILEGES;
Or explicitly:
CREATE USER 'user'@'%' IDENTIFIED WITH caching_sha2_password BY 'password';
2: Enable mysql_native_password Plugin (Not Recommended but Possible)
If your application or CMS is old (WordPress plugins, old PHP apps, old Python/mysql libs), you may need the legacy plugin.
Step 1: Load the plugin manually
Run:
INSTALL PLUGIN mysql_native_password SONAME 'authentication_legacy.so';
Step 2: Verify plugin is loaded
SELECT PLUGIN_NAME, PLUGIN_STATUS FROM INFORMATION_SCHEMA.PLUGINS WHERE PLUGIN_NAME='mysql_native_password';
If it shows ACTIVE, you’re good.
Step 3: Now create the user
CREATE USER 'user'@'%' IDENTIFIED WITH mysql_native_password BY 'password';
3. User Accounts Still Using Deprecated Plugin
Cause:
Old accounts are set with mysql_native_password.
Fix:
Log in to MySQL:
Run:
mysql -u root -p
ALTER USER '
'@' ' IDENTIFIED WITH caching_sha2_password BY ' ';
## The mysql_native_password not loaded error happens because MySQL 8.4 has fully moved toward more secure authentication methods.Share this article
Loading comments...
© 2026 CloudHouse Technologies Pvt.Ltd. All rights reserved.