Si vous avez déjà perdu vos clés d' une voiture, vous êtes déjà familier avec le sentiment angoissant que vous obtiendrez après avoir réalisé que vous avez supprimé un compte d'utilisateur essentielle à la gestion d'un serveur de base de données MySQL . Par convention , MySQL super- utilisateur est appelé "root" et a des pouvoirs d'ajouter et de modifier d'autres comptes , créer et supprimer des bases de données et exécuter des fonctions de gestion telles que l'arrêt du serveur. MySQL charge des informations sur les comptes utilisateur dans la mémoire au démarrage . Si vous supprimez accidentellement un compte «root» à partir de la table user de la base de données , l'approche de la reprise dépendra de si oui ou non ces informations d'identification sont seuil en mémoire. Des instructions
pouvoirs racines sont toujours en cache
1
Exécutez la commande login pour l'utilitaire Moniteur "mysql » à la Linux ou Windows invite de commandes:
mysql - user = root @ localhost - password = mypass
Vous devrez remplacer " mypass " avec le mot de passe pour votre compte "root" via
Si vous êtes en mesure de se connecter, rester connecté à "localhost ". l'utilitaire "mysql" et passez à l'étape 2. Sinon , passez à
2
Entrez la commande SQL suivante alors que vous êtes encore connecté à l'utilitaire "mysql" " compte root plus mis en cache . ":
INSERT INTO mysql.user ( Host, User Password) VALUES ( 'localhost' , 'root' , PASSWORD (' mypass ')) ; " . mypass "
Cela crée un utilisateur "root " avec un mot de passe correspondant à votre texte pour Les guillemets sont nécessaires, mais la capitalisation des commandes SQL est facultative
3
Entrez la commande SQL suivante : . .
GRANT ALL PRIVILEGES ON * * TO ' root' @ 'localhost' WITH GRANT OPTION ;
Cela affectera tous les privilèges pour le nouveau compte
compte root plus mis en cache
4
arrêter votre MySQL. serveur
sur un système Linux avec un mysql start /stop scénario, cette opération est généralement effectuée en tant qu'administrateur du système en entrant une commande comme : .
/etc /rc.d /init.d /mysql stop
sur les systèmes Windows , sélectionnez le Panneau de configuration dans le menu Démarrer et ouvrez les dossiers Outils d'administration . Double -cliquez sur l'icône Services et faire défiler la liste pour trouver l'entrée « MySQL». Faites un clic droit sur ce point et sélectionnez "Stop" dans le menu pop-up
5
Ouvrez un éditeur de texte et entrez les commandes SQL suivantes : .
INSERT INTO mysql. (Host, User, Password ) VALUES utilisateur ( 'localhost' , 'root' , PASSWORD (' mypass ')) ;
GRANT ALL PRIVILEGES ON * * TO ' root' @ 'localhost' WITH GRANT OPTION . ;
FLUSH TABLES ;
encore une fois, " mypass » sera le mot de passe que vous préférez pour votre compte "root" . Enregistrez le fichier texte. Dans cet exemple, le nom de fichier " root.sql " est utilisé.
6
Entrez cette commande sur les systèmes Linux pour lancer le serveur MySQL (en évitant le script de démarrage /arrêt habituel ) et le forcer à traiter les commandes dans votre fichier texte :
safe_mysqld - init- file = root.sql
Sous Windows, la commande est:
mysqld -nt - init-file = root.sql
vous pourriez avoir à fournir le chemin complet vers « safe_mysqld » ou « mysqld -nt », comme avec " root.sql . "
7
Arrêtez l' serveur. Maintenant, vous pouvez exécuter le service " mysqladmin " comme nouvel utilisateur "root" :
mysqladmin shutdown - user = root - password = mypass
Vous pourriez avoir à inclure le chemin complet exécutable " mysqladmin " sur votre système. Ce que vous tapez à la place de " mypass " ci-dessus serait le mot de passe que vous avez saisi lors de la création du fichier " root.sql " .
8
Commencez votre serveur MySQL comme vous le faites normalement pour une utilisation en production régulière.