Mysql
 sql >> Base de données >  >> RDS >> Mysql

Impossible d'accéder à l'utilisateur racine MySql, même après avoir défini le mot de passe via le mode sans échec dans le terminal Linux

Allez comme avant à l'étape 2, c'est-à-dire redémarrez le démon mysql en mode sans échec.

Lancez la commande

select user,host,password from mysql.user where user='root';

couper et coller la sortie dans un éditeur de texte pour comparaison (des valeurs de colonne de mot de passe haché) avant et après ce qui suit.

Pour chaque ligne, notez le host colonne. Dans l'exemple suivant, je suppose que j'ai deux lignes. Une ligne contient % en tant qu'hôte, le suivant a localhost

Pour chaque ligne qui avait un host variation, vous émettrez une commande. Ainsi, dans mon exemple ci-dessus, j'émettrais 2 commandes au total, telles que :

SET PASSWORD FOR 'root'@'%' = PASSWORD('MyNewPassword');
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPassword');

courir

select user,host,password from mysql.user where user='root';

couper et coller cela dans l'éditeur de texte. Notez la modification des hachages de mot de passe.

Arrêtez le démon du mode sans échec et redémarrez normalement.

Essayez de vous connecter en tant que root avec MyNewPassword

Voici quelques liens. Celui pour SET PASSWORD Syntax , et une étape souvent suivante pour la GRANT Syntax .

Pour la portée étroite de cette question, c'est-à-dire pour se connecter, les subventions ne seraient pas nécessaires. Mais sans les subventions appropriées aux bases de données, on serait en bac à sable, incapable de faire grand-chose, à part de simples commandes comme select now();

Je ne dis pas que votre utilisateur root n'a pas de privilèges une fois le mot de passe modifié. Les subventions sont nécessaires pour que les utilisateurs normaux en soient sûrs.