Common SQL Errors

MySQL Error 1699: ER_SET_PASSWORD_AUTH_PLUGIN - Causes, Fixes, Prevention

Galaxy Team
August 7, 2025

<p>MySQL raises error 1699 when SET PASSWORD is executed for an account that authenticates through a non-password plugin such as auth_socket.</p>

Sign up for the latest in common SQL errors from the Galaxy Team!
Welcome to the Galaxy, Guardian!
You'll be receiving a confirmation email

Follow us on twitter :)
Oops! Something went wrong while submitting the form.

What is MySQL error 1699 ER_SET_PASSWORD_AUTH_PLUGIN?

<p>MySQL Error 1699: ER_SET_PASSWORD_AUTH_PLUGIN appears when SET PASSWORD targets a user that logs in through an authentication plugin instead of a stored password. Skip the command or switch the account to mysql_native_password to resolve the issue.</p>

Error Highlights

Typical Error Message

SET PASSWORD has no significance for users authenticating

Error Type

Authentication Error

Language

MySQL

Symbol

ER_SET_PASSWORD_AUTH_PLUGIN

Error Code

1699

SQL State

HY000

Explanation

Table of Contents

What is MySQL Error 1699: ER_SET_PASSWORD_AUTH_PLUGIN?

MySQL throws error 1699 (SQLSTATE HY000) with message "SET PASSWORD has no significance for users authenticating via plugins" when the SET PASSWORD statement targets an account that logs in through an authentication plugin that does not rely on a stored password, for example auth_socket or ldap_auth.

The server refuses the password change because the plugin, not the mysql.user password field, validates the login. As a result, altering the password would have no effect, so MySQL blocks the request and raises the error instead of silently ignoring it.

What Causes This Error?

The error is triggered whenever SET PASSWORD references a user account whose plugin column is set to a mechanism that bypasses the mysql_native_password or caching_sha2_password schemes. Common examples include unix_socket, auth_socket, AWSAuthenticationPlugin, and PAM based plugins.

It can also appear inside GUI tools or automation scripts that attempt to rotate passwords in bulk without first checking the authentication_plugin value for each account. Upgrading from earlier MySQL versions, where accounts inherited plugins, may reveal the issue during password resets.

How to Fix MySQL Error 1699

Choose whether you want the account to keep plugin based authentication or switch back to a password based plugin. If plugin authentication is desired, simply skip the SET PASSWORD command. If a password is required, alter the account to mysql_native_password or caching_sha2_password and then set a password.

After migrating the plugin, run ALTER USER or SET PASSWORD again. Ensure that the account has sufficient privileges and that the change is executed on the correct host pattern ('user'@'host').

Common Scenarios and Solutions

System administrators often hit the error when resetting the root account on Ubuntu, where root authenticates with auth_socket. The fix is to switch root to mysql_native_password before changing the password.

CI pipelines that rotate passwords for all service accounts may fail if one service relies on a plugin such as AWS IAM. Add a filter step to skip plugin accounts or manage their credentials with the plugin specific tools instead of SET PASSWORD.

Best Practices to Avoid This Error

Audit the mysql.user table regularly and record the authentication_plugin for every account. Label plugin accounts clearly and exclude them from automated password rotations.

For new users, decide on the authentication mechanism at creation time: use CREATE USER ... IDENTIFIED WITH to make the choice explicit. Maintain separate playbooks for password and plugin credential management to prevent accidental misuse of SET PASSWORD.

Related Errors and Solutions

Error 1698 (Access denied for user 'root'@'localhost'): appears when the socket plugin prevents password login. Switch plugins or use sudo mysql to connect.

Error 1819 (Your password does not satisfy the current policy requirements): occurs during password changes that violate validate_password rules. Provide a stronger password or relax the policy.

Common Causes

Using auth_socket or unix_socket plugin

Accounts mapped to the operating system user via auth_socket ignore MySQL stored passwords. Running SET PASSWORD against such accounts triggers error 1699 immediately.

Bulk password rotation scripts

Automation that calls SET PASSWORD for every account without verifying authentication_plugin will fail on any plugin based account, halting the entire rotation process.

Migrated accounts with legacy plugins

After upgrading MySQL, some accounts may inherit third party plugins like AWSAuthenticationPlugin. Attempts to reset their password using legacy scripts raise error 1699.

Related Errors

MySQL Error 1698: Access denied for user using socket authentication

Occurs when logging in with a password for an auth_socket account. Fix by changing plugin or connecting through the socket mechanism.

MySQL Error 1819: Password does not satisfy policy

Raised when the new password violates validate_password or component_password_validate policies. Provide a stronger password or adjust the policy variables.

MySQL Error 1396: Operation CREATE USER failed

Appears when you attempt to create an account that already exists. Use IF NOT EXISTS or DROP USER before creation.

FAQs

Can I ignore MySQL Error 1699?

If the account truly authenticates only through a plugin, you can safely ignore the error and remove the SET PASSWORD statement.

Does ALTER USER raise the same error?

No. ALTER USER with IDENTIFIED WITH allows you to change both the plugin and the password in one command, avoiding error 1699.

Will changing the plugin affect existing connections?

Yes. Switching plugins forces the client to reconnect using the new authentication method. Plan for a brief outage or perform the change during maintenance windows.

How does Galaxy help prevent this error?

Galaxy flags failed statements in real time and highlights accounts using non password plugins, so engineers can adjust their scripts before running them.

Start Querying with the Modern SQL Editor Today!
Welcome to the Galaxy, Guardian!
You'll be receiving a confirmation email

Follow us on twitter :)
Oops! Something went wrong while submitting the form.

Check out some other errors

Trusted by top engineers on high-velocity teams
Aryeo Logo
Assort Health
Curri
Rubie Logo
Bauhealth Logo
Truvideo Logo