J'ai accidentellement supprimé l'utilisateur root
sur ma configuration de développement local de MAMP/MySQL fonctionnant sous OS X. Aucun autre utilisateur n'a été créé pour revenir dans MySQL.
C'est un cauchemar doux qui ne semble rien faire sans root
.
Trouvé ceci: http://hack2live.blogspot.com/2009/04/restore-repair-reset-mysql-root.html qui semble être exactement ce dont j'ai besoin.
Je ne pense pas non plus qu'une réinstallation de MAMP fera l'affaire, car beaucoup de mes recherches superficielles ont donné des gens qui avaient essayé sans succès.
Quelqu'un connaît-il un moyen convivial OSX pour recréer root
@ localhost
dans MySQL de MAMP? Je ne sais simplement pas où MySQL vit dans MAMP ou comment exécuter les commandes correctes dans le terminal pour essayer de le réparer.
Mise à jour
J'ai essayé plusieurs options ci-dessous pour restaurer la racine en vain et j'ai décidé de restaurer une sauvegarde de l'ensemble de l'application MAMP. J'ai donc récupéré root, je peux ouvrir phpmyadmin, etc.
J'ai un moyen rapide et sale
Obtenez quelqu'un avec des droits SysAdmin et procédez comme suit:
Ajoutez 'skip-grant-tables' à my.cnf dans la section [mysqld]
redémarrer mysql
tapez mysql sans mot de passe et appuyez sur Entrée
Lance ça:
DELETE FROM mysql.user
WHERE user = 'root'
AND Host = 'localhost';
INSERT INTO mysql.user
SET user = 'root',
Host = 'localhost',
password = Password('whatevernewpassword'),
Select_priv = 'y',
Insert_priv = 'y',
Update_priv = 'y',
Delete_priv = 'y',
Create_priv = 'y',
Drop_priv = 'y',
Reload_priv = 'y',
Shutdown_priv = 'y',
Process_priv = 'y',
File_priv = 'y',
Grant_priv = 'y',
References_priv = 'y',
Index_priv = 'y',
Alter_priv = 'y',
Show_db_priv = 'y',
Super_priv = 'y',
Create_tmp_table_priv = 'y',
Lock_tables_priv = 'y',
Execute_priv = 'y',
Repl_slave_priv = 'y',
Repl_client_priv = 'y',
Create_view_priv = 'y',
Show_view_priv = 'y',
Create_routine_priv = 'y',
Alter_routine_priv = 'y',
Create_user_priv = 'y',
Event_priv = 'y',
Trigger_priv = 'y',
Create_tablespace_priv = 'y';
quitter mysql
supprimer "skip-grant-tables" de my.cnf sous la section [mysqld]
redémarrer mysql
Ça devrait être tout!
La version traduite de http://hack2live.blogspot.com/2009/04/restore-repair-reset-mysql-root.html - pour OS X.
Ouvrez TextEdit.app et sélectionnez dans Format -> "Faire du texte brut".
Coupez et collez ce qui suit dans TextEdit et enregistrez-le dans votre dossier personnel [~ # ~] [~ # ~] avec le nom restore_root_privileges.sql
update mysql.user set Super_priv='y' where user='root';
update mysql.user set Select_priv='y' where user='root';
update mysql.user set Insert_priv='y' where user='root';
update mysql.user set Update_priv='y' where user='root';
update mysql.user set Delete_priv='y' where user='root';
update mysql.user set Create_priv='y' where user='root';
update mysql.user set Drop_priv='y' where user='root';
update mysql.user set Reload_priv='y' where user='root';
update mysql.user set Shutdown_priv='y' where user='root';
update mysql.user set Process_priv='y' where user='root';
update mysql.user set File_priv='y' where user='root';
update mysql.user set Grant_priv='y' where user='root';
update mysql.user set References_priv='y' where user='root';
update mysql.user set Index_priv='y' where user='root';
update mysql.user set Alter_priv='y' where user='root';
update mysql.user set Show_db_priv='y' where user='root';
update mysql.user set Super_priv='y' where user='root';
update mysql.user set Create_tmp_table_priv='y' where user='root';
update mysql.user set Lock_tables_priv='y' where user='root';
update mysql.user set Execute_priv='y' where user='root';
update mysql.user set Repl_slave_priv='y' where user='root';
update mysql.user set Repl_client_priv='y' where user='root';
update mysql.user set Create_view_priv='y' where user='root';
update mysql.user set Show_view_priv='y' where user='root';
update mysql.user set Create_routine_priv='y' where user='root';
update mysql.user set Alter_routine_priv='y' where user='root';
update mysql.user set Create_user_priv='y' where user='root';
Enregistrez et quittez TextEdit.app.
Arrêtez votre serveur mysqld. La procédure à suivre dépend de l'installation que vous avez utilisée pour MySQL. Vous avez probablement un panneau de préférences dans vos préférences système. Sinon, vous devez consulter la documentation de votre installation MySQL.
Ouvrez Terminal.app (Applications/Utilitaires) Saisissez les commandes suivantes:
Sudo mysqld --skip-grant-tables & #start your MySQL server without access control
mysql -vv < ~/restore_root_privileges.sql
Sudo mysqladmin -p shutdown
Démarrez votre serveur MySQL comme d'habitude, par ex. de PreferencePanes.
Dans Terminal.app: entrez les informations suivantes:
mysql -u root -p
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost' WITH GRANT OPTION;
mysql> quit;
C'est tout. Sans aucune garantie. Vous pouvez perdre toutes vos données si vous faites quelque chose de mal. Sauvegardez d'abord vos fichiers mysql.
Si vous avez quelque chose comme:
-bash: mysql: command not found
cela signifie que votre installation est incorrecte et que vous devriez trouver où sont vos binaires mysql, et devez entrer le répertoire dans votre variable PATH.
Je viens de recevoir le même - problème. J'utilise Xammp sur Windows 7. J'ai accidentellement supprimé un utilisateur root dans phpmyadmin.
Il semble que j'ai été en mesure de résoudre le problème de manière simple comme ceci:
Arrêtez Apache et mysql dans le contrôle xammp
Allez dans .../xammp/mysql
Vous verrez le fichier "resetroot". Exécutez ce fichier
Une fois cette application terminée, redémarrez votre mysql et Apache
Allez sur phpmyadmin et vous verrez l'utilisateur root restauré
Vous pouvez maintenant accéder à nouveau à toutes vos bases de données
en utilisant mamp. J'ai fait l'erreur apparemment courante de supprimer l'utilisateur root lors de la création d'un autre utilisateur, j'ai été exclu!
j'ai donc trouvé ce post et essayé de suivre les instructions mais ...
J'obtenais ces erreurs: -bash: mysql: commande introuvable en essayant d'exécuter la commande mysql et plus tard, j'obtenais cette erreur DELETE commande refusée à l'utilisateur '' @ 'localhost' pour la table 'user' lors de la vérification de la configuration correcte privilèges à l'utilisateur root et faire quoi que ce soit avec cet utilisateur une fois mysql dans Shell.
donc avant de pouvoir utiliser les commandes eric et rolando postées (merci les gars pour ça) c'est ce que j'ai fait
Je dois démarrer mysqld correctement, j'ai donc dû faire ce qui suit
ps aux | grep mysql
kill -9 [pid]
/ Applications/MAMP/Bibliothèque/bin/mysqld --skip-grant-tables --skip-networking &
J'ai essayé avec mon fichier.cnf mais je n'ai pas pu le faire fonctionner.
/ Applications/MAMP/Bibliothèque/bin/mysql -u root -p
(si vous êtes invité à entrer un mot de passe, appuyez simplement sur Entrée)
puis exécutez les commandes eric et rolando publiées, cette fois je n'ai pas eu d'erreur "Commande DELETE refusée à l'utilisateur '' @ 'localhost' pour la table 'user'" si vous le faites, vous n'avez pas démarré mysqld correctement
puis arrêtez le service mysqld:
/ Applications/MAMP/Bibliothèque/bin/mysqld stop
puis redémarré mamp comme d'habitude avec le gui
et tout a recommencé à travailler comme avant ... J'étais tellement soulagé !!!
2 heures de panique et d'essais et d'erreurs avec la console ... de précieuses leçons apprises ..
Si j'ai foiré l'une des commandes ou l'explication (ce qui pourrait être le cas lorsque je remontais mes étapes en écrivant ce message, faites-le moi savoir. Je serais heureux de mettre à jour le message.
enfin ne donnez pas. ça peut être fait!!
J'ai fait exactement la même chose hier, étant nouveau pour les macs et le serveur SQL. J'ai accidentellement supprimé l'utilisateur root parce que j'ai appuyé sur le mauvais bouton Privilèges tout en essayant de configurer un nouvel utilisateur et un nouveau mot de passe.
Je n'avais aucun travail d'aucune utilité sur cet ordinateur, donc je ne craignais pas de supprimer mes sites Web.
J'ai maintenant accès à phpMyAdmin via le lien sur la page de démarrage une fois MAMP démarré.
Je voulais juste expliquer comment j'ai résolu ce problème. Si vous avez accidentellement supprimé l'utilisateur root dans MAMP PRO et que vous utilisez OSX avec des sauvegardes Time Machine. Accédez simplement à ce dossier dans le Finder:
/ Bibliothèque/Support d'application/appsolute /
Ensuite, entrez "Time Machine" dans la barre de menu supérieure et restaurez une sauvegarde récente du dossier MAMP PRO. J'ai économisé beaucoup de tracas pour moi.
A fonctionné pour moi sur CentOS 6. J'ai dû supprimer Create_tablespace_priv = 'y' parce que ma version a squawké sinon tout allait bien.
Ok, arrêtez d'exécuter votre MySQL et ouvrez les fichiers d'installation fournis. Il devrait y avoir un fichier bat nommé resetroot.bat. Exécutez-le et votre problème aura disparu.
MySQL 5.7 avait remplacé le champ Mot de passe par chaîne d'authentification (dans la table mysql.user); donc cela a fonctionné pour moi.
INSERT INTO mysql.user
SET user = 'root',
Host = 'localhost',
authentication_string =Password('Yours_own_password'),
Select_priv = 'y',
Insert_priv = 'y',
Update_priv = 'y',
Delete_priv = 'y',
Create_priv = 'y',
Drop_priv = 'y',
Reload_priv = 'y',
Shutdown_priv = 'y',
Process_priv = 'y',
File_priv = 'y',
Grant_priv = 'y',
References_priv = 'y',
Index_priv = 'y',
Alter_priv = 'y',
Show_db_priv = 'y',
Super_priv = 'y',
Create_tmp_table_priv = 'y',
Lock_tables_priv = 'y',
Execute_priv = 'y',
Repl_slave_priv = 'y',
Repl_client_priv = 'y',
Create_view_priv = 'y',
Show_view_priv = 'y',
Create_routine_priv = 'y',
Alter_routine_priv = 'y',
Create_user_priv = 'y',
Event_priv = 'y',
Trigger_priv = 'y',
Create_tablespace_priv = 'y',
ssl_cipher = '',
x509_issuer = '',
x509_subject = '';