Acesso MySQL negado para o usuário 'root' @ 'localhost'

24

No meu servidor, sempre que tento acessar o MySQL, recebo o erro:

Acesso negado para o usuário 'root' @ 'localhost' (usando a senha: NO)

quando tento mysqladmin -u root -p passwordeu recebo

Acesso negado para o usuário 'root' @ 'localhost' (usando a senha: YES)

Como posso acessar o MySQL no meu servidor Ubuntu 12.04?

user253867
fonte
1
Tente evitar digitar sua senha como parâmetro na linha de comando, outros usuários podem encontrá-la através de listagens de processos. Muito melhor digitá-lo diretamente no programa ou usar uma chave #
Amias 17/05
A sintaxe -p passwordestá errada, tem que ser, -ppasswordmas não é recomendada. Mais informações: stackoverflow.com/questions/5131931/…
Melebius
Verifique esta página para possíveis causas desse erro e soluções alternativas para corrigir esse erro. rathishkumar.in/2017/04/… . Isso pode ajudá-lo.
precisa saber é o seguinte

Respostas:

12

Se você estiver executando n localhost, basta digitar o comando abaixo no terminal:

mysql -u root -p

Se você estiver usando um servidor externo, insira o IP do host (xxx.xxx.xxx.xxx):

mysql -hxxx.xxx.xxx.xxx -uroot -p

Você será solicitado a digitar sua senha, digite-a e poderá acessar seu prompt do MySQL.

Você também pode consultar esta resposta sobre como redefinir sua senha do MySQL.

Parto
fonte
Entrei em, mas eu ainda não sei como alterar ou escolheu uma senha
user253867
Na resposta a que vinculei, você deve substituir o 5.xno final pela versão do servidor MySQL que você está usando. Eu estou usando 5.5 para meu comando serásudo dpkg-reconfigure mysql-server-5.5
Parto
9
então, o problema é que o OP vê Access denied for user 'root'@'localhost'. Você sugere ligar mysql -u root -p. O resultado deste comando é: Access denied for user 'root'@'localhost'.
phil294
5
sudo mysql -u root -pfunciona para mim, mas mysql -u root -pnão funciona
Ivan Black
7

Sinto os mesmos sintomas quando atualizo, mas para mim a correção (depois de matar o mysql e reiniciar com --skip-grant-tables para entrar) é executar

update mysql.user set plugin = '';

O processo de atualização gosta de definir esta coluna como "unix_socket". Não sei o que isso deve conseguir, mas para mim isso quebra tudo.

dogtato
fonte
Isso resolve meu problema no Ubuntu 16 LTS, depois de tentar de tudo .. permissões, usuário do grupo. Thanx.
Onalbi 19/05/19
sim, eu tinha executado o script de proteção e ele mudou o plug-in para mysql_socketque o que quer que eu estivesse configurado para usar PASSWORD('xxxxxx')não estivesse funcionando.
TheVillageIdiot
4

Defina uma senha para o mysql

sudo dpkg-reconfigure mysql-server-5.x

Agora abra o terminal e digite

mysql -uroot -p

dê a senha e pressione enter

Conor
fonte
4

Eu resolvi meu problema com isso:

sudo apt-get remove --purge mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt install mysql-server

Seja extremamente responsável. Com esta solução, você está removendo o servidor MySql e todos os seus dados.

Andrew Zolotarev
fonte
Não funciona para mim.
Ivan Black
!! Seja extremamente responsável. Com esta solução, você está removendo o servidor MySql e todos os seus dados.
Matiss Jurgelis 17/04
4

O mesmo que Ulrich Metzger, depois de atualizar minha máquina para o Ubuntu 16.04 e o Mysql-server-5.7, não consegui efetuar login com o root porque a plugincoluna mudou.

Meu problema não foi resolvido com sudo dpkg-reconfigure mysql-server-5.7+ remover + limpar + limpar.

Eu tive que parar o serviço mysql:

# sudo service mysql stop

Em seguida, reinicie o daemon mysql com a --no-grant-tablesopção:

# sudo mysqld_safe --no-grant-tables &

Em outro terminal, entre no console do mysql (que agora não precisa de autenticação) com o comando mysqle atualize as colunas de senha e plug-in por meio de um SQL UPDATE:

UPDATE mysql.user 
  SET authentication_string=PASSWORD(''), 
      plugin='mysql_native_password'
WHERE User='root' AND Host='localhost';

Finalmente, mate o mysqld_safecomando, reinicie o serviço mysql e conecte-se ao mysql normalmente:

# sudo service mysql start
# mysql
Kuuak
fonte
2

Após a atualização do ubuntu 14.4LTS para 16.4LTS, o usuário root do mysql não pôde mais fazer login devido a uma entrada incorreta na coluna de plug-in da tabela de usuários do mysql. A atualização define o valor do plug-in para o usuário root @ localhost como auth_socket, mas a entrada correta deve ser mysql_native_password , se você usou a criptografia de senha nativa do mysql antes.

Ulrich Metzger
fonte
Este é o que funcionou para mim e parece ser a raiz do problema. Desinstalar e reinstalar não fará nada para corrigir o "problema".
SteveFromAccounting