ERRO 1045 (28000): acesso negado para o usuário 'root' @ 'localhost' (usando a senha: YES)

184

Eu sou um engenheiro elétrico que brinca principalmente com sistemas de energia em vez de programação. Recentemente, tenho acompanhado um manual para instalar um pacote de software no Ubuntu. mySQLNa verdade, eu não tenho conhecimento nenhum . Eu fiz as seguintes instalações no meu Ubuntu.

sudo apt-get update
sudo apt-get install mysql-server-5.5
sudo apt-get install mysql-client-5.5
sudo apt-get install mysql-common
sudo apt-get install glade
sudo apt-get install ntp

Então eu faço

me@ubuntu:~/Desktop/iPDC-v1.3.1/DBServer-1.1$ mysql -uroot -proot <"Db.sql"

Acabei com a seguinte mensagem de erro.

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Como posso corrigi-lo e continuar?

Sibbs Gambling
fonte
1
Isso não parece ser estritamente relacionado a programação para mim. Eu o sinalizei para a migração para o SuperUser
Uli Köhler
Visitantes futuros, também não se esqueça de verificar as várias causas explicadas aqui: dev.mysql.com/doc/refman/8.0/en/problems-connecting.html
aderchox

Respostas:

155

Nota: Para o MySQL 5.7+ , consulte a resposta do @Lahiru para esta pergunta. Que contém informações mais atuais.

Para MySQL <5.7:

A senha raiz padrão está em branco (isto é, sequência vazia) não root. Para que você possa fazer login como:

mysql -u root

Obviamente, você deve alterar sua senha root após a instalação

mysqladmin -u root password [newpassword]

Na maioria dos casos, você também deve configurar contas de usuário individuais antes de trabalhar extensivamente com o banco de dados também.

Mike Brant
fonte
5
@FarticlePilter O -psinalizador especifica a senha; portanto, depois de alterar sua senha root, você gostaria mysql -u root -p[newpassword]. O < [filename]está usando a entrada std para executar um arquivo SQL no caminho fornecido através da credencial do usuário que você fornece.
Mike Brant
27
Eu tentei como disse mysqladmin -u root password abc1234, mas consegui mysqladmin: connect to server at 'localhost' failed error: 'Access denied for user 'root'@'localhost' (using password: NO)'. Muito obrigado!
Sibbs Gambling
2
@ Kanagaroo nesta questão, o OP afirma que eles apenas instalaram o MySQL pela primeira vez e depois tentaram acessar via cliente de linha de comando do MySQL. Parece o primeiro acesso a mim.
Mike Brant
18
Na verdade, para o mysql community server 5.7, a senha root padrão é gerada aleatoriamente quando você instala. Verifique seu /var/log/mysqld.log para uma linha falando sobre uma "senha temporária". Economiza horas brincando.
Phil
1
@BraianMellor Isso resolve o problema do MySQL <5.7, pois a senha raiz padrão (pós-instalação) no Ubuntu está em branco (sem senha), onde na pergunta original o pôster estava tentando usar raiz / raiz. A pergunta não era sobre perda de senha, alteração de senha ou semelhante. Para versões mais recentes do MySQL, a outra resposta que referi é a correta, pois o usuário deve procurar nos logs de erros para ver a senha raiz gerada aleatoriamente.
25817 Mike Brant
114

Consegui resolver esse problema executando esta declaração

sudo dpkg-reconfigure mysql-server-5.5

O que alterará a senha root.

Divz
fonte
10
Apenas o que eu precisava ... mas nem todo mundo tem a versão 5.5 do servidor. usar dpkg --get-selections | grep sqlpara obter a sua versão
Balmipour
1
@ Balmipour, qual deve ser o comando equivalente para verificar a versão sql no Rhel 6.x
PrathamN
1
@Divz qual deve ser o servidor mysql comando para reconfigurar no RHEL / CentOS
PrathamN
@PrathamN Eu nunca usei red, mas pesquisar no Google por "versões de pacotes de verificação de chapéu vermelho" me dá comandos como este: yum list installedadd | grep sqlpara filtrar apenas pacotes SQL.
Balmipour
1
Quando eu executar este comando no Mac OS X, eu recebo este erro: sudo: dpkg-reconfigure: command not found. Alguma sugestão?
MOna 14/03
90

