Bloqueei acidentalmente o MySQL alterando o host

8

Enquanto tentava fazer o MySQL funcionar, de alguma maneira eu consegui me trancar com a conta root.

Normalmente, eu parava o serviço MySQL e o reiniciava usando /etc/init.d/mysql --init-file, mas quando tento fazer isso, ele diz que o script foi convertido em um trabalho inicial e para usar o comando "service mysql". Infelizmente, até onde eu sei, o servicecomando não suporta a --init-fileopção.

Existe alguma outra maneira de redefinir o host para o usuário root?

nickjyc
fonte

Respostas:

9

Pare o MySQL:

service mysqld stop

então inicie o MySQL assim

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

Neste ponto, você deve conseguir conectar-se ao mysql (da máquina local) como root.

Chad Feller
fonte
1
Você poderia também service mysqld restart --skip-grant-tables --skip-networking. Depois de corrigir a raiz service mysql restart,. No entanto, +1 !!!
RolandoMySQLDBA
1

Por fim, essa opção será passada para mysqld_safe; a documentação descreve isso em detalhes. Você pode descobrir como o iniciante está invocando o MySQL e, em seguida, iniciá-lo manualmente da mesma maneira com sua --init-fileopção adicionada . Entretanto, certifique-se de iniciá-lo como o usuário certo!

Se você estiver usando Debian ou Ubuntu, provavelmente encontrará um debian-sys-maintusuário equivalente à raiz que poderá ser capaz de usar temporariamente; você encontrará a senha gerada automaticamente para isso em /etc/mysql/debian.cnf. Também pode haver alternativas em outros sistemas? Essa opção provavelmente seria mais fácil,

dom
fonte