I lost my MySQL username and password. How do I retrieve it?
Answers
Stop the MySQL process.Start the MySQL process with the --skip-grant-tables option.Start the MySQL console client with the -u root option.
List all the users;
SELECT * FROM mysql.user;
Reset password;
UPDATE mysql.user SET Password=PASSWORD('[password]') WHERE User='[username]';
But DO NOT FORGET to
Stop the MySQL processStart the MySQL Process normally (i.e. without the --skip-grant-tables option)
when you are finished. Otherwise, your database's security could be compromised.
An improvement to the most useful answer here:
1] No need to restart the mysql server
2] Security concern for a MySQL server connected to a network
There is no need to restart the MySQL server.
use
The FLUSH statement tells the server to reload the grant tables into memory FLUSH PRIVILEGES;
after the update mysql.user statement for password change.
The
--skip-grant-options
enables anyone to connect without a password and
with all privileges. Because this is insecure, you might want to
use --skip-grant-tables in conjunction with --skip-networking to prevent remote
from: reference: resetting-permissions-generic
If you have root access to the server where mysql is running you should stop
the mysql server using this command
sudo service mysql stop
Now start mysql using this command
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
Now you can login to mysql using
sudo mysql
FLUSH PRIVILEGES;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
Although a strict, logical, computer science'ish interpretation of the op's question
would be to require both "How do I retrieve
my MySQL username" and "password" - I thought It might be useful to someone
to also address the OR interpretation. In other words ...
1) How do I retrieve my MySQL username?
OR
2) password
This latter condition seems to have been amply addressed already so I won't bother with it.
The following is a solution for the case "How do i retreive my MySQL username" alone. HIH.
To find your mysql username run the following commands from the mysql shell ...
SELECT User FROM mysql.user;
it will print a table of all mysql users.
Do it without down time
Run following command in the Terminal to connect to the DBMS (you need root access):
sudo mysql -u root -p;
run update password of the target user (for my example username is
mousavi
and it's
password must be
UPDATE mysql.user SET authentication_string=PASSWORD('123456')123456
):
at this point you need to do a flush to apply changes:
FLUSH PRIVILEGES;
Done! You did it without any stop or restart mysql service.
0 comments:
Post a Comment