Você precisa redefinir a senha! etapas para mac osx (testado e funcionando) e ubuntu

Pare o MySQL usando

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 --skip-networking

(a linha acima é o comando inteiro)

Este será um comando em andamento até que o processo seja concluído; 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';

Conforme comentário do @ IberoMedia, para versões mais recentes do MySQL, o campo é chamado authentication_string:

mysql> UPDATE mysql.user SET authentication_string =PASSWORD('password') WHERE User='root';

Inicie o MySQL usando:

sudo service mysql start

ou

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

sua nova senha é 'senha'.

tk_
fonte
3
Por favor, NÃO dessa maneira! A resposta de @ Divz é mais segura. Citando o documento sobre --skip-grant-tables: Isso permite que qualquer pessoa se conecte sem uma senha e com todos os privilégios [...] Como isso é inseguro, [...] use --skip-grant-tablesem conjunto com --skip-networkingpara impedir a conexão de clientes remotos. Ah, e também, este não funcionou para mim. É por isso que eu vim aqui: p
Balmipour
1
Se você for por esse caminho , sim. Não funcionou para mim, e seguir a resposta do @ Divz parece muito mais fácil para mim, de qualquer maneira --O que eu sugeriria é usar dpkg --get-selections | grep mysql-server-para obter sua versão exata do MySQL, e então vá para sudo dpkg-reconfigure mysql-server-5.x (substitua 5 .x com a versão do servidor, btw). Comentei a resposta de @ Divz com essa precisão, mas é mascarada pelos vários comentários de agradecimento.
Balmipour
4
atualizar conjunto de usuários authentication_string = password ('1111') em que user = 'root';
Dejell
2
Isso realmente funcionou ... as outras soluções ainda me deram o mesmo erro.
eddy147
2
Desde o MySQL 5.7.6, a coluna Senha foi renomeada como "authentication_string" Aqui você pode ler mais sobre o assunto: bugs.mysql.com/bug.php?id=76655
IberoMedia
55

Eu sei que isso é uma pergunta antiga, mas acho que isso pode ajudar alguém. Recentemente, fui confrontado com o mesmo problema, mas no meu caso, lembro-me muito bem da minha senha, mas ela continuou me dando o mesmo erro. Eu tentei tantas soluções, mas ainda assim nenhuma ajudou, então eu tentei isso

mysql -u root -p 

após o que pede uma senha como esta

Enter password: 

e então digitei a senha que usei. Isso é tudo

XY-JOE
fonte
3
Engraçado que isso ajudou após dias de pesquisa.
precisa saber é o seguinte
Bom saber @girish_vr
XY-JOE
Trabalhou para mim! Minha versão do mysql-server é: Versão do servidor: 8.0.13 MySQL Community Server - GPL
kaspiotr 18/18
Este ajudou, o que é tão incrivelmente estúpido no lado do MySQL que ainda não consigo acreditar.
Wscourge #
39

Na inicialização inicial do servidor, acontece o seguinte, uma vez que o diretório de dados do servidor está vazio:

  • O servidor foi inicializado.
  • O certificado SSL e os arquivos de chave são gerados no diretório de dados.
  • O plug-in validate_password está instalado e ativado.
  • A conta de superusuário 'root' @ 'localhost' é criada. A senha do superusuário é definida e armazenada no arquivo de log de erros.

Para revelá-lo, use o seguinte comando:

shell> sudo grep 'temporary password' /var/log/mysqld.log

Altere a senha root assim que possível, efetuando login com a senha temporária gerada e defina uma senha personalizada para a conta do superusuário:

shell> mysql -u root -p #Login to root user with some password

mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass5!'; 
Lahiru
fonte
16
Isso parecia promissor, mas não funciona para mim. Quando eu corro sudo grep 'temporary password' /var/log/mysqld.logeu recebo/var/log/mysqld.log: No such file or directory
Eric Hepperle - CodeSlayer2010
4
Tente sudo grep 'temporary password' /var/log/mysql/error.log. A solução @Lahiru funcionou para mim.
Artemisian
17
Tentei sudo grep 'senha temporária' /var/log/mysql/error.log, mas ele não retorna nada.
Apr
2
Tente shell> sudo grep 'password' /var/log/mysql/error.log. Trabalhou para mim, mas eu recebo: root @ localhost é criado com uma senha vazia! Por favor, considere desativar a opção --initialize-insecure. Minha versão mysql é: Ver 8.0.13 para Linux em x86_64 (MySQL Community Server - GPL)
kaspiotr
1
@ EnginYilmaz Por que você sugere um comando mysql quando o problema é que o mysql não está acessível?
R-obert 28/04
34

se o problema persistir, tente forçar a alteração do passe

/etc/init.d/mysql stop

mysqld_safe --skip-grant-tables &

mysql -u root

Configurar nova senha de usuário root do MySQL

use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;

Pare o servidor MySQL:

/etc/init.d/mysql stop

Inicie o servidor MySQL e teste-o:

mysql -u root -p
Yasin Hassanien
fonte
1
Obrigado. ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)também estava atormentando meu servidor. 'mysqld_safe' também falhou até que eu fiz um 'killall mysqld' APÓS seu Passo 1.
Marcos
Por favor, NÃO dessa maneira! A resposta de @ Divz é mais segura. Citando o documento sobre --skip-grant-tables: Isso permite que qualquer pessoa se conecte sem uma senha e com todos os privilégios [...] Como isso é inseguro, [...] use --skip-grant-tablesem conjunto com --skip-networkingpara impedir a conexão de clientes remotos. Ah, e também, este não funcionou para mim. É por isso que eu vim aqui: p
Balmipour 10/09/2015
2
Está me dando: ERRO 1054 (42S22): coluna desconhecida 'senha' na 'lista de campos'
MD. Mohiuddin Ahmed
Verifique resposta por @Anshu é a maneira mais segura de lidar com isso #
Mugoma J. Okomba
1
@ MD.MohiuddinAhmed Você deve estar usando a versão mais recente do mysql-server. Consulte esta resposta: stackoverflow.com/a/31122246/6242649
Udayraj Deshmukh
32

Isso acontece quando sua senha está ausente.

Etapas para alterar a senha quando você se esquecer:

  1. Pare o servidor MySQL (no Linux):

    sudo systemctl stop mysql
  2. 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 seu terminal e executar #mysql -u root, não solicitará senha.

    Se você receber um erro como o abaixo:

    2018-02-12T08: 57: 39.826071Z O diretório mysqld_safe '/ var / run / mysqld' para o
    arquivo de soquete UNIX não existe. mysql -u root ERRO 2002 (HY000): Não é possível conectar ao servidor MySQL local através do soquete
    '/var/run/mysqld/mysqld.sock' (2) [1] + Saída 1

  3. Crie o diretório de serviço do MySQL.

    sudo mkdir /var/run/mysqld

    Dê ao usuário do MySQL permissão para gravar no diretório de serviço.

    sudo chown mysql: /var/run/mysqld
  4. Execute o mesmo comando na etapa 2 para executar o mysql em segundo plano.

  5. Execute mysql -u root e você obterá o console mysql sem digitar a senha.

    Execute estes comandos

    FLUSH PRIVILEGES;

    Para MySQL 5.7.6 e mais recente

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

    Para MySQL 5.7.5 e mais antigo

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

    Se o comando ALTER USER não funcionar, use:

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

Agora saia

  1. Para parar a instância iniciada manualmente

    sudo kill `cat /var/run/mysqld/mysqld.pid`
  2. Reinicie o mysql

    sudo systemctl start mysql
