Случайно заблокировал себя от MySQL, изменив хост

8

Пытаясь заставить работать удаленный MySQL, мне каким-то образом удалось заблокировать себя с учетной записью root.

Обычно я бы остановил службу MySQL и перезапустил ее, используя /etc/init.d/mysql --init-file, но когда я пытаюсь это сделать, он говорит, что сценарий был преобразован в задание upstart и используется команда «service mysql». К сожалению, насколько я знаю, serviceкоманда не поддерживает эту --init-fileопцию.

Есть ли другой способ сбросить хост для пользователя root?

nickjyc
источник

Ответы:

9

Остановите MySQL:

service mysqld stop

затем запустить MySQL, как это

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

На этом этапе вы должны иметь возможность подключиться к mysql (с локальной машины) как root.

Чад Феллер
источник
1
Вы могли бы также service mysqld restart --skip-grant-tables --skip-networking. Затем после исправления рута service mysql restart. Тем не менее, +1 !!!
RolandoMySQLDBA
1

В конечном счете, этот вариант будет передан mysqld_safe; документация описывает это в деталях. Возможно, вы сможете узнать, как upstart вызывает MySQL, а затем запустить его вручную, аналогично добавленной --init-fileопции. Убедитесь, что вы запускаете его как правильный пользователь, однако!

Если вы используете Debian или Ubuntu, вы, вероятно, обнаружите, что существует пользователь с правами root, debian-sys-maintкоторый вы можете временно использовать; Вы найдете автоматически сгенерированный пароль для этого в /etc/mysql/debian.cnf. Могут ли быть альтернативы и в других системах? Этот вариант, вероятно, будет проще,

дом
источник