senha Erro no MySQL:: 'Acesso negado para o usuário' root '@' localhost '



phpmyadmin não aceita senha root (9)

Para usuários do Ubuntu / Debian

Execute o seguinte para conectar-se como root (sem nenhuma senha)

sudo /usr/bin/mysql --defaults-file=/etc/mysql/debian.cnf

Se você não deseja adicionar --defaults-file toda vez que quiser se conectar como root , pode copiar /etc/mysql/debian.cnf no seu diretório pessoal:

sudo cp /etc/mysql/debian.cnf ~/.my.cnf

e depois:

sudo mysql

$ ./mysqladmin -u root -p ' redigido '
Digite a senha:

mysqladmin: falha na conexão com o servidor em 'localhost':
'Acesso negado para o usuário' root '@' localhost '(usando a senha: YES)'

Como posso consertar isso?


Answer #1

Isso pode acontecer se você não tiver privilégios suficientes. Digite su , digite a senha root e tente novamente.


Answer #2

Se você é como eu e todas as sugestões acima falharam, prossiga com a desinstalação de todas as versões do mysql em sua máquina, procure todos os arquivos mysql restantes usando este comando sudo find / -name "mysql" e rm -rf cada arquivo ou diretório com o comando nome mysql anexado a ele (você deve pular arquivos relacionados às bibliotecas da linguagem de programação). Agora instale uma nova versão do MySQL e aproveite. Nota: você perderá todos os seus dados, portanto pese suas opções primeiro.


Answer #3

No meu caso no Debian 10, o erro

sudo mysql -u root -p mysql

foi resolvido por (BOA MANEIRA)

mysql -u root -p mysql

MANEIRA RUIM:

 mysql -u root -p mysql 

Answer #4

Eu tentei várias etapas para corrigir esse problema. Existem tantas fontes para possíveis soluções para esse problema que é difícil filtrar o sentido das bobagens. Finalmente encontrei uma boa solução here :

Etapa 1: identificar a versão do banco de dados

$ mysql --version

Você verá uma saída como esta com o MySQL:

$ mysql  Ver 14.14 Distrib 5.7.16, for Linux (x86_64) using  EditLine wrapper

Ou imprima assim para o MariaDB:

mysql  Ver 15.1 Distrib 5.5.52-MariaDB, for Linux (x86_64) using readline 5.1

Anote qual banco de dados e qual versão você está executando, como você os usará mais tarde. Em seguida, você precisa interromper o banco de dados para acessá-lo manualmente.

Etapa 2: Parando o servidor de banco de dados

Para alterar a senha root, você deve desligar o servidor de banco de dados antecipadamente.

Você pode fazer isso no MySQL com:

$ sudo systemctl stop mysql

E para MariaDB com:

$ sudo systemctl stop mariadb

Etapa 3: Reiniciando o servidor de banco de dados sem verificação de permissão

Se você executar o MySQL e o MariaDB sem carregar informações sobre os privilégios do usuário, ele permitirá que você acesse a linha de comando do banco de dados com privilégios de root, sem fornecer uma senha. Isso permitirá que você obtenha acesso ao banco de dados sem saber.

Para fazer isso, é necessário parar o banco de dados de carregar as tabelas de concessão, que armazenam informações sobre privilégios do usuário. Como esse é um risco à segurança, você também deve pular a rede também para impedir que outros clientes se conectem.

Inicie o banco de dados sem carregar as tabelas de concessão ou ativar a rede:

$ sudo mysqld_safe --skip-grant-tables --skip-networking &

Oe comercial no final deste comando fará com que esse processo seja executado em segundo plano, para que você possa continuar usando o seu terminal.

Agora você pode conectar-se ao banco de dados como usuário root, o que não deve solicitar uma senha.

$ mysql -u root

Você verá imediatamente um prompt de shell do banco de dados.

Prompt do MySQL

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

Prompt do MariaDB

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

MariaDB [(none)]>

Agora que você tem acesso root, pode alterar a senha root.

Etapa 4: Alterando a senha root

mysql> FLUSH PRIVILEGES;

Agora podemos alterar a senha do root.

