Sur Ubuntu 15.10, à un moment donné (peut-être après une installation et suppression de mariadb), mysql était incapable de fonctionner. Les tâches sont terminées, mais le serveur est en panne.
À la commande:
mysql -u root -p
le système répond avec comme un:
mysql "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"
Pas de moyen de se connecter, pas de plug-in trouvé, pas d'erreur dans les fichiers de configuration (tous par défaut).
Comment reprendre le contrôle et faire fonctionner le serveur mysql?
Le "unix_socket" a été appelé par le processus d'authentification mysql (peut-être lié à une migration partielle de la base de données vers mariadb, maintenant supprimée). Pour que tout fonctionne à nouveau, allez sur 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 (aucun mot de passe requis) et se connectera à mysql avec l'utilisateur "root".
Maintenant, dans la console mysql, utilisez la base de données administrative mysql:
use mysql;
Pour réinitialiser le mot de passe root sur mynewpassword (changez-le si vous le souhaitez), pour en être sûr:
update user set password=PASSWORD("mynewpassword") where User='root';
Et celui-ci écrasera la méthode d'authentification, supprimera la demande unix_socket (et tout le reste), en restaurant une méthode de mot de passe normale et fonctionnelle:
update user set plugin="mysql_native_password";
Quittez la console mysql:
quit;
Arrêtez et démarrez tout ce qui concerne mysql:
/etc/init.d/mysql stop
kill -9 $(pgrep mysql)
/etc/init.d/mysql start
N'oubliez pas de exit
le mode su.
Le serveur MySQL est maintenant opérationnel. 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.
Voici mes étapes à suivre:
/etc/init.d/mysql stop
Sudo killall mysqld_safe
Sudo killall mysqld
Sudo mysqld_safe --skip-grant-tables &
mysql -u root
use mysql;
update user set password=PASSWORD("mynewpassword") where User='root';
update user set plugin="mysql_native_password";
quit;
/etc/init.d/mysql stop
Sudo kill -9 $(pgrep mysql)
/etc/init.d/mysql start