56 votes

Ubuntu 15.10 mysql error 1524 - unix_socket

Sur Ubuntu 15.10, à un moment donné (peut-être après une installation et une suppression de mariadb), mysql était incapable de fonctionner. Les tâches sont en place, mais le serveur est en panne.

Au commandement :

mysql -u root -p

le système répond avec comme un :

mysql "ERROR 1524 (HY000): Plugin 'unix_socket' is not loaded"

Aucun moyen de se connecter, aucun plugin trouvé, aucune erreur dans les fichiers de configuration (tous par défaut).

Comment reprendre le contrôle, et faire fonctionner le serveur mysql ?

103voto

Hydra Starmaster Points 1713

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.

12voto

Roy Yan Points 121

Voici comment je procède :

/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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X