Depuis Bionic 18.04, et MariaDB depuis Xenial 16.04, l'authentification de l'utilisateur root de MySQL se fait au moyen du plugin auth_socket, donc avec sudo.
Donc il n'est plus possible de se connecter directement en root avec phpMyAdmin.
La solution de remplacement est de créer un nouvel utilisateur et de lui attribuer tous les privilèges :
sudo mysql

Puis dans la console MySQL :

CREATE USER utilisateur@localhost IDENTIFIED BY 'motdepasse'
GRANT ALL ON *.* TO 'utilisateur'@'localhost' WITH GRANT OPTION;
FLUSH PRIVILEGES;
QUIT;

Si la connexion en root s'avère impossible (mot de passe oublié, etc..),
aller dans le fichier /etc/mysql/mysql.conf.d/mysqld.cnf et ajouter dans la partie [mysqld]
skip-grant-tables
;
Attention : ceci va permettre à n'importe qui de se connecter de n'importe ou. A supprimer impérativement après.
redémarrer mysql
sudo systemctl restart mysql
ou
sudo /etc/init.d/mysql restart

puis faire un mysql -u root
et on accède enfin à mysql et on peut changer le mot de passe root

flush privileges;
use mysql;

UPDATE user SET Password=PASSWORD('my_password') where USER='root';

flush privileges;

Ne pas oublier d'enlever la ligne

skip-grant-tables de tout àl'heure...
Remarque  : pour mysql 8.0, la commande password() ne semble plus fonctionner et la colonne password s'appelle authentication_string - A creuser...
(voir aussi : https://bobcares.com/blog/access-denied-for-user-rootlocalhost-using-password-yes-mysql/ )