Tuesday, March 21, 2017

MySql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Leave a Comment

I've tried multiple solutions from StackOverflow but haven't had any success. I'm on Mac OSX (Sierra 10.12.3) trying to create a new database and user. From terminal I enter:

mysql -u root 

which outputs this error:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

To try and resolve it I stopped mysql from 'System Preferences', then from terminal typed:

sudo mysqld_safe —skip-grant-tables 

I opened a second tab and entered:

mysql -u root 

Then from in mysql:

update mysql.user set password_expired = 'N', authentication_string=PASSWORD('newpassword') where user = 'root';  flush privileges; 

I then restart the computer (killing the process with CMD + C doesn't work). After restarting, trying mysql -u root still produces the same error.

I am able to access mysql via a MySQL client and a non-root user.

Any help is appreciated.

7 Answers

Answers 1

For security reason mysql -u root wont work untill you pass -p in command so try with below way

 mysql -u root -p[Enter]  //enter your localhost password 

Answers 2

just use:

$ sudo mysql 

without the "-u root" parameter.

Answers 3

You must run your mysql by xampp-controle.exe in folder XAMPP. After that login:

mysql -u root 

Answers 4

mysql -u root -p; 

And mysql will ask for the password

Answers 5

Is it possible the root password is not what you think it is? Have you checked the file /root/.mysql_secret for the password? That is the default location for the automated root password that is generated from starting from version 5.7.

cat /root/.mysql_secret 

Answers 6

If you need to skip the password prompt for some reason, you can input the password in the command (Dangerous)

mysql -u root --password=secret 

Answers 7

Just to confirm: You are sure you are running MySQL 5.7, and not MySQL 5.6 or earlier version. And the plugin column contains "mysql_native_password". (Before MySQL 5.7, the password hash was stored in a column named password. Starting in MySQL 5.7, the password column is removed, and the password has is stored in the authentication_string column.) And you've also verified the contents of authentication string matches the return from PASSWORD('mysecret'). Also, is there a reason we are using DML against the mysql.user table instead of using the SET PASSWORD FOR syntax? – spencer7593

So Basically Just make sure that the Plugin Column contains "mysql_native_password".

Not my work but I read comments and noticed that this was stated as the answer but was not posted as a possible answer yet.

If You Enjoyed This, Take 5 Seconds To Share It

0 comments:

Post a Comment