Je me suis accidentellement enfermé hors de MySQL en changeant d'hôte


8

En essayant de faire fonctionner MySQL à distance, j'ai réussi à me verrouiller avec le compte root.

Normalement, j'arrêterais le service MySQL et le redémarrerais en utilisant /etc/init.d/mysql --init-file, mais quand j'essaye de le faire, il dit que le script a été converti en un travail parvenu et d'utiliser la commande "service mysql". Malheureusement, pour autant que je sache, la servicecommande ne prend pas en charge l' --init-fileoption.

Existe-t-il un autre moyen de réinitialiser l'hôte pour l'utilisateur root?


Réponses:


9

Arrêtez MySQL:

service mysqld stop

puis lancez MySQL comme ceci

mysqld_safe --skip-grant-tables --skip-networking

À ce stade, vous devriez pouvoir vous connecter à mysql (à partir de la machine locale) en tant que root.


1
Vous pourriez aussi service mysqld restart --skip-grant-tables --skip-networking. Puis, après la fixation racine, service mysql restart. Néanmoins, +1 !!!
RolandoMySQLDBA

1

En fin de compte, cette option sera transmise mysqld_safe; la documentation décrit cela en détail. Vous pourrez peut-être découvrir comment upstart appelle MySQL, puis le démarrer manuellement de la même manière avec votre --init-fileoption ajoutée . Assurez-vous cependant de le démarrer en tant que bon utilisateur!

Si vous utilisez Debian ou Ubuntu, vous constaterez probablement qu'il existe un debian-sys-maintutilisateur équivalent à root que vous pourrez peut-être utiliser temporairement; vous trouverez le mot de passe généré automatiquement pour cela dans /etc/mysql/debian.cnf. Il peut également y avoir des alternatives sur d'autres systèmes? Cette option serait probablement plus simple,

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.