Le "unix_socket" a été appelé par le processus d'authentification de mysql (peut-être lié à une migration partielle de la base de données vers mariadb, maintenant supprimée). Pour que tout fonctionne à nouveau, utilisez su :
sudo su
puis suivez :
/etc/init.d/mysql stop
mysqld_safe --skip-grant-tables &
mysql -uroot
Cela arrêtera complètement mysql, contournera l'authentification de l'utilisateur (pas de mot de passe nécessaire) et se connectera à mysql avec l'utilisateur "root".
Maintenant, dans la console mysql, allez utiliser mysql administrative db :
use mysql;
Pour réinitialiser le mot de passe root à monnouveaumotdepasse (changez-le à votre guise), juste pour en être sûr :
update user set password=PASSWORD("mynewpassword") where User='root';
Et celui-ci va écraser la méthode d'authentification, supprimer la requête unix_socket (et tout le reste), restaurant une méthode de mot de passe normale et fonctionnelle :
update user set plugin="mysql_native_password";
Quitter la console mysql :
quit;
Arrêter et démarrer tout ce qui est lié à mysql :
/etc/init.d/mysql stop
kill -9 $(pgrep mysql)
/etc/init.d/mysql start
N'oubliez pas de exit
le mode su.
Maintenant, le serveur mySQL est en place et fonctionne. Vous pouvez vous connecter avec root :
mysql -u root -p
ou ce que vous voulez. L'utilisation du mot de passe est opérationnelle.
C'est tout.