[SOLVED] MySQL set root password wrong

Issue

I was trying to remove the root password. Somehow.. by reading an old post here, I managed to change my password to something that I don’t know.I used this exact command:

mysqladmin -u root -p password ''

After entering this and my password, I couldn’t log in as root anymore. What is that “” representing ?

Solution

From https://www.howtoforge.com/setting-changing-resetting-mysql-root-passwords

Recover MySQL root password

You can recover a MySQL database server password with the following five easy steps:

  1. Stop the MySQL server process.

  2. Start the MySQL (mysqld) server/daemon process with the –skip-grant-tables option so that it will not prompt for a password.

  3. Connect to the MySQL server as the root user.

  4. Set a new root password.

  5. Exit and restart the MySQL server.

Here are the commands you need to type for each step (log in as the root user):

  1. Stop the MySQL service:
service mysql stop

Output:

Stopping MySQL database server: mysqld.

  1. Start the MySQL server w/o password:
mysqld_safe --skip-grant-tables &

Output:

[1] 5988

Starting mysqld daemon with databases from /var/lib/mysql
mysqld_safe[6025]: started
  1. Connect to the MySQL server using the MySQL client:
mysql -u root

Output:

Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 56299
Server version: 5.6.34-1 (Debian)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.


mysql>
  1. Set a new MySQL root user password:

MySQL 5.7.5 and earlier

mysql> use mysql;
mysql> update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
mysql> flush privileges;
mysql> quit

MySQL 5.7.6 and newer

mysql> use mysql;
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD("newpass");
mysql> flush privileges;
mysql> quit

Step # 5: Stop the MySQL server:

service mysql stop

Output:

Stopping MySQL database server: mysqld
STOPPING server from pid file /var/run/mysqld/mysqld.pid
mysqld_safe[6186]: ended

[1]+  Done                    mysqld_safe --skip-grant-tables

Or use this command to stop MySQL if the command above fails to stop it (which command works depends on the MySQL version):

killall mysqld

The output might differ based on the Linux distribution. Don’t worry unless it reports an error. Start the MySQL server and test it:

service mysql start
mysql -u root -p

Answered By – Shawn

Answer Checked By – David Marino (BugsFixing Volunteer)

Leave a Reply

Your email address will not be published.