Change mysql root password on Centos7.

For resetting the root password, you still start mySQL with –skip-grant-tables
options and update the user table, but how you do it has changed.

1. Stop mysql:
systemctl stop mysqld

2. Set the mySQL environment option
systemctl set-environment MYSQLD_OPTS=”- -skip-grant-tables”

Note: writing  MYSQLD_OPTS=”skip-grant-tables”  (-)  instead  of MYSQLD_OPTS=”– – skip-grant-tables”  can create error.

3. Start mysql usig the options you just set

systemctl start mysqld

4. Login as root
mysql -u root

5. Update the root user password with these mysql commands
mysql> UPDATE mysql.user SET authentication_string = PASSWORD(‘MyNewPassword’)
-> WHERE User = ‘root’ AND Host = ‘localhost’;
mysql> quit

6. Stop mysql
systemctl stop mysqld

7. Unset the mySQL envitroment option so it starts normally next time
systemctl unset-environment MYSQLD_OPTS

8. Start mysql normally:
systemctl start mysqld

Try to login using your new password:
9. mysql -u root-p
$sudo grep ‘temporary password’ /var/log/mysqld.log

10.744785Z 1
[Note] A temporary password is generated for root@localhost: o!5y,oJGALQa

Leave a Reply

Your email address will not be published. Required fields are marked *