MySQLdb._exceptions.OperationalError: (1698, "Access denied for user 'root'@'localhost'") code example

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

>>> sudo mysql -u root -p

>>> USE mysql;

>>> UPDATE user SET plugin='mysql_native_password' WHERE User ='root';

>>> FLUSH PRIVILEGES;

>>> exit;

>>> service mysql restart;

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

$ sudo mysql -u root # I had to use "sudo" since is new installation

mysql> USE mysql;
mysql> UPDATE user SET plugin='mysql_native_password' WHERE User='root';
mysql> FLUSH PRIVILEGES;
mysql> exit;

$ service mysql restart

Example 3: django.db.utils.OperationalError: (1698, "Access denied for user 'root'@'localhost'")

create user 'django'@'localhost' identified by 'django-user-password';
grant usage on *.* to 'django'@'localhost';
grant all privileges on django-database-1.* to 'django'@'localhost';