Пытаясь заставить работать удаленный MySQL, мне каким-то образом удалось заблокировать себя с учетной записью root.
Обычно я бы остановил службу MySQL и перезапустил ее, используя /etc/init.d/mysql --init-file
, но когда я пытаюсь это сделать, он говорит, что сценарий был преобразован в задание upstart и используется команда «service mysql». К сожалению, насколько я знаю, service
команда не поддерживает эту --init-file
опцию.
Есть ли другой способ сбросить хост для пользователя root?
Ответы:
Остановите MySQL:
затем запустить MySQL, как это
На этом этапе вы должны иметь возможность подключиться к mysql (с локальной машины) как root.
источник
service mysqld restart --skip-grant-tables --skip-networking
. Затем после исправления рутаservice mysql restart
. Тем не менее, +1 !!!В конечном счете, этот вариант будет передан
mysqld_safe
; документация описывает это в деталях. Возможно, вы сможете узнать, как upstart вызывает MySQL, а затем запустить его вручную, аналогично добавленной--init-file
опции. Убедитесь, что вы запускаете его как правильный пользователь, однако!Если вы используете Debian или Ubuntu, вы, вероятно, обнаружите, что существует пользователь с правами root,
debian-sys-maint
который вы можете временно использовать; Вы найдете автоматически сгенерированный пароль для этого в/etc/mysql/debian.cnf
. Могут ли быть альтернативы и в других системах? Этот вариант, вероятно, будет проще,источник