J'ai accidentellement supprimé certains des privilèges de mon utilisateur racine MySQL, y compris la possibilité de modifier des tables. Existe-t-il un moyen de restaurer cet utilisateur à son état d'origine (avec tous les privilèges)?
UPDATE mysql.user SET Grant_priv = 'Y', Super_priv = 'Y' WHERE User = 'root';
# MySQL returned an empty result set (i.e. zero rows).
FLUSH PRIVILEGES ;
# MySQL returned an empty result set (i.e. zero rows).
#1045 - Access denied for user 'root'@'localhost' (using password: YES)
GRANT ALL ON *.* TO 'root'@'localhost'
mysql
privileges
mysql-error-1045
Steven
la source
la source
Réponses:
Si
GRANT ALL
cela ne fonctionne pas, essayez:mysqld
et redémarrez-le avec l'--skip-grant-tables
option.mysqld
serveur avec juste:mysql
(c.-à-d. Aucune-p
option et le nom d'utilisateur peut ne pas être requis).Exécutez les commandes suivantes dans le client mysql:
UPDATE mysql.user SET Grant_priv='Y', Super_priv='Y' WHERE User='root';
FLUSH PRIVILEGES;
Après cela, vous devriez pouvoir exécuter
GRANT ALL ON *.* TO 'root'@'localhost';
et faire fonctionner.la source
skip-grant-tables
à la[mysqld]
section de votre fichier de configuration mysql pour accéder à mysql sur la ligne de commande sans mot de passe.Si vous avez supprimé votre
root
utilisateur par erreur, vous pouvez faire une chose:mysqld_safe --skip-grant-tables &
mysql -u root -p
et appuyez sur Entrée.use mysql;
Puis exécutez cette requête:
puis redémarrez le mysqld
EDIT: 6 octobre 2018
Au cas où quelqu'un d'autre aurait besoin de cette réponse, je l'ai essayé aujourd'hui en utilisant innodb_version 5.6.36-82.0 et 10.1.24-MariaDB et cela fonctionne si vous ENLEVEZ LES BACKTICKS (pas de guillemets simples non plus, supprimez-les simplement):
la source
mysqld.exe
dans lebin
dossier, nonmysqld_safe.exe
. Qu'entendez-vous par "mysqld_safe"?mysqld_safe
, lancez simplement le binaire mysqld normal:mysqld.exe --skip-grant-tables
ERROR 1054 (42S22): Unknown column 'Password' in 'field list'
je supprime également les privilèges de racine et de base de données n'apparaissant pas dans la console mysql quand j'étais un utilisateur root, donc changé d'utilisateur par
mysql>mysql -u 'userName' -p;
et mot de passe;après cette commande, tout afficher la base de données à la racine.
Merci
la source
J'avais refusé les privilèges d'insertion et de rechargement à root. Ainsi, après la mise à jour des autorisations, FLUSH PRIVILEGES ne fonctionnait pas (faute de privilège de rechargement). J'ai donc utilisé l'utilisateur debian-sys-maint sur Ubuntu 16.04 pour restaurer les privilèges user.root. Vous pouvez trouver le mot de passe de user.debian-sys-maint dans ce fichier
la source
Connectez-vous simplement à partir de la racine en utilisant le mot de passe respectif le cas échéant et exécutez simplement la commande ci-dessus quel que soit l'utilisateur.
Par exemple:
la source
Insérez simplement ou mettez
mysql.user
à jour avec la valeur desY
privilèges de chaque colonne.la source
Si vous utilisez WAMP sur votre ordinateur local (mysql version 5.7.14) Étape 1: ouvrez le fichier my.ini Étape 2: annulez le commentaire de cette ligne 'skip-grant-tables' en supprimant le point-virgule étape 3: redémarrez mysql serveur étape 4: lancez la console mySQL étape 5:
Étape 6: Problème résolu !!!!
la source