Là vous allez encore une fois. Vous venez de lancer une machine virtuelle pour faire des tests, d’installer MySQL à l’aide de votre gestionnaire de paquets préféré, de démarrer le serveur et d’échouer à vous connecter:

$ mysql --user=root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

Depuis la version 5.,7, MySQL est sécurisé par défaut:

  • un mot de passe racine aléatoire est généré lors de l’installation; vous devez lire ce mot de passe dans le journal du serveur
  • vous devez changer ce mot de passe la première fois que vous vous connectez
  • vous ne pouvez pas utiliser un mot de passe vide à cause Mais si vous installez simplement MySQL sur une machine virtuelle locale pour vos propres tests, cela peut devenir vraiment ennuyeux.

    Pour supprimer le mot de passe racine MySQL, exécutez simplement le script suivant juste après l’installation et le démarrage du serveur MySQL:

    Sur MySQL 5.,7:

    On MySQL 8.0:

    Note: you must execute this script as root.,

    Le script effectue les actions suivantes:

    • lit le mot de passe temporaire à partir du fichier journal
    • change ce mot de passe en un autre mot de passe temporaire qui passe le validate_password vérifie
    • désinstalle le validate_password>

    Vous pouvez maintenant vous connecter sans mot de passe:

    Veillez à ce que votre installation MySQL ne soit pas sécurisée, vous ne devriez pas l’utiliser pour quelque chose de grave!,

    Une alternative sécurisée

    Si vous utilisez principalement MySQL à partir de la ligne de commande, vous pouvez garder le compteroot protégé par un mot de passe, tout en évitant l’inconvénient d’avoir à fournir le mot de passe sur la ligne de commande.

    il suffit de créer un ~/.my.cnf fichier:


    user = root
    password = xxx

    Vous pouvez maintenant simplement de type mysql, et le client MySQL va automatiquement se connecter avec ces identifiants.