$ ./mysqladmin -u root -p ' caviardé '
Entrez le mot de passe:
mysqladmin: échec de la connexion au serveur à 'localhost':
'Accès refusé pour l'utilisateur' root '@' localhost '(en utilisant le mot de passe: OUI)'
Comment puis-je réparer cela?
mysql
sql
database
database-connection
Harsh Trivedi
la source
la source
~/.my.cnf
fichier existe .-p
option seule et mysql vous demandera un mot de passe.Réponses:
/etc/my.cnf
ou/etc/mysql/my.cnf
, selon votre distribution.skip-grant-tables
sous[mysqld]
mysql -u root -p
mysql> flush privileges;
ALTER USER 'root'@'localhost' IDENTIFIED BY 'NewPassword';
mysql -u root -p
la source
You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'USER 'root'@'localhost' IDENTIFIED BY 'NewPassword'' at line 1
set PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
Je l'ai fait après l'étape 5. Voici à quoi ressemblait la sortie de mon invite de commande:MariaDB [(none)]> MariaDB [(none)]> set PASSWORD FOR 'root'@'localhost' = PASSWORD('root'); Query OK, 0 rows affected (0.00 sec)
sudo systemctl restart mariadb
Toutes les solutions que j'ai trouvées étaient beaucoup plus complexes que nécessaire et aucune n'a fonctionné pour moi. Voici la solution qui a résolu mon problème. Pas besoin de redémarrer mysqld ou de le démarrer avec des privilèges spéciaux.
Avec une seule requête, nous changeons l' auth_plugin en mysql_native_password et définissons le mot de passe root sur root (n'hésitez pas à le changer dans la requête)
Vous devriez maintenant pouvoir vous connecter avec root. Plus d'informations peuvent être trouvées dans la documentation mysql
(quittez la console mysql avec Ctrl + D ou en tapant exit )
la source
J'ai essayé de nombreuses étapes pour corriger ce problème. Il y a tellement de sources de solutions possibles à ce problème qu'il est difficile de filtrer le sens du non-sens. J'ai finalement trouvé une bonne solution ici :
Étape 1: identifier la version de la base de données
Vous verrez une sortie comme celle-ci avec MySQL:
Ou une sortie comme celle-ci pour MariaDB:
Notez quelle base de données et quelle version vous utilisez, car vous les utiliserez plus tard. Ensuite, vous devez arrêter la base de données pour pouvoir y accéder manuellement.
Étape 2: arrêt du serveur de base de données
Pour modifier le mot de passe root, vous devez au préalable arrêter le serveur de base de données.
Vous pouvez le faire pour MySQL avec:
Et pour MariaDB avec:
Étape 3: redémarrage du serveur de base de données sans vérification des autorisations
Si vous exécutez MySQL et MariaDB sans charger d'informations sur les privilèges utilisateur, cela vous permettra d'accéder à la ligne de commande de la base de données avec les privilèges root sans fournir de mot de passe. Cela vous permettra d'accéder à la base de données sans le savoir.
Pour ce faire, vous devez empêcher la base de données de charger les tables d'octroi, qui stockent les informations de privilège utilisateur. Étant donné qu'il s'agit d'un risque pour la sécurité, vous devez également ignorer la mise en réseau pour empêcher d'autres clients de se connecter.
Démarrez la base de données sans charger les tables de droits ni activer la mise en réseau:
L'esperluette à la fin de cette commande fera exécuter ce processus en arrière-plan afin que vous puissiez continuer à utiliser votre terminal.
Vous pouvez maintenant vous connecter à la base de données en tant qu'utilisateur root, qui ne devrait pas demander de mot de passe.
Vous verrez immédiatement une invite de shell de base de données à la place.
Invite MySQL
Invite MariaDB
Maintenant que vous disposez d'un accès root, vous pouvez modifier le mot de passe root.
Étape 4: modification du mot de passe racine
Maintenant, nous pouvons réellement changer le mot de passe root.
Pour MySQL 5.7.6 et plus récent ainsi que MariaDB 10.1.20 et plus récent , utilisez la commande suivante:
Pour MySQL 5.7.5 et versions antérieures ainsi que MariaDB 10.1.20 et versions antérieures , utilisez:
Assurez-vous de le remplacer
new_password
par le nouveau mot de passe de votre choix.Remarque: Si la
ALTER USER
commande ne fonctionne pas, cela indique généralement un problème plus important. Cependant, vous pouvez essayerUPDATE ... SET
de réinitialiser le mot de passe root à la place.[IMPORTANT] Ceci est la ligne spécifique qui a résolu mon problème particulier:
N'oubliez pas de recharger les tables de droits après cela.
Dans les deux cas, vous devriez voir la confirmation que la commande a été exécutée avec succès.
Le mot de passe a été modifié, vous pouvez donc arrêter l'instance manuelle du serveur de base de données et le redémarrer comme il l'était auparavant.
Étape 5: redémarrer le serveur de base de données normalement
Le tutoriel va dans quelques étapes supplémentaires pour redémarrer la base de données, mais la seule pièce que j'ai utilisée était la suivante:
Pour MySQL, utilisez: $ sudo systemctl start mysql
Pour MariaDB, utilisez:
Vous pouvez maintenant confirmer que le nouveau mot de passe a été appliqué correctement en exécutant:
La commande doit maintenant demander le nouveau mot de passe attribué. Entrez-le et vous devriez avoir accès à l'invite de base de données comme prévu.
Conclusion
Vous avez maintenant un accès administratif au serveur MySQL ou MariaDB restauré. Assurez-vous que le nouveau mot de passe root que vous choisissez est solide et sécurisé et conservez-le en lieu sûr.
la source
mysql> UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root' AND Host = 'localhost';
m'a sauvé la vie!Aucune des réponses ci-dessus ne m'a aidé à résoudre ce problème, voici donc la solution que j'ai trouvée .
La partie pertinente:
la source
Pour les utilisateurs d'Ubuntu / Debian
( peut fonctionner sur d'autres distributions, en particulier celles basées sur Debian)
Exécutez ce qui suit pour vous connecter en tant que
root
(sans mot de passe)Si vous ne souhaitez pas ajouter
--defaults-file
chaque fois que vous souhaitez vous connecter en tant queroot
, vous pouvez copier/etc/mysql/debian.cnf
dans votre répertoire personnel:puis:
la source
Après avoir essayé toutes les autres réponses, c'est ce qui a finalement fonctionné pour moi
J'ai trouvé la réponse dans cet article: https://medium.com/@chiragpatel_52497/solved-error-access-denied-for-user-root-localhost-of-mysql-programming-school-6e3611838d06
la source
skip-grant-table
(my.conf ou inmysql
command) n'ont pas fonctionné. J'ai pu entrer en utilisant un compte de service ( askubuntu.com/a/120769/169836 ) mais celaUPDATE mysql.user SET Password=PASSWORD('') WHERE User='root';
n'a pas fonctionné. Ce n'est que lors de l'utilisation de la partie plug-in que les choses ont fonctionné. Merci ~Pour les nouveaux utilisateurs de Linux, cela pourrait être une tâche intimidante. Permettez-moi de mettre à jour cela avec mysql 8 (la dernière version disponible actuellement est la 8.0.12 comme le 12-Sep-2018)
C'est tout.
la source
Dans votre plan de travail MySQL, vous pouvez aller dans la barre latérale gauche, sous Gestion, sélectionnez "Utilisateurs et privilèges", cliquez sur root sous Comptes d'utilisateurs, dans la section de droite, cliquez sur l'onglet "Limites de compte" pour augmenter le nombre maximal de requêtes, de mises à jour, etc., et puis cliquez sur l'onglet "Rôles administratifs" et cochez les cases pour donner l'accès au compte. J'espère que cela pourra aider!
la source
J'ai fait cela pour définir mon mot de passe root dans la configuration initiale de MySQL dans OSx. Ouvrez un terminal.
Fermez le terminal et ouvrez un nouveau terminal. Et les suivis sont effectués sous Linux, pour définir le mot de passe root.
(sudo mysqld_safe --skip-grant-tables: Cela n'a pas fonctionné pour moi la première fois. Mais le deuxième essai a été un succès.)
Connectez-vous ensuite à MySQL
Maintenant changez le mot de passe:
Redémarrez MySQL:
la source
Dans mon cas sous Debian 10, l'erreur
a été résolu par (GOOD WAY)
MAUVAISE VOIE:
la source
Ugh- rien n'a fonctionné pour moi! J'ai une machine CentOS 7.4 exécutant mariadb 5.5.64.
Ce que je devais faire était ceci, juste après l'installation de mariadb de miam;
Le
mysql_secure_installation
vous guidera à travers un certain nombre d'étapes, y compris "Définir le mot de passe root? [O / n]". Dites simplement "y" et donnez-lui un mot de passe. Répondez aux autres questions comme vous le souhaitez.Ensuite, vous pouvez entrer avec votre mot de passe, en utilisant
Il survivra
La clé
Ensuite, j'ai vérifié le
/bin/mysql_secure_installation
code source pour découvrir comment il était magiquement capable de changer le mot de passe root et aucune des autres réponses ici ne le pouvait. Le bit d'importation est:... Ça dit
SET Password=...
et nonSET authentication_string = PASSWORD...
. Ainsi, la procédure appropriée pour cette version (5.5.64) est:Depuis l'invite mysql>:
tuer le mysqld_safe en cours d'exécution. redémarrez mariadb. Connectez - vous en tant que root:
mysql -u -p
. Utilisez votre nouveau mot de passe.Si vous le souhaitez, vous pouvez définir tous les mots de passe root à la fois. Je pense que c'est sage:
Cela effectuera des mises à jour sur tous les mots de passe root: par exemple, pour "localhost", "127.0.0.1" et ":: 1"
À l'avenir, quand je vais sur RHEL8 ou quoi d'autre, j'essaierai de me souvenir de vérifier l'installation / bin / mysql_secure_installation et de voir comment les gars l'ont fait, qui ont configuré mariadb pour ce système d'exploitation.
la source
Si vous êtes comme moi et que toutes les suggestions ci-dessus ont échoué, désinstallez toutes les versions de mysql sur votre machine, recherchez tous les fichiers mysql restants à l'aide de cette commande
sudo find / -name "mysql"
etrm -rf
chaque fichier ou répertoire avec le nom mysql attaché (vous devez ignorer les fichiers liés aux bibliothèques de langages de programmation). Installez maintenant une nouvelle version de MySQL et profitez-en. NB: Vous perdrez toutes vos données, alors pesez d'abord vos options.la source
Cela peut arriver si vous n'avez pas assez de privilèges. Tapez
su
, entrez le mot de passe root et réessayez.la source
D'accord, je sais que c'est un vieux fil de discussion, mais si vous avez atteint cette page via Google comme je l'ai fait et qu'aucune des solutions ci-dessus n'a fonctionné, ce qui s'est avéré être l'erreur était à 100% une folie de ma part. Je ne me suis pas connecté au serveur. Une fois connecté, tout s'est bien passé.
Au cas où cela aiderait à connaître ma configuration, j'utilise Sequel Pro et j'essaie de me connecter avec Node en utilisant le package NPM, mysql. Je ne pensais pas que je devais réellement me connecter (à part exécuter Sequel Pro) parce que je le faisais déjà depuis mon application.
la source
Solution: abandonnez!
Écoutez-moi, j'ai passé environ deux jours entiers à essayer de faire fonctionner MySQL en vain, toujours coincé avec des erreurs de permission, dont aucune n'a été corrigée par les réponses dans ce fil. C'est arrivé au point que je pensais que si je continuais, je deviendrais fou.
Par patience pour le faire fonctionner, j'ai envoyé la commande pour installer SQLite, en utilisant seulement 450 Ko, et cela a fonctionné parfaitement dès le départ.
Si vous n'avez pas la patience d'un saint, optez pour SQLite et économisez beaucoup de temps, d'efforts, de douleur et d'espace de stockage ..!
la source