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:
-
Stop the MySQL server process.
-
Start the MySQL (mysqld) server/daemon process with the –skip-grant-tables option so that it will not prompt for a password.
-
Connect to the MySQL server as the root user.
-
Set a new root password.
-
Exit and restart the MySQL server.
Here are the commands you need to type for each step (log in as the root user):
- Stop the MySQL service:
service mysql stop
Output:
Stopping MySQL database server: mysqld.
- 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
- 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>
- 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)