I faced the same issue, after some digging, got it that u have to set root password your self following instructions at the StackOverFlow.
I found a solution at here link, by following this solution I have solved my problem.
sudo mysql -u root
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'test';
test is a new password for
the root user. Also, remember to run the command
service mysql restart after altering the user.
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'b230mehonot'' at line 1
Do not write mysql -u root, Just write "sudo mysql", In Ubuntu systems running MySQL 5.7 (and later), the root user is authenticated by the auth_socket plugin by default.
@ravisoni - THANK YOU. I was going nuts. And: What a reasonable default. I really should have thought to try that...
I found another way that is much better as we need not to give any
password for local system.
It is as followed.
Open terminal and type
sudo mysql -u root -p
It will prompt you in mysql, here you can fire any mysql commands.
Use mysql table for change table type, so we can use empty password. Bellow is command for it
Now we change type of table by following command
UPDATE user SET plugin='mysql_native_password' WHERE User='root';
now we have to flush the privileges, because we have used UPDATE. If you use INSERT, UPDATE or DELETE on grant tables directly you need use FLUSH PRIVILEGES in order to reload the grant tables.
now exit from mysql by following command
now restart mysql server by following command
service mysql restart
Hope this may help