Não consigo descobrir minha senha root do MySQL; como posso descobrir isso? Existe algum arquivo em que essa senha esteja armazenada?
Estou seguindo este link, mas não tenho o diretório directadmin no local.
Não consigo descobrir minha senha root do MySQL; como posso descobrir isso? Existe algum arquivo em que essa senha esteja armazenada?
Estou seguindo este link, mas não tenho o diretório directadmin no local.
Respostas:
graças a @thusharaK, eu poderia redefinir a senha root sem saber a senha antiga.
No ubuntu, fiz o seguinte:
sudo service mysql stop
sudo mysqld_safe --skip-grant-tables --skip-syslog --skip-networking
Em seguida, execute o mysql em um novo terminal:
mysql -u root
E execute as seguintes consultas para alterar a senha:
UPDATE mysql.user SET authentication_string=PASSWORD('password') WHERE User='root';
FLUSH PRIVILEGES;
No MySQL 5.7, o campo de senha no campo da tabela mysql.user foi removido, agora o nome do campo é 'authentication_string'.
Saia do modo de segurança do mysql e inicie o serviço mysql:
mysqladmin shutdown
sudo service mysql start
mysqladmin -u root -p shutdown
, com a nova senha.
mysql -u root
. Mostra erroAccess denied
Você não pode ver a senha com hash; a única coisa que você pode fazer é redefini-lo!
Pare o MySQL:
sudo service mysql stop
ou
$ sudo /usr/local/mysql/support-files/mysql.server stop
Inicie no modo de segurança:
$ sudo mysqld_safe --skip-grant-tables
(a linha acima é o comando inteiro)
Este será um comando em andamento até o término do processo; portanto, abra outra janela do shell / terminal, faça o login sem uma senha:
$ mysql -u root
mysql> UPDATE mysql.user SET Password=PASSWORD('password') WHERE User='root';
MySQL 5.7 e superior:
mysql> use mysql;
mysql> update user set authentication_string=password('password') where user='root';
Inicie o MySQL:
sudo mysql start
ou
sudo /usr/local/mysql/support-files/mysql.server start
Sua nova senha é 'senha'.
mysql_secure_installation
e a raiz não estava mais cooperando. O que a authentication_string
configuração faz?
mysqladmin -u root -p shutdown
com a nova senha entãosudo service mysql start
O MySQL 5.7 e superior salva a raiz no arquivo de log do MySQL.
Por favor tente isto:
sudo grep 'temporary password' /var/log/mysqld.log
/var/log/mysql/error.log
continha uma advertência sobre a senha de root estar vazio - de modo que este tipo de salvou meu dia :)
uma coisa que me levou a uma nova instalação do mySQL e me pergunto por que não consegui que a senha padrão funcionasse e por que até os métodos de redefinição não estavam funcionando. bem acontece que no Ubuntu 18 a versão mais recente do servidor mysql não usa autenticação por senha para o usuário root por padrão. Portanto, isso significa que não importa o que você definir, não permitirá que você o use. está esperando que você efetue login a partir de um soquete privilegiado. tão
mysql -u root -p
não funcionará, mesmo se você estiver usando a senha correta !!! negará acesso, não importa o que você colocar.
Em vez disso, você precisa usar
sudo mysql
que funcionará sem qualquer senha. então quando você precisar digitar
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'Password you want to use';
então saia e agora a coisa sangrenta finalmente aceitará sua senha
Você não pode encontrar. Ele é armazenado em um banco de dados, ao qual você precisa acessar a senha root e, mesmo que você tenha acesso de alguma forma, ele é hash com um hash unidirecional. Você pode redefini-lo: http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
Siga estas etapas para redefinir a senha no sistema Windows
Pare o serviço Mysql do gerenciador de tarefas
Crie um arquivo de texto e cole a instrução abaixo
MySQL 5.7.5 e versões anteriores:
SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');
MySQL 5.7.6 e posterior:
ALTER USER 'root'@'localhost' IDENTIFIED BY 'yournewpassword';
Salve como mysql-init.txt
e coloque-o 'C' drive
.
Abra o prompt de comando e cole o seguinte
C:\> mysqld --init-file=C:\\mysql-init.txt
mysqld --init-file=/root/m.txt
. Eu adicionei o comando acima SET PASSWORD FOR 'root'@'localhost' = PASSWORD('yournewpassword');
ao /root/m.txt
A menos que o gerenciador de pacotes solicite que você digite a senha raiz durante a instalação, a senha raiz padrão é a sequência vazia. Para conectar-se ao servidor recém-instalado, digite:
shell> mysql -u root --password=
mysql>
Para alterar a senha, volte ao shell unix e digite:
shell> mysqladmin -u root --password= password root
A nova senha é 'root'. Agora conecte-se ao servidor:
shell> mysql -u root --password=
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)
Ops, a senha foi alterada. Use o novo root
:
shell> mysql -u root --password=root
...
blah, blah, blah : mysql welcome banner
...
mysql>
Bingo! Novo fazer algo interessante
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
+--------------------+
3 rows in set (0.00 sec)
Maurycy
Além das outras respostas, em uma instalação cpanel, a senha root do mysql é armazenada em um arquivo chamado /root/.my.cnf
. (e o serviço cpanel redefine-o novamente, portanto as outras respostas aqui não ajudarão)
você pode ver a senha root do mysql, bem, eu tentei no mysql 5.5, então não conheço outra versão nova, funcione ou não
nano ~/.my.cnf
Isso funcionou para mim:
No terminal, digite o seguinte
$ sudo mysql -u root -p
Digite a senha: // basta pressionar enter
mysql>
A senha padrão que funcionou para mim após a instalação imediata do servidor mysql é: mysql
O procedimento muda dependendo da versão do MySql. Siga o procedimento exatamente como descrito para sua versão:
DICAS - Leia antes da página de instruções para sua versão do MySql *
Na etapa 5: em vez de executar o CMD, crie um atalho na área de trabalho chamando CDM.exe. Em seguida, clique com o botão direito do mouse no atalho e selecione "Executar como administrador".
Na etapa 6: ignore a primeira versão proposta do comando e execute a segunda, aquela com o parâmetro --defaults-file
Depois de executar o comando, se tudo estiver ok, a janela do CMD permanecerá aberta e o comando da etapa 6 continuará em execução. Simplesmente feche a janela (clique em 'x') e force o fechamento do MySQl no Gerenciador de tarefas.
Exclua o arquivo com os comandos SQL e inicie novamente o MySQL. A senha deve ser alterada agora.
5.0 http://dev.mysql.com/doc/refman/5.0/en/resetting-permissions.html
5.1 http://dev.mysql.com/doc/refman/5.1/en/resetting-permissions.html
... basta alterar a versão no link (5.5, 5.6, 5.7)
No seu arquivo .err "hostname" dentro da pasta de dados em que o MySQL trabalha, tente procurar por uma string que comece com:
"Uma senha temporária é gerada para roor @ localhost"
você pode usar
less /mysql/data/dir/hostname.err
pressione o comando slash seguido da string que você deseja procurar
/"A temporary password"
Em seguida, pressione n para ir para o próximo resultado.
As respostas fornecidas aqui parecem não funcionar para mim; o truque acabou sendo: ALTER USER 'root' @ 'localhost' IDENTIFICADO COM mysql_native_password BY 'test';
(resposta completa aqui: https://www.percona.com/blog/2016/03/16/change-user-password-in-mysql-5-7-with-plugin-auth_socket/ )
Sistema:
Procedimento:
Abra duas sessões de shell, efetuando login em uma como usuário raiz do Linux e a outra como usuário não raiz com acesso ao mysql
comando.
Em sua sessão raiz, pare o ouvinte normal do mysqld e inicie um ouvinte que ignora a autenticação de senha ( nota: esse é um risco de segurança significativo, pois qualquer pessoa com acesso ao mysql
comando pode acessar seus bancos de dados sem uma senha. Você pode fechar sessões de shell ativas e / ou desativar o acesso ao shell antes de fazer isso):
# systemctl stop mysqld
# /usr/sbin/mysqld --skip-grant-tables -u mysql &
Na sua sessão não raiz, efetue login no mysql e defina a senha root do mysql:
$ mysql
mysql> flush privileges;
Query OK, 0 rows affected (0.00 sec)
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
Query OK, 0 rows affected, 1 warning (0.01 sec)
mysql> quit;
Na sua sessão raiz, mate a instância sem senha do mysqld e restaure o ouvinte normal do mysqld para o serviço:
# kill %1
# systemctl start mysqld
Na sua sessão não raiz, teste a nova senha raiz configurada acima:
$ mysql -u root -p
Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
...
mysql>
Eu resolvi isso de uma maneira diferente, isso pode ser mais fácil para alguns.
Fiz desta maneira porque tentei iniciar no modo de segurança, mas não consigo conectar com o erro: ERRO 2002 (HY000): Não é possível conectar ao servidor MySQL local através do soquete '/var/run/mysqld/mysqld.sock' (2)
O que eu fiz foi conectar normalmente como root:
$ sudo mysql -u root
Então eu criei um novo superusuário:
mysql> grant all privileges on *.* to 'myuser'@'%' identified by 'mypassword' with grant option;
mysql> quit
Em seguida, efetue login como myuser
$ mysql -u myuser -p -h localhost
Tentar alterar a senha não causou erros, mas não fez nada por mim, então eu soltei e recriei o usuário root
mysql> drop user 'root'@'localhost;
mysql> mysql> grant all privileges on *.* to 'root'@'localhost' identified by 'mypassword' with grant option;
O usuário root agora está trabalhando com a nova senha
Vá para phpMyAdmin> config.inc.php> $ cfg ['Servidores'] [$ i] ['senha'] = '';
phpmyadmin
.