Sameer Kumar Choudhary
fonte
2
No meu caso, eu tenho que modificar a Etapa 6 comosudo kill `sudo cat /var/run/mysqld/mysqld.pid`
kolunar
1
Este é o que funcionou para mim. Na etapa 5, 1. use USER 2. Para alterar a senha, use -> update user set authentication_string = PASSWORD ("password") em que User = 'root';
Bikram
1
Esta é a melhor solução que eu pude descobrir. Usando "5.7.26 MySQL Community Server (GPL)" no macOS Mojave no modelo MBP '15. Eu tive que parar o Mysql do System Preference e, em seguida, segui as etapas 2 e 5. E então tive que interromper o processo MySQL procurando o PID usando ps -ef | grep mysql.
Cspider 15/05/19
12

Me deparei com esse problema muito chato e encontrei muitas respostas que não funcionaram. A melhor solução que encontrei foi desinstalar completamente o mysql e reinstalá-lo. Na reinstalação, você define uma senha root e isso corrige o problema.


sudo apt-get purge mysql-server mysql-client mysql-common mysql-server-core-5.5 mysql-client-core-5.5
sudo rm -rf /etc/mysql /var/lib/mysql
sudo apt-get autoremove
sudo apt-get autoclean

Encontrei esse código em outro lugar, portanto não aceito crédito por ele. Mas funciona. Para instalar o mysql depois de desinstalá-lo, acho que o oceano digital tem um bom tutorial. Confira minha essência para isso.
https://gist.github.com/JamesDaniel/c02ef210c17c1dec82fc973cac484096

JamesD
fonte
12

Estou usando o Ubuntu-16.04: mysql instalado - 5.7. Eu tive o mesmo problema: Login negado para o usuário root.

Tentei as etapas abaixo:

  1. dpkg --get-selections | grep mysql (para obter a versão do mysql).

  2. dpkg-reconfigure mysql-server-5.7

  3. mysql -u root -p

Sem -p, isso não solicita a senha. Depois de entrar, você pode criar um usuário com uma senha, seguindo as etapas:

CREATE USER 'your_new_username'@'your-hostname' IDENTIFIED BY 'your-password';

GRANT ALL PRIVILEGES ON *.* to 'your_new_username'@'your-hostname' WITH GRANT OPTION;

Saia da raiz e faça login a partir do que você deu acima.

mysql -u <your_new_username> -p

Por alguma razão, apenas digitar o mysql não funciona. EM ABSOLUTO. Sugiro criar um hábito de usar mysql -u <name> -p.

Nikhil Rushmith
fonte
8

basta entrar no terminal

mysql -u raiz -p. do que ele pedirá uma senha para você

Vahap Gencdal
fonte
8

Se nenhuma das outras respostas funcionar para você e você recebeu este erro:

mysqld_safe Logging to '/var/log/mysql/error.log'.
mysqld_safe Directory '/var/run/mysqld' for UNIX socket file don't exists.
[1]+  Exit 1                  sudo mysqld_safe --skip-grant-tables

Siga os comandos abaixo passo a passo até redefinir sua senha:

# Stop Your Server First
sudo service mysql stop

# Make MySQL service directory.
sudo mkdir /var/run/mysqld

# Give MySQL permission to work with the created directory
sudo chown mysql: /var/run/mysqld

# Start MySQL, without permission and network checking
sudo mysqld_safe --skip-grant-tables --skip-networking &

# Log in to your server without any password.
mysql -u root mysql


# Update the password for the root user:
UPDATE mysql.user SET authentication_string=PASSWORD('YourNewPasswordBuddy'), plugin='mysql_native_password' WHERE User='root' AND Host='localhost';

#if you omit (AND Host='localhost') section, it updates the root pass regardless of its host

FLUSH PRIVILEGES;
EXIT;

#kill mysqld_safe process
sudo service mysql restart

#Now you can use your new password to login to your Server
mysql -u root -p

#take note for remote access you should create a remote user and then grant all privileges to that remote user
Mehdi
fonte
Esta é a resposta correta para o mysql 5.7 no Ubuntu 18.04 LTS também. Obrigado
Dhiraj
Para todo o endereço remoto: sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf -> bind-address = 0.0.0.0
Mehdi
7

