Причина в том, что при недавней установке Ubuntu (может быть, и другие) mysql по умолчанию использует плагин UNIX auth_socket.
В основном означает, что: db_users, использующие его, будут "auth" учетными данными пользователя системы,Вы можете увидеть, настроен ли ваш пользователь root следующим образом:
$ sudo mysql -u root # I had to use "sudo" since is new installation
mysql> USE mysql;
mysql> SELECT User, Host, plugin FROM mysql.user;
+------------------+-----------------------+
| User | plugin |
+------------------+-----------------------+
| root | auth_socket |
| mysql.sys | mysql_native_password |
| debian-sys-maint | mysql_native_password |
+------------------+-----------------------+
Как видно из запроса, пользователь root использует плагин auth_socket
2 способа решить эту проблему:
Вы можете настроить пользователя root на использование плагина mysql_native_password. Вы можете создать нового пользователя db_user с вашим system_user (рекомендуется) Опция 1:
$ 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