Formation PUB420 : Système domotique DIY, 2020 Jeedom

5.36 Réinitialiser le mot de passe MySQL de Jeedom


Je vous propose deux manipulations à effecture sur le serveur de base de données MySQL installé sur votre boîte Jeedom :

Modification du mot de passe

Si vous souhaitez modifier le mot de passe de l'usager jeedom sous MySQL alors que vous connaissez son mot de passe actuel, suivez ces étapes.

  • Connectez-vous au Raspberry Pi soit via SSH ou encore en y branchant un clavier et un écran.
  • Lancez la ligne de commande MySQL puis entrez le mot de passe actuel lorsque demandé.
    Terminal

    mysql -u jeedom -p

  • L'usager jeedom ne détient pas les droits requis pour utiliser les commandes ALTER USER ni pour éditer directement la table USERS.

    Cependant, il peut modifier son propre mot de passe à l'aide de la commande SET PASSWORD.

    Évidemment, vous devez changer mot-de-passe-en-clair pour le mot de passe désiré.

    MySQL

    SET PASSWORD = PASSWORD('mot-de-passe-en-clair');

  • Sortez de la ligne de commande MySQL.
    MySQL

    exit

  • Vous devez maintenant dire à Jeedom quel est le nouveau mot de passe.

Réinitialisation du mot de passe

Avant de tenter une réinitialisation du mot de passe pour accéder à la base de données MySQL de Jeedom, sachez qu'il est possible de retrouver ce mot de passe directement dans la console d'administration de Jeedom.

Si vous devez tout de même réinitialiser le mot de passe, voici comment y parvenir.

  • Connectez-vous au Raspberry Pi soit via SSH ou encore en y branchant un clavier et un écran.
  • Prenez une copie de sécurité du fichier de configuration de MySQL.
    Terminal

    sudo cp /etc/mysql/my.cnf /etc/mysql/my-original.cnf

  • Éditez le fichier de configuration de MySQL.
    Terminal

    sudo nano /etc/mysql/my.cnf

  • Repérez la section [mysqld] et ajoutez-y l'instruction suivante. Si la section est inexistante, créez-la simplement.
    Fichier my.cnf

    [mysqld]
    skip-grant-tables

    Attention : ceci est dangereux et il faudra retirer la configuration skip-grant-tables dès que possible.
  • Redémarrez MySQL.
    Terminal

    sudo service mysql restart

  • Vous pouvez maintenant accéder à MySQL avec l'usager root sans mot de passe.
    Terminal

    mysql -u root

  • Entrez cette commande pour réinitialiser le mot de passe de l'usager jeedom pour ce qui vous plaît. Évidemment, vous devez changer mot-de-passe-en-clair pour le mot de passe désiré.

    Notez qu'il n'est pas possible d'utiliser la commande ALTER USER jeedom@localhost IDENTIFIED BY 'mot-de-passe-en-clair'; lorsque la configuration skip-grant-tables est activée.

    MySQL

    USE mysql;
    UPDATE user SET password=PASSWORD('mot-de-passe-en-clair') WHERE user='jeedom';

  • Sortez de la ligne de commande MySQL.
    MySQL

    exit

  • Vous pouvez désormais accéder à MySQL avec l'usager jeedom en utilisant ce mot de passe. Entrez cette commande puis entrez le mot de passe lorsque MySQL vous le demandera.
    Terminal

    mysql -u jeedom -p

  • Une fois que vous avez constaté que le mot de passe est fonctionnel, ressortez de la ligne de commande MySQL.
    MySQL

    exit

  • Important : afin de ne pas ouvrir un trou de sécurité, éditez à nouveau le fichier de configuration de MySQL afin de retirer la ligne qui permet de se connecter avec root sans mot de passe.
    Terminal

    sudo nano /etc/mysql/my.cnf

  • Puis redémarrrez une autre fois le service MySQL.
    Terminal

    sudo service mysql restart

  • Vous devez maintenant dire à Jeedom quel est le nouveau mot de passe.

Dire à Jeedom quel est le nouveau mot de passe

À ce stade, si vous tentez d'accéder à l'interface d'administration de Jeedom, vous obtiendrez le message « SQLSTATE[HY000] [1045] Access denied for user 'jeedom'@'localhost' (using password: YES) ». Il faut donc effectuer une manipulation supplémentaire pour que Jeedom utilise le nouveau mot de passe.

  • Prenez une copie de sécurité du fichier que vous devrez modifier.
    Terminal

    sudo cp /var/www/html/core/config/common.config.php /var/www/html/core/config/common.config-original.php

  • Éditez le fichier de configuration common.config.php.
    Terminal

    sudo nano /var/www/html/core/config/common.config.php

  • Entrez le nouveau mot de passe à la ligne password.
    Fichier /var/www/html/core/config/common.config.php

    <?php

    /* This file is part of Jeedom.
    *
    * Jeedom is free software: you can redistribute it and/or modify
    * it under the terms of the GNU General Public License as published by
    * the Free Software Foundation, either version 3 of the License, or
    * (at your option) any later version.
    *
    * Jeedom is distributed in the hope that it will be useful,
    * but WITHOUT ANY WARRANTY; without even the implied warranty of
    * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
    * GNU General Public License for more details.
    *
    * You should have received a copy of the GNU General Public License
    * along with Jeedom. If not, see <http://www.gnu.org/licenses/>.
    */

    /* * ********************* Debug **************** */
    define('DEBUG', 0);

    /* * *********************** MySQL & Memcached ******************* */
    global $CONFIG;
    $CONFIG = array(
       //MySQL parametres
       'db' => array(
          'host' => 'localhost',
          'port' => '3306',
          'dbname' => 'jeedom',
          'username' => 'jeedom',
          'password' => 'mot-de-passe-en-clair',
       ),
    );

Et voilà! Le mot de passe MySQL de l'usager jeedom est maintenant modifié et l'interface d'administration de Jeedom peut maintenant l'utiliser pour s'y connecter.

▼Publicité

Veuillez noter que le contenu de cette fiche vous est partagé à titre gracieux, au meilleur de mes connaissances et sans aucune garantie.
Merci de partager !
Soumettre