Eu instalei o MySQL como usuário root ( $SUDO) e tem esse mesmo problema
aqui é como eu fixo ele-

  1. $ sudo cat /etc/mysql/debian.cnf

Isso mostrará detalhes como-

# Automatically generated for Debian scripts. DO NOT TOUCH! [client] host = localhost user = debian-sys-maint password = GUx0RblkD3sPhHL5 socket = /var/run/mysqld/mysqld.sock [mysql_upgrade] host = localhost user = debian-sys-maint password = GUx0RblkD3sPhHL5 socket = /var/run/mysqld/mysqld.sock

Acima, podemos ver a senha, apenas vamos usá-la(GUx0RblkD3sPhHL5) no prompt

  1. mysql -u debian-sys-maint -p Enter password:
    agora forneça a senha ( GUx0RblkD3sPhHL5 ).

  2. Agora exitno MySQL e faça o login novamente como-

    mysql -u root -p Enter password:
    Agora forneça uma nova senha. É tudo, temos uma nova senha para outros usos.

Funcionou para mim, espero ajudá-lo também!

S.Yadav
fonte
6

Por favor, leia a documentação oficial: Mysql: Como redefinir a senha root

Se você tiver acesso ao terminal:

MySQL 5.7.6 e posterior:

$ mysql
mysql> ALTER USER 'root'@'localhost' IDENTIFIED BY 'MyNewPass';

MySQL 5.7.5 e versões anteriores:

$ mysql
mysql> SET PASSWORD FOR 'root'@'localhost' = PASSWORD('MyNewPass');
d.danailov
fonte
1
Dá: ERRO 1131 (42000): Você está usando o MySQL como usuário anônimo e usuários anônimos não têm permissão para alterar senhas
MD. Mohiuddin Ahmed
1
É normal. Seu usuário é anônimo. Você precisa executar> mysql -u {your_username}
d.danailov
3

Estou usando o mysql-5.7.12-osx10.11-x86_64.dmg no Mac OSX

O processo de instalação configura automaticamente uma senha temporária para o usuário root. Você deve salvar a senha. A senha não pode ser recuperada.

Siga as instruções

  1. Vamos para cd /usr/local/mysql/bin/
  2. Digite a senha temporária (que seria algo como "tsO07JF1 => 3")
  3. Você deve receber o prompt do mysql>.
  4. Execute, SET PASSWORD FOR 'root'@'localhost' = PASSWORD('{YOUR_PASSWORD}');se você deseja definir sua senha: "root", o comando seria:SET PASSWORD FOR 'root'@'localhost' = PASSWORD('root');
  5. Corre ALTER USER 'root'@'localhost' PASSWORD EXPIRE NEVER;
  6. Corre exit
  7. Corre ./mysql -u root -p
  8. Digite sua senha. No meu caso, eu digitaria "root" (sem aspas)
  9. Isso é tudo.

Por conveniência, você deve adicionar "/usr/local/mysql/bin"ao seu PATH

Agora, de qualquer lugar, você pode digitar ./mysql -u root -pe digitar a senha, e você receberá o prompt do mysql>.

Espero que ajude.

tausiq
fonte
3

A resposta pode parecer boba, mas depois de perder horas, é assim que eu faço isso funcionar

mysql -u root -p

Recebi a mensagem de erro

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Mesmo que eu estivesse digitando a senha correta (a senha temporária que você obtém quando instala o mysql)

Acertei quando digitei a senha quando o prompt da senha estava piscando

Amit Kumar
fonte
2

se o problema persistir, tente forçar a alteração do passe

Pare o servidor MySQL (no Linux):

/etc/init.d/mysql stop

Pare o servidor MySQL (no Mac OS X):

mysql.server stop

Inicie o daemon mysqld_safe com --skip-grant-tables

mysqld_safe --skip-grant-tables &
mysql -u root

Configurar nova senha de usuário root do MySQL

use mysql;
update user set password=PASSWORD("NEW-ROOT-PASSWORD") where User='root';
flush privileges;
quit;

Pare o servidor MySQL (no Linux):

/etc/init.d/mysql stop

