11

réinitialiser le mot de passe root oublié pour MariaDB ou MySql serveur en 5 étapes

Un mémo sur comment réinitialiser le mot de passe root oublié du serveur de base de données MariaDB ou MySQL.

mariadb_mysql

Méthode avec systemd

  • Redémarrer le service MySQL en mode --skip-grant-tables :
  • systemctl set-environment MYSQLD_OPTS="--skip-grant-tables"
    systemctl restart mariadb
    

    Plus besoin de mot de passe dans ce mode pour se connecter au serveur !

  • Définir un nouveau mot de passe avec la commande mysql_secure_installation:
    mysql_secure_installation
    • Autres méthodes à l’aide d’instructions SQL :
      • Se connecter au serveur avec la commande mysql :
      • mysql
      • Ensuite, plusieurs façons de faire pour changer le mot de passe :
        • Une première méthode :
        • SET PASSWORD FOR root@'localhost'=PASSWORD('mon_nouveau_mot-de_passe');
        • ou :
        • UPDATE mysql.user SET password=PASSWORD('mon_nouveau_mot_de_passe') WHERE User='root' AND Host = 'localhost';
          FLUSH PRIVILEGES;
          
        • ou :
        • GRANT ALL PRIVILEGES ON *.* TO root@'localhost' IDENTIFIED BY 'mon_nouveau_mot_de_passe';
  • Redémarrer le service en désactivant le mode --skip-grant-tables :
    systemctl unset-environment MYSQLD_OPTS
    systemctl restart mariadb
    

    source : http://www.dsfc.net/logiciel-libre/mysql-logiciel-libre/perte-mot-de-passe-root-mysql-mariadb/

    Ancienne méthode

    Toutes les étapes sont éxécutées en tant que root.

    Réinitialiser le mot de passe root de MariaDB ou MySql serveur

    • Etape 1
    • Arréter le service MySql:

      service mysql stop
      

      ou

      service mysqld stop
      
    • Etape 2
    • Démarrer le serveur MySql sans aucun mot de passe:

      mysqld_safe --skip-grant-tables &
      
    • Etape 3
    • Se connecter à Mysql

      mysql -u root
      
    • Etape 4
    • Choisir la base de donnée mysql, mettre à jour le mot de passe root puis recharger les prévilèges:

      use mysql;
      update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
      flush privileges;
      quit
      
    • Etape 5
    • Redémarrer le serveur MySql:

      service mysql restart
      

      Ou

      service mysqld restart
      

    A ce stade il est de nouveau possible de se connecter sur le serveur MySql avec le nouveau mot de passe root.

    Actuce sous Debian et Ubuntu!

    Sous les distributions Debian et Ubuntu, il existe un compte d’administrateur de secour: debian-sys-maint.
    Le mot de passe associé à ce compte se trouve dans le fichier /etc/mysql/debian.cnf.

    source

Partager l'article :





fred

"Dire que l'on s'en fiche du droit à la vie privée sous prétexte qu'on a rien à cacher, c'est comme déclarer que l'on se fiche du droit à la liberté d'expression sous prétexte qu'on a rien à dire." Edward Snowden

11 commentaires

  1. Bonjour,
    pouvoir changer le mot de passe, c’est bien, mais quel est le nom d’utilisateur par défaut de Mariadb ?
    Le mot de passe m’a été demandé à l’instal, mais le nom d’utilisateur, je ne sais pas du tout, j’ai essayé avec mon nom tel qu’il apparait sur l’ordi, mais pas moyen …
    J’ai Ubuntu 14 04 sur un portable récent, de ce fait je ne peux pas utiliser Laurux
    Est ce que quelqu’un peut m’aider
    Merci d’avance
    Gilbert

  2. Le login par défaut est root, c’est même indiqué à l’étape 4 :
    [code lang= »shell »]
    update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User=’root’;
    [/code]

  3. Merci, je croyais que « root » était un terme générique qu’il fallait remplacer par le nom d’un utilisateur …
    Il me manque des bases …

  4. nom d’utlisateur n’apparaît pas dans le fichier sudoers. Cet événement sera signalé.

  5. Cela fait une semaine que je cherche car mysql à l’installation ne demande plus de mot de passe sur RPI3. Donc impossible pour moi de configurer après mysql pour mythtv.
    Vraiment un grand merci.
    P.S.1 : l’astuce pour Debian et Ubuntu n’est pas possible sur raspbian. Le fichier n’existe pas ;-)
    P.S.2 : le tuto de mysql ne fonctionne pas non plus car le fichier qu’on doit effecer n’existe pas : https://dev.mysql.com/doc/refman/8.0/en/resetting-permissions.html

  6. Cela ne fonctionne pas…

    Error: Can’t connect to local MySQL server through socket ‘/var/run/mysqld/mysqld.sock’ (2)

  7. Bonjour,
    Merci pour ce précieux tuto, il vient de me faire gagner une bonne journée de recherches

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.