Vous ne pouvez plus vous connecter à MySQL en tant que root?

8

Il semble que je ne puisse plus me connecter à MySQL (en fait MariaDB) en tant qu'utilisateur root dans Ubuntu 15.04 (j'ai mis à niveau de 14.04 à 14.10)

J'ai déjà essayé de réinitialiser le mot de passe.

Ce qui est au travail, est sudo mysql- mais je veux connecter en tant que root d'un autre utilisateur à l' aide mysql -uroot -p. Lorsque je crée un nouvel utilisateur avec tous les droits et mot de passe, cela fonctionne.

Y a-t-il eu quelque chose de changé?

Alex
la source
ehm ... "mais je veux me connecter en tant que root" Pour moi (!) il n'y a jamais eu de raison à cela. Vous pouvez configurer le système pour tout autre utilisateur que root et faire la même chose de cet utilisateur si vous le souhaitez ;-)
Rinzwind
@Rinzwind Beaucoup de raisons de se connecter en tant que root dans une base de données . C'est le seul moyen de gérer les utilisateurs, les bases de données, etc. Il n'y a pas de mécanisme sudo interne.
Oli
@oli, nous utilisons un autre utilisateur pour cela. c'est à dire. l'accès avec "root" n'est possible qu'en utilisant "sudo su" pour réinitialiser mysql mais celui-ci ne nécessite aucune authentification.
Rinzwind

Réponses:

6

Donc , vous avez passé de la version 5.5.44-1ubuntu0.14.04.1à 10.0.20-0ubuntu0.15.04.1. Cela semble plus effrayant que ça, c'est juste ce qu'ils ont appelé 5.6 pour une raison quelconque .

Il semble que les nouvelles versions de MariaDB ont ajouté un plugin à la table utilisateur pour forcer l'authentification via un chemin fixe. Dans ce cas, l' rootutilisateur de la base de données est forcé via le unix_socketplugin . Cela semble également être connu comme auth_socketdans certains cercles.

Quoi qu'il en soit, ce plugin restreint les choses afin que seul l' rootutilisateur du système puisse se connecter en tant que base de données root, sans mot de passe. C'est un choix de sécurité qu'ils ont fait.

Vous pouvez annuler cela en supprimant le champ du plugin pour l' rootutilisateur :

shell$ sudo mysql -u root

[mysql] use mysql;
[mysql] update user set plugin='' where User='root';
[mysql] flush privileges;

Un mot de passe spécifié devrait fonctionner après cela. Je ne sais pas dans quelle mesure cela est cependant recommandé.

Oli
la source
Après cela, la connexion via sudo mysql -u rootn'est plus possible. Cela signifie que le /etc/mysql/debian.confdevrait également être adapté.
Alex
4
N'a pas travaillé pour moi. Après cela, je ne pouvais même plus me connecter avec 'sudo mysql -u root'.
MrSmith42