Pare o servidor MySQL (no Mac OS X):

mysql.server stop

Inicie o serviço do servidor MySQL e teste para fazer login pela raiz:

mysql -u root -p
Max Yao
fonte
1

Por senha padrão, será nulo; portanto, você deve alterar a senha seguindo as etapas abaixo.

conectar ao mysql

root # mysql

Use o mysql

mysql> update user set password = PASSWORD ('root') onde User = 'root'; Por fim, recarregue os privilégios:

privilégios do mysql> flush; mysql> sair

Rizwan Basheer
fonte
1

Apenas uma linha e resolveu meu problema.

sudo dpkg-reconfigure mysql-server-5.5
Satyendra Sahani
fonte
1

No Ubuntu 16.04 (MySQL versão 5.7.13), consegui resolver o problema com as etapas abaixo:

  1. Siga as instruções na seção B.5.3.2.2 Redefinindo a senha root: Sistemas de Unix e Unix-Like Systems Manual de referência do MySQL 5.7

  2. Quando tentei #sudo mysqld_safe --init-file = / home / me / mysql-init e falhou. O erro estava em /var/log/mysql/error.log

    2016-08-10T11: 41: 20.421946Z 0 [Nota] A execução do arquivo init_ / home / me / mysql / mysql-init 'foi iniciada. 2016-08-10T11: 41: 20.422070Z 0 [ERRO] / usr / sbin / mysqld: O arquivo '/ home / me / mysql / mysql-init' não foi encontrado (código de erro: 13 - permissão negada) 2016-08-10T11: 41: 20.422096Z 0 [ERRO] Interrompendo

