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