Fez um erro de digitação e esqueceu de fechar aspas ao digitar a nova senha de root do MySQL

1

Ao inserir uma nova senha para a conta root no MySQL, eu acidentalmente fiz isso:

mysqladmin -u root -p password 'somepassword 

Onde você pode ver, perdi a segunda citação. e eu tenho algo assim.

>

Então eu digitei ' para terminar a declaração e agora a senha não funciona.

Não estou perguntando como redefinir ou recuperar a senha (sei como fazer isso, mas estou tentando evitar a reinicialização do serviço). A questão é: é possível ou não inserir uma senha aqui se esse tipo de erro for cometido.

Eu entendo que posso iniciar o servidor MySQL com um arquivo init e redefinir a senha, mas eu queria saber se alguém sabe o que o acima se traduz. É uma nova linha? É possível inserir manualmente isso?

    
por Chris Jones 13.03.2014 / 13:54

3 respostas

3

Em seguida, basta redefinir sua senha do MySQL. É assim que faço no Ubuntu 12.04. Deve funcionar de forma semelhante em outras configurações. É considerado um modo inseguro de redefinir uma senha do MySQL, já que é necessário iniciar o MySQL em um modo aberto / não baseado em credenciais para fazer isso. Mas se você fizer isso & então reinicie o MySQL normalmente, você deve estar bem.

Primeiro, paro o serviço MySQL:

sudo service mysql stop

Então eu reinicio com o sinalizador --skip-grant-tables :

sudo mysqld --skip-grant-tables &

Agora você pode fazer login sem uma senha como esta:

mysql -u root mysql

Em seguida, executo a consulta a seguir para redefinir a senha. Observe que você deve alterar o valor de YOURNEWPASSWORD para qualquer senha que você realmente queira usar:

UPDATE user SET Password=PASSWORD('YOURNEWPASSWORD') WHERE user='root'; FLUSH PRIVILEGES; exit;

Agora que isso é feito, saia do MySQL e reinicie o daemon assim:

sudo service mysql restart

Se, de alguma forma, isso não funcionar, use um killall para eliminar todas as instâncias de mysqld :

killall mysqld

Em seguida, inicie o serviço MySQL novamente como faria normalmente:

sudo service mysql start

A nova senha deve ser definida & você está pronto para ir.

    
por 13.03.2014 / 15:37
1

Filmado no escuro aqui, mas parece que sua senha tem um caractere de nova linha incorporado agora. Tente adicionar \n ao final da sua string de senha e veja se funciona, ou então insira o caractere de controle de nova linha / alimentação de linha no final da sua senha (depende do terminal).

Isso também me ocorreu. Você pode repetir a mesma coisa de novo? por exemplo,

mysqladmin -u root -p 'password RET
>' whatever-you-want-to-do RET

Obviamente, um pouco complicado. Não tem uma instalação para testar, ou eu teria feito isso, mas vale a pena tentar.

Nota: sinto que isso já aconteceu comigo antes.

    
por 13.03.2014 / 14:44
1

Se você sabe * exatamente o que você digitou então você pode logar com esse valor - mas você precisa especificá-lo na linha de comando ao invés de um arquivo ini ou a senha pro, pt (onde newline é interpretada como final da entrada). Por exemplo:

mysqladmin -u root -p"somepassword\n\n\n" password 'newpassword'

Se você não conseguir recriar o valor digitado anteriormente, será necessário percorrer a rota do arquivo ini diferente.

    
por 13.03.2014 / 14:45

Tags