Avant de bousiller quelque chose, lorsque je me connecte avec $ mysql -u root -p
, et montre des bases de données:
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| game_data |
| test |
+--------------------+
Ensuite, j'ai essayé de créer un nouvel utilisateur et j'ai remarqué que quelque chose n'allait pas avec PRIVILEGES.
J'ai donc supprimé les nouveaux utilisateurs et j'imagine que j'ai supprimé accidentellement les droits "root" et "admin".
Ensuite, j'essaie de créer à nouveau 'root', mais j'obtiens une erreur d'accès refusé lors de l'octroi de tous les privilèges.
mysql> CREATE USER 'root'@'localhost' IDENTIFIED BY 'password';
mysql> grant all privileges on *.* to 'root'@'localhost' identified by 'password' with grant option;
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)
Si je me connecte à nouveau à MySQL en utilisant $ mysql -u root -p
et affiche les bases de données,
+--------------------+
| Database |
+--------------------+
| information_schema |
+--------------------+
Toutes les autres bases de données ont disparu.
Comment réparer MySQL maintenant?
Je ne peux pas trouver la base de données 'mysql', je ne peux pas créer de base de données, créer un utilisateur, tout ce que j'essaie de faire obtiendra une erreur.
ERROR 1045 (28000): Accès refusé pour l'utilisateur 'root' @ 'localhost' (en utilisant le mot de passe: YES).
Devrais-je réinstaller MySQL avec MacPorts? Si je réinstalle, je vais perdre la base de données game_data
, non?
la source
-p
et le mot de passe. Je sais que c'est idiot mais pourrait aider quelqu'un.Réponses:
Suivez les étapes ci-dessous.
Démarrez l'instance du serveur MySQL ou le démon avec l'
--skip-grant-tables
option (paramètre de sécurité).Exécutez ces instructions.
Si vous rencontrez le champ inconnu Erreur de mot de passe ci-dessus, utilisez:
Enfin, redémarrez l'instance / démon sans l'
--skip-grant-tables
option.Vous devriez maintenant pouvoir vous connecter avec votre nouveau mot de passe.
Entrer le mot de passe:
my_password
Correction de l'erreur «Impossible de verrouiller ibdata1» dans MySQL
la source
Aucune de ces réponses ne m'a été utile. J'ai trouvé que je devais effacer la méthode du plugin. En 5.6, je pourrais faire:
En 5.7, j'ai découvert qu'il me fallait:
Selon la documentation, avec le plugin défini sur une chaîne vide, il aurait dû passer par défaut à mysql_native_password, mais pourrait être confus par un hash de mot de passe vide. Pour plus de nuance, vous pouvez lire la documentation ici: https://dev.mysql.com/doc/refman/5.7/en/native-authentication-plugin.html
la source
set plugin='mysql_native_password'
l'a fait pour moi, merci! Pour référence: dev.mysql.com/doc/refman/5.7/en/…Assurez-vous également que l'enregistrement nécessaire dans la table
user
a unplugin
champ vide (il peut y en avoir, par exemple"unix_socket"
).Depuis la version 5.5.7, mysql supporte divers plug-ins d'authentification: https://dev.mysql.com/doc/refman/5.6/fr/authentication-plugins.html
Donc, si vous avez un
plugin
champ non vide , le mot de passe sera ignoré et il y aura un avertissement dans le journal des erreurs mysql (pour moi c'est/var/log/mysql/error.log
):[Warning] 'user' entry 'root@localhost' has both a password and an authentication plugin specified. The password will be ignored.
la source
plugin
demysql_native_password
.Vous pouvez voir quelque chose comme ça;
Sécuriser le déploiement du serveur MySQL.
Si vous voyez ça dit
Regardez les 10 dernières minutes de cette vidéo , elle vous apprend à le faire.
la source
Essayez le:
la source
--no-defaults --force
rôle des commutateurs? Sinon, il s'agit d'un doublon VLQ de la réponse ci-dessus acceptée.ERROR 1054 (42S22): Unknown column 'Password' in 'field list'
Dans mon cas, la base de données était corrompue. Après le redémarrage de mysql sur Debian, le login root était sans mot de passe. La solution était la suivante:
D'autres réponses ont également mentionné le plug-in native_password, mais voici comment vous pouvez le faire sans tricherie compliquée. C'est comme ça que ça doit être changé.
la source