A permissão de arquivo do mysql-init não era o problema, é necessário editar a permissão do apparmor

  1. Editar por #sudo vi /etc/apparmor.d/usr.sbin.mysqld

    ....
      /var/log/mysql/ r,
      /var/log/mysql/** rw,
    
    
    # Allow user init file
      /home/pranab/mysql/* r,
    
      # Site-specific additions and overrides. See local/README for details.
      #include <local/usr.sbin.mysqld>
    }
  2. #Sudo /etc/init.d/apparmor recarrega

  3. Inicie o mysqld_safe novamente, tente a etapa 2 acima. Verifique /var/log/mysql/error.log, verifique se não há erro e se o mysqld foi iniciado com êxito

  4. Execute #mysql -u root -p

    Digite a senha:

Digite a senha que você especificou no mysql-init. Você deve conseguir fazer login como root agora.

  1. Shutdown mysqld_safe por #sudo mysqladmin -u root -p shutdown

  2. Inicie o modo normal do mysqld por #sudo systemctl start mysql

codegen
fonte
1

Se você tiver o MySQL como parte de uma imagem do Docker (por exemplo, na porta 6606) e uma instalação do Ubuntu (na porta 3306), especificar a porta não é suficiente:

mysql -u root -p -P 6606

jogará:

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

como ele está tentando se conectar ao localhost por padrão, a especificação do seu IP local corrige o problema:

mysql -u root -p -P 6606 -h 127.0.0.1
botris
fonte
0

Nas versões recentes do MySQL, não há passwordna mysql.usertabela.

Então você precisa executar ALTER USER. Coloque este comando de uma linha no arquivo.

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

E execute-o como arquivo init (como usuário root ou mysql)

mysqld_safe --init-file=/home/me/mysql-init &

O servidor MySQL precisa ser parado para iniciar mysqld_safe.

Além disso, pode haver um problema com as permissões do apparmor para carregar este arquivo init. Leia mais aqui https://blogs.oracle.com/jsmyth/entry/apparmor_and_mysql

Vladimir Kovalchuk
fonte
0

Se você ainda não definiu a senha, execute mysql -uroot: funciona para mim.

ahbon
fonte
0

No Mac, se você tiver um problema ao fazer login com a primeira senha que recebeu na instalação, talvez você possa simplesmente matar o processo mysql e tentar.

Então: 1- execute o seguinte comando para encontrar o PID do mysql:

ps -aef | grep mysql | grep -v grep

2- mate o processo:

kill -15 [process id] 

Então você pode fazer login com a senha inicial usando este comando:

mysql -uroot -p

O qual solicita que você digite sua senha. Basta digitar a senha inicial.

Maryam Zakani
fonte
0

Eu tive uma questão semelhante:

ERRO 1045 (28000): acesso negado para o usuário 'root' @ 'localhost' (usando a senha: NO)

Mas no meu caso, a causa foi realmente boba. Copiei o comando de um documento do Word e o problema era que um hífen não tinha o código ASCII 2D, mas o Unicode E28093.

Caminho errado:

mysql -u root pxxxx

Caminho certo:

mysql -u root -pxxxx

Ambos têm a mesma aparência, mas não são iguais (experimente, copie e cole substituindo sua senha).

Diante desse tipo de erro, a recomendação é tentar digitar o comando em vez de copiar e colar.

cesargastonec
fonte
0

Tentei com a resposta correta do @Lahiru, mas não funcionou com o servidor MySQL versão 8.0.16 (Comunidade) no macOS Mojave.

Segui as instruções de Sameer Choudhary acima e com alguns ajustes, consegui alterar a senha do root e habilitar o acesso root do host local.

Atualização: tudo isso não é necessário, se você estiver instalando no Mac OS usando o homebrew: "brew install mysql"

cspider
fonte
0

Eu tive esse problema com o Ubuntu 18.04 LTS e o Mysql Server versão 5.7.27-0ubuntu0.18.04.1 (Ubuntu).

Minha solução foi (executando como root com sudo -i)

mysql <<-EOSQL
  use mysql;
  update user set plugin="mysql_native_password" where User='root';
  FLUSH PRIVILEGES ;
EOSQL

mysqladmin -u root password new_pw
Frank Hintsch
fonte
0

Eu também me deparei com o mesmo problema, o que fiz foi

1) Abra seu cmd

2) Navegue para C: \ Arquivos de Programas \ MySQL \ MySQL Server 8.0 \ bin> (onde o MySQL Server 8.0 pode ser diferente dependendo do servidor que você instalou)

3) Em seguida, coloque o seguinte comando mysql -u root -p

4) Solicitarei a senha ... simplesmente pressione enter, pois às vezes a senha que você digitou durante a instalação é alterada para em branco.

agora você pode simplesmente acessar o banco de dados

Esta solução funcionou para mim na plataforma Windows

Aman-D
fonte
0

Enquanto a resposta principal (w / mysqladmin) funcionava no mac 10.15, não funcionava no ubuntu. Então tentei muitas das outras opções, incluindo inicialização segura para mysql, nenhuma funcionou. Adicionando assim uma nova resposta.

Pelo menos para a versão que eu obtive 5.7.28-0ubuntu0.18.04.4respostas estavam faltando IDENTIFIED WITH mysql_native_password. 5.7.28 é o padrão no LTS atual e, portanto, deve ser o padrão para a maioria dos novos sistemas novos (até 20.04 o LTS sair).

Encontrado: https://www.digitalocean.com/community/questions/can-t-set-root-password-mysql-server e agora aplicado

ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'your_pass_here';

o que funciona.

arntg
fonte
0

O erro que eu enfrentei foi

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: NO)

houve um problema com a porta em execução.

Por padrão, o mysql está sendo executado port 3306.

Você pode verificar isso executando

  • em um sistema de 32 bits:

    sudo /opt/lampp/manager-linux.run

  • em um sistema de 64 bits:

    sudo /opt/lampp/manager-linux-x64.run

e clique no configurebotão

painel de controle xampp

No meu caso, a porta estava rodando no 3307 e o comando que usei foi

mysql -u root -p -P 3307 -h 127.0.0.1
Rochana Pathiraja
fonte
0

No meu caso, eu estava tentando passar um comando para um contêiner. Nesse caso, apenas a primeira palavra foi interpretada. Verifique se você não está executando:

mysql

em oposição a:

mysql -uroot -ppassword schemaname

talvez tente citar:

'mysql -uroot -ppassword schemaname'
Nae
fonte