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 SETPassword=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/ )