8 votes

Je me suis accidentellement bloqué hors de MySQL en changeant l'hôte.

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

Normalement, je devrais arrêter le service MySQL et le redémarrer en utilisant /etc/init.d/mysql --init-file mais lorsque j'essaie de le faire, il est indiqué que le script a été converti en tâche de démarrage et qu'il faut utiliser la commande "service mysql". Malheureusement, pour autant que je sache, le service ne prend pas en charge la commande --init-file option.

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

9voto

Michael Points 459

Arrêtez MySQL :

service mysqld stop

puis lancez MySQL comme ceci

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

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

1voto

Bob Points 21

En fin de compte, cette option sera transmise à mysqld_safe ; le documentation décrit cela en détail. Vous pouvez découvrir comment upstart invoque MySQL, et le démarrer manuellement de la même manière avec vos ajouts. --init-file option. Assurez-vous toutefois de le démarrer en tant que bon utilisateur !

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

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X