How to Reset a Forgotten MySQL Root Password
This guide explains how to recover a lost MySQL root password by editing the MySQL configuration to skip grant tables, restarting the service, and then setting a new password via SQL commands, with platform-specific steps for Windows, macOS, and Linux.
1. Modify MySQL Configuration File
Open the MySQL configuration file: my.ini on Windows (located in the installation directory) or my.cnf on macOS/Linux (usually /etc/my.cnf ). Add skip-grant-tables under the [mysqld] section to bypass authentication.
Note
If the configuration file does not exist on macOS, create /etc/my.cnf with the following content:
[client]
default-character-set=utf8
[mysqld]
bind-address = 127.0.0.1
character-set-server=utf8
skip-grant-tables2. Restart MySQL
After saving the changes, restart the MySQL service so the new settings take effect.
Windows:
net stop mysql
net start mysqlLinux:
service mysql restartmacOS: restart via the graphical interface (as shown in the original screenshots).
3. Set a New Password
Once MySQL is running with skip-grant-tables , connect without a password:
mysql -u root -pWhen prompted for a password, simply press Enter. Then execute the following SQL statements to set a new root password:
update user set password=password('new_password') where user='root';
flush privileges;
quitNote
If you encounter the error ERROR 1290 (HY000): The MySQL server is running with the --skip-grant-tables option so it cannot execute this statement , first run flush privileges and then repeat the password‑setting commands.
Finally
After the new password is set, remove the skip-grant-tables line from the configuration file and restart MySQL again. The server will now require the new password for normal access.
Full-Stack Internet Architecture
Introducing full-stack Internet architecture technologies centered on Java
How this landed with the community
Was this worth your time?
0 Comments
Thoughtful readers leave field notes, pushback, and hard-won operational detail here.