Respostas:
Pare o processo do MySQL.
Inicie o processo MySQL com a opção --skip-grant-tables.
Inicie o cliente do console MySQL com a opção -u root.
Listar todos os usuários;
SELECT * FROM mysql.user;
Redefinir senha;
UPDATE mysql.user SET Password=PASSWORD('[password]') WHERE User='[username]';
Mas NÃO SE ESQUEÇA a
Pare o processo MySQL
Inicie o processo MySQL normalmente (ou seja, sem a opção --skip-grant-tables)
quando tiver terminado. Caso contrário, a segurança do seu banco de dados poderá ser comprometida.
dpkg-reconfigure mysql-server-5.5
comando para redefinir a senha root do MySQL?
-u
é ignorado quando o servidor é iniciado --skip-grant-tables
.
mysql.user
chamada password
, use em authentication_string
vez disso.
Infelizmente sua senha de usuário é irrecuperável. Foi hash com um hash unidirecional que, se você não souber, é irreversível. Eu recomendo ir com o Xenph Yan acima e apenas criar um novo.
Você também pode usar o seguinte procedimento do manual para redefinir a senha de qualquer conta raiz do MySQL no Windows:
Menu Iniciar -> Painel de Controle -> Ferramentas Administrativas -> Serviços
Em seguida, encontre o serviço MySQL na lista e pare-o. Se o seu servidor não estiver sendo executado como um serviço, pode ser necessário usar o Gerenciador de Tarefas para forçá-lo a parar.
Crie um arquivo de texto e coloque as seguintes instruções nele. Substitua a senha pela senha que você deseja usar.
UPDATE mysql.user SET Password=PASSWORD('MyNewPass') WHERE User='root';
FLUSH PRIVILEGES;
As instruções UPDATE e FLUSH devem ser escritas em uma única linha. A instrução UPDATE redefine a senha de todas as contas raiz existentes e a instrução FLUSH informa ao servidor para recarregar as tabelas de concessão na memória.
Abra uma janela do console para acessar o prompt de comando:
Menu Iniciar -> Executar -> cmd
Inicie o servidor MySQL com a opção especial --init-file :
C:\> C:\mysql\bin\mysqld-nt --init-file = C:\mysql-init.txt
Se você instalou o MySQL em um local diferente de C: \ mysql , ajuste o comando de acordo.
O servidor executa o conteúdo do arquivo nomeado pela opção --init-file na inicialização, alterando cada senha da conta raiz .
Você também pode adicionar a opção --console ao comando se desejar que a saída do servidor apareça na janela do console e não em um arquivo de log.
Se você instalou o MySQL usando o Assistente de Instalação do MySQL, pode ser necessário especificar uma opção --defaults-file :
C:\> "C:\Program Files\MySQL\MySQL Server 5.0\bin\mysqld-nt.exe" --defaults-file="C:\Program Files\MySQL\MySQL Server 5.0\my.ini" --init-file=C:\mysql-init.txt
A configuração --defaults-file apropriada pode ser encontrada usando o Gerenciador de Serviços:
Menu Iniciar -> Painel de Controle -> Ferramentas Administrativas -> Serviços
Encontre o serviço MySQL na lista, clique com o botão direito do mouse e escolha a opção Propriedades. O campo Caminho para o executável contém a configuração --defaults-file .
Agora você deve conseguir se conectar ao MySQL como root usando a nova senha.
mysqld-nt
vez de mysqld
?
Uma melhoria para a resposta mais útil aqui:
1] Não há necessidade de reiniciar o servidor mysql
2] Preocupação com a segurança de um servidor MySQL conectado a uma rede
Não há necessidade de reiniciar o servidor MySQL.
use FLUSH PRIVILEGES;
após a atualização mysql.user para alterar a senha.
A instrução FLUSH informa ao servidor para recarregar as tabelas de permissões na memória para que ele note a alteração da senha.
O --skip-grant-options
permite que qualquer pessoa se conectar sem uma senha e com todos os privilégios. Como isso é inseguro, convém
use --skip-grant-tables em conjunto com --skip-networking para impedir que clientes remotos se conectem.
from: reference: resetting-Permissions-generic
mysql.user
? Muitas vezes, porém, esse não é o caso.
Embora você não possa recuperar diretamente uma senha do MySQL sem forçar brutalidade, pode haver outra maneira - se você usou o MySQL Workbench para se conectar ao banco de dados e salvou as credenciais no "cofre", você está certo.
No Windows, as credenciais são armazenadas em % APPDATA% \ MySQL \ Workbench \ workbench_user_data.dat - criptografadas com CryptProtectData (sem nenhuma entropia adicional). Descriptografar é fácil:
std::vector<unsigned char> decrypt(BYTE *input, size_t length) {
DATA_BLOB inblob { length, input };
DATA_BLOB outblob;
if (!CryptUnprotectData(&inblob, NULL, NULL, NULL, NULL, CRYPTPROTECT_UI_FORBIDDEN, &outblob)) {
throw std::runtime_error("Couldn't decrypt");
}
std::vector<unsigned char> output(length);
memcpy(&output[0], outblob.pbData, outblob.cbData);
return output;
}
Ou você pode conferir este thread do DonationCoder para obter o código fonte + executável de uma implementação rápida e suja.
Execute o seguinte comando no Terminal para conectar-se ao DBMS (você precisa de acesso root):
sudo mysql -u root -p;
execute a senha de atualização do usuário de destino (por exemplo, o nome de usuário mousavi
e a senha devem ser 123456
):
UPDATE mysql.user SET authentication_string=PASSWORD('123456') WHERE user='mousavi';
Neste ponto, você precisa fazer um flush para aplicar as alterações:
FLUSH PRIVILEGES;
Feito! Você fez isso sem parar ou reiniciar o serviço mysql.
Se você possui acesso root ao servidor em que o mysql está executando, você deve parar o servidor mysql usando este comando
sudo service mysql stop
Agora inicie o mysql usando este comando
sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking &
Agora você pode fazer login no mysql usando
sudo mysql
FLUSH PRIVILEGES;
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
Instruções completas podem ser encontradas aqui http://www.techmatterz.com/recover-mysql-root-password/
Entre no MySql do windows cmd usando o usuário existente:
mysql -u nome de usuário -p
Digite a senha: ****
Em seguida, execute o seguinte comando:
mysql> SELECT * FROM mysql.user;
Depois disso, copie a senha md5 criptografada para o usuário correspondente e existem vários aplicativos descriptografados por senha online disponíveis na web. Usando essa senha descriptografada e use-a para fazer login na próxima vez. ou atualize a senha do usuário usando o comando flow:
mysql> UPDATE mysql.user SET Password=PASSWORD('[password]') WHERE User='[username]';
Em seguida, faça o login usando a nova senha e usuário.
Se você tiver o ODBC configurado, poderá obter a senha no arquivo de configuração do ODBC. Isso está no /etc/odbc.ini para Linux e na pasta Software / ODBC no registro no Windows (existem vários - pode demorar um pouco)
Salve o arquivo. Neste exemplo, o arquivo será nomeado C: \ mysql-init.txt. solicitando permissões administrativas para salvar o arquivo
Apesar de uma rigorosa lógica, interpretação, science'ish computador da pergunta do op seria exigir tanto "Como posso recuperar o meu nome de usuário MySQL" e "password" - eu pensei que poderia ser útil a alguém para também abordar a OR interpretação. Em outras palavras ...
1) Como recupero meu nome de usuário MySQL?
OU
2) senha
Essa última condição já parece ter sido amplamente abordada, então não vou me preocupar com isso. A seguir, é apresentada uma solução para o caso "Como recupero meu nome de usuário MySQL" sozinho. HIH.
Para encontrar o seu nome de usuário do mysql, execute os seguintes comandos no shell do mysql ...
SELECT Usuário FROM mysql.user;
irá imprimir uma tabela de todos os usuários do mysql.