Resetting ROOT password in MySQL 5.6

On Windows:

0) shut down service mysql56

1) go to C:\ProgramData\MySQL\MySQL Server 5.6, note that ProgramData is a hidden folder

2) looking for file my.ini, open it and add one line skip-grant-tables below [mysqld],save

[mysqld]

skip-grant-tables

3) start service mysql56

4) by right, you can access the database, run mysql

5) and use the query below to update the password

update mysql.user set password=PASSWORD('NEW PASSWORD') where user='root';

note: for newer version, use authentication_string instead of password

6) shut down the service again, remove the line skip-grant-tables save it, and start the service again. try to use the password you set to login.


On Mac:

0) stop the service

sudo /usr/local/mysql/support-files/mysql.server stop

1) skip grant table

sudo /usr/local/mysql/bin/mysqld_safe --skip-grant-tables

once it's running, don't close it, and open a new terminal window

2) go into mysql terminal

/usr/local/mysql/bin/mysql -u root

3) update the password

UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';

for newer version like 5.7, use

UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';

4) run FLUSH PRIVILEGES;

5) run \q to quit

6) start the mysql server

sudo /usr/local/mysql/support-files/mysql.server start

  • Stop Mysql service by going into Administrative tools > Services
  • Open Start > Run > cmd (Run as administrator)
  • Start the server manually using this line:

    mysqld -P3306 --skip-grant-tables
    
  • In new cmd (Run as administrator) execute :

    mysql -P3306 mysql
    
  • Execute the following query in mysql client:

    update mysql.user set authentication_string=password('new_password') where user='root';
    

That's it!!