I recently followed some tutorials and installed mysql using sudo apt-get install mysql-server-5.7

I can connect to the database using password by running the following command:

sudo mysql -u root -p

I try to connect by running:

mysql -u root -p

but I get the error:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'

Why? How can I fix this?

  • 2
    dear downvoter , can you also drop a reason for downvote , atleast an explation why this is an stupid question ? – user1379280 Jan 5 '18 at 23:48
  • This might be related. Look at some of the answers: askubuntu.com/questions/766334/… – Terrance Jan 6 '18 at 0:57
  • Did you set a root password for mysql during the installation? – steeldriver Jan 6 '18 at 0:57
  • @steeldriver : yes I did – user1379280 Jan 6 '18 at 19:12
  1. Access with sudo: sudo mysql -u root -p
  2. Delete the root user: drop user 'root'@'localhost';
  3. Create the root user again: create user 'root'@'%' identified by 'your_password';
  4. Give permissions: grant all privileges on *.* to 'root'@'%' with grant option;
  5. Update permission tables: flush privileges;
  6. Exit MYSQL and try to reconnect without sudo.

Font: can't login as mysql user root from normal user account in ubuntu 16.04

| improve this answer | |
  • Thanks! These steps worked for me too and I don't need sudo now to use mysql! Looks like replacing the host localhost with % resolved the issue for me. – Vikram Hosakote Feb 27 '19 at 22:43
  • but still cannot access remotely – Ciasto piekarz Nov 23 '19 at 13:30
  • Didn't work for me, now I can't get in with or without sudo! – David Powell Dec 23 '19 at 2:49

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.