Para o MySQL 5.7.6 e mais recente , bem como o MariaDB 10.1.20 e mais recente , use o seguinte comando:

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'new_password';

Para o MySQL 5.7.5 e mais antigo , bem como o MariaDB 10.1.20 e mais antigo , use:

mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('new_password');

Certifique-se de substituir new_password por sua nova senha de escolha.

Nota: Se o comando ALTER USER não funcionar, geralmente é indicativo de um problema maior. No entanto, você pode tentar UPDATE ... SET para redefinir a senha root.

[IMPORTANTE] Esta é a linha específica que corrigiu meu problema específico:

mysql> UPDATE mysql.user SET authentication_string = PASSWORD('new_password') WHERE User = 'root' AND Host = 'localhost';

Lembre-se de recarregar as tabelas de concessão depois disso.

Em qualquer um dos casos, você deverá ver a confirmação de que o comando foi executado com sucesso.

Query OK, 0 rows affected (0.00 sec)

A senha foi alterada; portanto, agora você pode parar a instância manual do servidor de banco de dados e reiniciá-la como antes.

Etapa 5: reiniciar o servidor de banco de dados normalmente

O tutorial segue algumas etapas adicionais para reiniciar o banco de dados, mas a única peça que usei foi esta:

Para o MySQL, use: $ sudo systemctl start mysql

Para MariaDB, use:

$ sudo systemctl start mariadb

Agora você pode confirmar que a nova senha foi aplicada corretamente executando:

$ mysql -u root -p

O comando agora deve solicitar a senha recém-atribuída. Digite-o e você deverá obter acesso ao prompt do banco de dados conforme o esperado.

Conclusão

Agora você tem acesso administrativo ao servidor MySQL ou MariaDB restaurado. Verifique se a nova senha root que você escolhe é forte e segura e mantenha-a em local seguro.



Answer #6

Para novos usuários do Linux, isso pode ser uma tarefa assustadora. Deixe-me atualizar isso com o mysql 8 (a versão mais recente disponível no momento é 8.0.12, em 12 de setembro de 2018)

  1. Abra o arquivo de configuração "mysqld.cnf" em "/etc/mysql/mysql.conf.d/".
  2. Adicione skip-grant-tables à próxima linha do texto [mysql] e salve.
  3. Reinicie o serviço mysql como "sudo service mysql restart". Agora seu mysql está livre de qualquer autenticação.
  4. Conecte-se ao cliente mysql (também conhecido como mysql-shell) como mysql -u root -p . Não há senha a ser digitada a partir de agora.
  5. executar privilégios de liberação do comando sql ;
  6. Redefina a senha agora como ALTER USER 'root' @ 'localhost' IDENTIFICADO POR 'MyNewPassword';
  7. Agora vamos voltar ao estado normal; remova essa linha "skip-grant-tables" de "mysqld.cnf" e reinicie o serviço.

É isso aí.


Answer #7

No seu ambiente de trabalho MySQL, você pode ir para a barra lateral esquerda, em Gerenciamento, selecionar "Usuários e privilégios", clicar na raiz em Contas de usuário, na seção à direita, clicar na guia "Limites de conta" para aumentar o máximo de consultas, atualizações, etc. depois clique na guia "Funções administrativas" e marque as caixas para conceder acesso à conta. Espero que ajude!


Answer #8

Eu fiz isso para definir minha senha root na configuração inicial do MySQL no OSx. Abra um terminal.

sudo /usr/local/mysql/support-files/mysql.server stop
sudo mysqld_safe --skip-grant-tables

Feche o terminal e abra um novo terminal. E os seguintes são trabalhados no Linux, para definir a senha root.

mysql -u root

FLUSH PRIVILEGES;

(sudo mysqld_safe --skip-grant-tables: Isso não funcionou para mim na primeira vez. Mas, na segunda tentativa, foi o sucesso.)

Então entre no MySQL

ALTER USER 'root'@'localhost' IDENTIFIED BY 'newpassword';

Agora mude a senha:

sudo /usr/local/mysql/support-files/mysql.server stop
sudo /usr/local/mysql/support-files/mysql.server start

Reinicie o MySQL:

ERROR 1698 (28000): Access denied for user 'root'@'localhost'




database-connection