GNU/Linux >> Tutoriels Linux >  >> Linux

mysql (mariadb) ERREUR 1698 (28000):Accès refusé pour l'utilisateur 'root'@'localhost'

Vous devez réinitialiser le mot de passe. donc pour cela

sudo mysql -u root
use mysql;
update user set plugin='' where User='root';
flush privileges;
exit;

L'idée avec la nouvelle configuration est que vous ne devriez pas du tout utiliser de mots de passe. Voir Plugin d'authentification UNIX_SOCKET pour plus de détails.

Ce qui est particulièrement pertinent, c'est le contenu de /usr/share/doc/mariadb-server-10.0/README.Debian.gz sur Ubuntu 16.04 :

Sur les nouvelles installations, aucun mot de passe root n'est défini et aucun utilisateur debian-sys-maint n'est plus créé. Au lieu de cela, le compte racine MariaDB est défini pour être authentifié à l'aide du socket unix, par ex. toute invocation mysqld par root ou via sudo permettra à l'utilisateur de voir l'invite mysqld.

Vous ne pouvez jamais supprimer l'utilisateur mysql "root". Bien qu'aucun mot de passe ne soit défini, le plug-in unix_auth garantit qu'il ne peut être exécuté que localement en tant qu'utilisateur root.

Les informations d'identification dans /etc/mysql/debian.cnf spécifient l'utilisateur qui est utilisé par les scripts d'initialisation pour arrêter le serveur et effectuer la rotation du journal. Il s'agissait auparavant de l'utilisateur debian-sys-maint qui n'est plus utilisé car root peut s'exécuter directement.

Donc, si vous désactivez ce plug-in pour root et définissez un mot de passe, la tâche cron quotidienne s'arrêtera car elle suppose qu'elle se connectera en tant que root sans mot de passe, mais avec le plug-in.

Plus tard, il dit :

Les scripts doivent être exécutés en tant qu'utilisateur disposant des autorisations requises et identifié via unix_socket.

Il semble donc que les mots de passe ne devraient plus être utilisés par les applications.


J'ai résolu le problème en suivant la réponse de ce post :

Impossible de réinitialiser le mot de passe racine MySQL (MariaDB)

Il faut changer le champ plugin de mysql.user pour toutes les racines en une chaîne vide.


Linux
  1. ERREUR 1045 (28000) :Accès refusé pour l'utilisateur 'root'@'localhost' (en utilisant le mot de passe :OUI)

  2. Activer le mot de passe simple pour l'utilisateur root sur CentOS

  3. déterminer ulimit pour l'utilisateur root

  4. Accès refusé pour un utilisateur particulier par la configuration du compte PAM

  5. Autoriser l'accès root mysql à l'utilisateur root linux sans mot de passe

Modifier la méthode d'authentification pour l'utilisateur racine MySQL dans Ubuntu

[Résolu] Impossible d'accéder au fichier de stockage, autorisation refusée Erreur dans KVM Libvirt

Aide-mémoire des commandes de base de données MySQL pour Linux

Dépannage :Erreur MySQL/MariaDB #1044 Е Accès refusé pour l'utilisateur

Comment se connecter en tant que root dans Mysql ?

Comment changer/réinitialiser le mot de passe racine MySQL ou MariaDB