IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

MySQL Discussion :

Définir mdp root my.cnf


Sujet :

MySQL

  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2013
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 125
    Points : 71
    Points
    71
    Par défaut Définir mdp root my.cnf
    Hello,

    J'ai une question bête je travaille sur ansible et je souhaite définir le mdp root par default dans le fichier my.cnf
    Je dois travailler sur la version 5.7 mais j'ai beau essayer ce que j'ai trouver sur le net rien ne fonctionne.

    voici les tentatives que j'ai pu faire sans succès.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
      1 # For advice on how to change settings please see
      2 # http://dev.mysql.com/doc/refman/5.7/en/server-configuration-defaults.html
      3 #[mysqld]
      4 #skip-grant-tables
      5 #user=root
      6 #password="mdp"
      7 #
      8 #
      9 [client]
     10 user="user"
     11 password="pass"
     12
     13 #
     14 # Remove leading # and set to the amount of RAM for the most important data
     15 # cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
     16 # innodb_buffer_pool_size = 128M
     17 #
     18 # Remove leading # to turn on a very important data integrity option: logging
     19 # changes to the binary log between backups.
     20 # log_bin
     21 #
     22 # Remove leading # to set options mainly useful for reporting servers.
     23 # The server defaults are faster for transactions and fast SELECTs.
     24 # Adjust sizes as needed, experiment to find the optimal values
     25 # join_buffer_size = 128M
     26 # sort_buffer_size = 2M
     27 # read_rnd_buffer_size = 2M
     28  datadir=/var/lib/mysql
     29 socket=/var/lib/mysql/mysql.sock
     30 # Disabling symbolic-links is recommended to prevent assorted security risks
     31 symbolic-links=0
     32
     33 log-error=/var/log/mysqld.log
     34 pid-file=/var/run/mysqld/mysqld.pid
    ~

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Job for mysqld.service failed because the control process exited with error code. See "systemctl status mysqld.service" and "journalctl -xe" for details.


    Merci pour votre aide.

  2. #2
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 055
    Points
    19 055
    Par défaut
    Salut czar1983.

    Le mot de passe que vous renseignez dans le fichier "my.cnf" (donc sous linux), est juste à titre indicatif.
    C'est une astuce pour éviter de le retaper à chaque fois quand vous vous connectez à MySql.

    Mais le vrai mot de passe, vous devez le renseigner dans le SGBDR MySql pour le compte "user", puisqu'il s'agit de ce compte là.

    Pour renseigner le mot de passe, faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    use mysql;
    
    set password for 'user'@'localhost' = password('pass');
    
    flush privileges;
    
    exit
    Cela nécessite au préalable que le compte existe déjà.
    si ce n'est pas le cas, alors vous devez le créer :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    -- ===================== --
    -- Privilège pour 'ROOT' --
    -- ===================== --
     
    DROP   USER  IF EXISTS                                     'root'@'127.0.0.1';
    CREATE USER                                                'root'@'127.0.0.1'  IDENTIFIED WITH mysql_native_password BY 'root';
    GRANT  ALL PRIVILEGES                 ON            *.* TO 'root'@'127.0.0.1'  WITH GRANT OPTION;
    -- SET    PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD('root');
     
    DROP   USER  IF EXISTS                                     'root'@'localhost';
    CREATE USER                                                'root'@'localhost'  IDENTIFIED WITH mysql_native_password BY 'root';
    GRANT  ALL PRIVILEGES                 ON            *.* TO 'root'@'localhost'  WITH GRANT OPTION;
    flush privileges;
     
    exit
    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2013
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 125
    Points : 71
    Points
    71
    Par défaut
    Bonjour,

    Merci beaucoup pour votre retour.

    Ce code doit être écrit dans un fichier qui dois ensuite être exécuter automatiquement lors du démarrage de mysql ? Si oui lequel svp ? my.cnf ?

    Merci

  4. #4
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 055
    Points
    19 055
    Par défaut
    Salut czar1983.

    Vous vous mettez dans la console MySql et vous tapez le code que je vous ai donné.
    Cela se fait une seule fois afin d'attribuer un nouveau mot de passe à votre compte utilisateur.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  5. #5
    Membre régulier
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2013
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 125
    Points : 71
    Points
    71
    Par défaut
    Bonjour Artemus24

    Merci pour votre retour, je cherche un moyen sans entrer dans la console mysql car je dois automatiser la création du compte root avec ansible.
    Il y a t'il un moyen de lancer cette commande via un fichier conf qui serait charger au lancement de mysql la première fois afin d'ajouter le compte automatiquement.
    J'ai plusieurs serveurs à faire donc voilà pourquoi je cherche à automatiser cette tâche.

    Merci beaucoup

  6. #6
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 055
    Points
    19 055
    Par défaut
    Salut czar1983.

    La création d'un compte dans MySql doit se faire manuellement, à cause du mot de passe qui ne doit pas être en clair.
    A ma connaissance, il n'existe pas de ".profile" qui permet de faire des traitements au démarrage de MySql.
    A vous de créer votre propre script sql et de le lancer manuellement.

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

  7. #7
    Membre régulier
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Février 2013
    Messages
    125
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Industrie

    Informations forums :
    Inscription : Février 2013
    Messages : 125
    Points : 71
    Points
    71
    Par défaut
    J'ai pas pensé au script, comme quoi même les solutions les plus simples on passe à coté parfois

    Passer par la commande mysql_secure_installation vous en pensez quoi ?

  8. #8
    Expert éminent sénior Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    6 378
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 6 378
    Points : 19 055
    Points
    19 055
    Par défaut
    Salut czar1983.

    Quand je change de version MySql, je le fais en plusieurs étapes.

    1) téléchargement de la dernière version (MySql 8.0.11) sous forme de fichier zip.

    2) je dézippe la dernière version et je copie le répertoire mysql dans WampServer sous le répertoire "f:/Wamp/bin/mysql/mysql8.0.11".

    3) je crée le répertoire "/data" qui n'existe pas.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    @echo off
     
    set PATH=.;F:\Wamp\bin\mysql\mysql8.0.11\bin;
     
    if exist F:\Wamp\bin\mysql\mysql8.0.11\data (rmdir /S /Q F:\Wamp\bin\mysql\mysql8.0.11\data)
     
    mysqld  --initialize-insecure  --log-error-verbosity=3  --log-error=f:/Wamp/logs/mysql_error.log
     
    pause
    exit
    C'est un batch windows car j'utilise WampServer.

    4) quand le répertoire "/data" a été recréé, j'utilise des scripts sql pour reconstituer mon environnement.
    Par exemple, les mots de passe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    -- =============================== --
    -- Changer le mot de passe de ROOT --
    -- =============================== --
     
    ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'root';
    ALTER USER 'root'@'127.0.0.1' IDENTIFIED WITH mysql_native_password BY 'root';
    ALTER USER 'root'@'::1'       IDENTIFIED WITH mysql_native_password BY 'root';
     
    flush privileges;
     
    exit
    Vous remarquez que j'utilise "mysql_native_password" qui est l'ancienne version de codification des mots de passe sous mysql.
    Je ne suis pas arrivé à faire fonctionner correctement le nouveau chiffrement des mots de passe.

    5) ensuite, j'installe tous les autres comptes que j'utilise dans MySql.

    6) puis j'installe toutes mes bases de données que j'ai au préalable récupérer en faisant un export soit sous phpmyadmin, soit par mysqldump.

    7) je fais un test en allant sous phpmyadmin, pour visualiser mes bases de données.

    Pourquoi j'utilise des scripts ?
    Pour éviter de le faire manuellement, ce qui est source d'erreur de ma part, mais surtout pour ne pas réinventer la même procédure à chaque fois.
    Cela me prend pour ainsi dire environ cinq minutes au maximum et je n'ai rien à fair, juste vérifier que tout ce passe bien.

    Citation Envoyé par czar1983
    Passer par la commande mysql_secure_installation vous en pensez quoi ?
    C'est pour les débutants !

    @+
    Si vous êtes de mon aide, vous pouvez cliquer sur .
    Mon site : http://www.jcz.fr

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 3
    Dernier message: 02/11/2014, 14h39
  2. [MySQL-5.1] Réinstall - mdp root perdu - unknown variable
    Par bacejude dans le forum Administration
    Réponses: 0
    Dernier message: 23/10/2013, 20h45
  3. Changer mdp root à distance depuis windows
    Par madgstik dans le forum Réseau
    Réponses: 3
    Dernier message: 04/12/2010, 00h06
  4. ecraser le mdp root
    Par nora2311 dans le forum RedHat / CentOS / Fedora
    Réponses: 3
    Dernier message: 17/12/2008, 21h06
  5. [Système] accès root sécurisé sans mdp
    Par onet dans le forum Langage
    Réponses: 4
    Dernier message: 30/03/2006, 21h18

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo