MySQL 4.1 extended password hashes from 16 to 41 bytes. However, upgrading MySQL does not automatically update the old password passwords, so existing passwords continue to be stored in the deprecated format. This is because MySQL does not store passwords as plain text, so regenerating password hashes requires user intervention.
was enabled by default as of MySQL 5.6. It is always enabled as of
MySQL 5.7, meaning it can not be disabled. A
future MySQL release will remove this option. With this option
enabled, a user with a password defined in the old format will not
be able to login to MySQL.
With all that said, the deprecated password format does not function with MySQL 5.7. All passwords using the old format must be updated. This section documents how to upgrade these passwords using MySQL Workbench. For information about migrating away from the old password format using the MySQL command line instead of Workbench, see Migrating Away from Pre-4.1 Password Hashing and the mysql_old_password Plugin.
The method that MySQL stores a password is defined by an
authentication plugin. The old method uses the
mysql_old_password authentication plugin, and
the current default method uses
mysql_native_password. As of MySQL 5.6, a
sha256_password option is also available
although it requires an SSL or encrypted connection. When
Workbench upgrades passwords, it upgrades
mysql_native_password. For additional
information about authentication plugins, see
Upgrading a password does have constraints. Here are two scenarios:
secure_authMySQL Server option is disabled, then you can log in using the user with the old password format and update the user's own MySQL password. However, this is not an option as of MySQL Workbench 6.3.5 because compatibility with the old password format was removed. For this reason, a user's ability to upgrade their own password format must be done using the MySQL command line as described in Migrating Away from Pre-4.1 Password Hashing and the mysql_old_password Plugin.Note
If using the MySQL command line is not an option, then you could use an older version of MySQL Workbench (version 6.3.4 and earlier), which allows you to enable a Use the old authentication protocol option under the Advanced connections tab. Older versions of Workbench are available at https://downloads.mysql.com/archives/workbench/.
As stated earlier,
secure_authis enabled by default as of MySQL 5.6, and always enabled as of MySQL 5.7.
secure_authis enabled, you can not log in if your user's password is stored in the old format. Attempts will fail and emit an error similar to "ERROR 2049 (HY000): Connection using old (pre-4.1.1) authentication protocol refused (client option 'secure_auth' enabled)". To upgrade the password, you can either disable
secure_auth(not recommended) then update as described above, or log in as a different and privileged user, such as root, to change the password for a different user.
Keeping the above in mind, there are two methods to update passwords using Workbench.
Open the Users and Privileges tab from Workbench's Management navigator. Select the user you want to update from the User Accounts section. If using the old password format, you will see text beginning with "This account is using the pre-mysql-4.1.1 password hashing type." in the lower right corner of the screen, and also a large button on the right. From here, you can:
Option for all MySQL versions:
Manually enter a new password, or the current password, and click. This upgrades the password to the newer password format, and the MySQL user can now log in using the new password that you defined.
Option for MySQL 5.6 and later:
Rather than editing the password field, leave it alone and immediately click. From here, you can generate a random password and tag it as expired by clicking . Use this temporary random password to login the user, and MySQL will prompt for a new password when the user first logs in.
The following screen shots demonstrate the steps used in both methods:
When resetting to a random password, you must save the password and give it to the user. You will find the random password in the new popup window, that is similar to:
After completing the upgrade, notice the new
Authentication Type for the connection. In
our examples, it changed from Standard
(old) to Standard. In
other words, the authentication type changed from