web-dev-qa-db-fra.com

Ubuntu 15.10 erreur mysql 1524 - unix_socket

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?

47
Hydra Starmaster

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.

89
Hydra Starmaster

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
11
Roy Yan