Vous devez réinitialiser le mot de passe. donc pour cela
sudo mysql -u root
use mysql;
update user set plugin='' where User='root';
flush privileges;
exit;
L'idée avec la nouvelle configuration est que vous ne devriez pas du tout utiliser de mots de passe. Voir Plugin d'authentification UNIX_SOCKET pour plus de détails.
Ce qui est particulièrement pertinent, c'est le contenu de /usr/share/doc/mariadb-server-10.0/README.Debian.gz sur Ubuntu 16.04 :
Sur les nouvelles installations, aucun mot de passe root n'est défini et aucun utilisateur debian-sys-maint n'est plus créé. Au lieu de cela, le compte racine MariaDB est défini pour être authentifié à l'aide du socket unix, par ex. toute invocation mysqld par root ou via sudo permettra à l'utilisateur de voir l'invite mysqld.
Vous ne pouvez jamais supprimer l'utilisateur mysql "root". Bien qu'aucun mot de passe ne soit défini, le plug-in unix_auth garantit qu'il ne peut être exécuté que localement en tant qu'utilisateur root.
Les informations d'identification dans /etc/mysql/debian.cnf spécifient l'utilisateur qui est utilisé par les scripts d'initialisation pour arrêter le serveur et effectuer la rotation du journal. Il s'agissait auparavant de l'utilisateur debian-sys-maint qui n'est plus utilisé car root peut s'exécuter directement.
Donc, si vous désactivez ce plug-in pour root et définissez un mot de passe, la tâche cron quotidienne s'arrêtera car elle suppose qu'elle se connectera en tant que root sans mot de passe, mais avec le plug-in.
Plus tard, il dit :
Les scripts doivent être exécutés en tant qu'utilisateur disposant des autorisations requises et identifié via unix_socket.
Il semble donc que les mots de passe ne devraient plus être utilisés par les applications.
J'ai résolu le problème en suivant la réponse de ce post :
Impossible de réinitialiser le mot de passe racine MySQL (MariaDB)
Il faut changer le champ plugin de mysql.user pour toutes les racines en une chaîne vide.