Назад | Перейти на главную страницу

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

Пытаясь наладить удаленную работу 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. Могут быть альтернативы и на других системах? Этот вариант, наверное, будет проще,