MySQL - Erro 1045: Access denied for user: 'root@localhost'

Publicado por Darlan da Silva Encarnação em 04/06/2012

[ Hits: 136.505 ]

 


MySQL - Erro 1045: Access denied for user: 'root@localhost'



Olá pessoal do VOL.

Tive muitos problemas com esta propriedade do MySQL, pois, por padrão após sua instalação, vem com sua senha desconfigurada.

De início, consigo logar normalmente, porém, depois de algum tempo ele começa a dar o seguinte erro:
ERROR 1045: Access denied for user: ' root@localhost' (Using password: NO)

Bom, para resolvermos isso, primeiramente temos que alterar a senha de root do MySQL:

1. Pare o MySQL:

# /etc/init.d/mysql stop

2. Iniciei o MySQL, sem senha:

# mysqld_safe --skip-grant-tables

3. Conecte ao MySQL, usando:

mysql client - mysql -u root

4. No prompt do MySQL, execute:

mysql> use mysql
mysql> update user set password=PASSWORD("coloque-sua-nova-senha-de-root") where User='root';
mysql> flush privileges;
mysql> quit

5. Pare novamente o MySQL:

# /etc/init.d/mysql stop

6. Iniciei novamente o MySQL:

# /etc/init.d/mysql start

7. Faça o teste:

mysql -u root -p

Bom, fazendo estes procedimentos, sua nova senha de root para o banco de dados estará configurada.

Mas, se tentar acessar sem senha, acontecerá o mesmo erro:
ERROR 1045: Access denied for user: ' root@localhost' (Using password: NO)

Resolução definitiva do erro

1. Entre novamente com no MySQL com a senha que setamos anteriormente:

mysql -u root -p

2. Execute o comando abaixo:

mysql> set password for root@localhost=password('');

3. Tente entrar sem a senha no banco de dados, digite:

mysql


Espero ter ajudado pessoal. (:

Outras dicas deste autor

Configuração de Client VPN Cisco (Group Authentication)

Desativar o Ctrl+Alt+Del (reboot)

Nessus - Vulnerability Scan

Atalhos no teclado para o console

Definindo a inicialização em modo gráfico ou texto no Red Hat

Leitura recomendada

Como alterar a base de dados padrão do MySQL

Mysqldump no cron do Slackware

Segurança básica no MySQL

Erro 2002 (HY000) ao conectar ao MySQL

Insalando MySQL-WorkBench no Ubuntu 12.04

  

Comentários
[1] Comentário enviado por rodrigo_leonel em 04/06/2012 - 15:23h

Se você esta usando esse MySQL somente internamente, sem acesso externo beleza, mas deixar sem senha eu acho um tanto quanto arriscado.

[2] Comentário enviado por darlan.ti em 06/07/2012 - 18:43h

Sim, vale a observação Rodrigo. Tks

[3] Comentário enviado por lionux em 07/10/2013 - 20:16h

Darlan, acho que deu erro pra mim


pois ao dar o comando
# mysqld_safe --skip-grant-tables

apareceu

mysqld_safe Can't log to error log and syslog at the same time. Remove all --log-error configuration options for --syslog to take effect.
131007 20:07:30 mysqld_safe Logging to '/var/log/mysql/error.log'.
131007 20:07:30 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

[4] Comentário enviado por geanfelip3 em 26/02/2014 - 16:10h

no comando mysqld_safe --skip-grant-tables
dá o seguinte:
140226 15:58:50 mysqld_safe Logging to syslog.
140226 15:58:50 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql

dai fica assim, como se tivesse iniciando mas sem dá nenhum sinal. Demora muito mesmo ou isso não é assim?

[5] Comentário enviado por removido em 30/10/2014 - 10:47h

Estou com o mesmo problema...

[6] Comentário enviado por nikaway em 24/09/2015 - 15:08h


[3] Comentário enviado por lionux em 07/10/2013 - 20:16h

Darlan, acho que deu erro pra mim


pois ao dar o comando
# mysqld_safe --skip-grant-tables

apareceu

mysqld_safe Can't log to error log and syslog at the same time. Remove all --log-error configuration options for --syslog to take effect.
131007 20:07:30 mysqld_safe Logging to '/var/log/mysql/error.log'.
131007 20:07:30 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql


Eu também estou com o mesmo problema ao executar esse comando!
Olha a minha mensagem!

150924 14:01:12 mysqld_safe Can't log to error log and syslog at the same time. Remove all --log-error configuration options for --syslog to take effect.
150924 14:01:12 mysqld_safe Logging to '/var/log/mysql/error.log'.
150924 14:01:12 mysqld_safe A mysqld process already exists

[7] Comentário enviado por Clicnet em 04/02/2016 - 00:58h

Também estou com o mesmo com o mesmo erro reportado pelo nikaway.

No meu caso fica aparecendo esse erro todos os dias independente de ter alguém logado no banco ou não.

[8] Comentário enviado por tedbernacchi em 11/01/2017 - 00:19h

Tbem estou com o mesmo problema! :(

[9] Comentário enviado por raviassis em 19/06/2017 - 05:17h


[6] Comentário enviado por nikaway em 24/09/2015 - 15:08h


[3] Comentário enviado por lionux em 07/10/2013 - 20:16h

Darlan, acho que deu erro pra mim


pois ao dar o comando
# mysqld_safe --skip-grant-tables

apareceu

mysqld_safe Can't log to error log and syslog at the same time. Remove all --log-error configuration options for --syslog to take effect.
131007 20:07:30 mysqld_safe Logging to '/var/log/mysql/error.log'.
131007 20:07:30 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql


Eu também estou com o mesmo problema ao executar esse comando!
Olha a minha mensagem!

150924 14:01:12 mysqld_safe Can't log to error log and syslog at the same time. Remove all --log-error configuration options for --syslog to take effect.
150924 14:01:12 mysqld_safe Logging to '/var/log/mysql/error.log'.
150924 14:01:12 mysqld_safe A mysqld process already exists



Pessoal, sobre isso eu realizei os seguintes passos (gambiarra, não sei o porque de ter funcionado).
Quando aparece a mensagem "131007 20:07:30 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql" e fica parado, eu fechei o terminal e abri novamente, realizei o passo 3 "$ mysql client - mysql -u root". logo apos eu digitei "$ mysql -i", e voltei a realizar o tutorial a partir do passo 4.

Não sei explicar porque funcionou. Espero ter ajudado :)

[10] Comentário enviado por Carlos_Cunha em 18/01/2018 - 12:25h


[3] Comentário enviado por lionux em 07/10/2013 - 20:16h

Darlan, acho que deu erro pra mim


pois ao dar o comando
# mysqld_safe --skip-grant-tables

apareceu

mysqld_safe Can't log to error log and syslog at the same time. Remove all --log-error configuration options for --syslog to take effect.
131007 20:07:30 mysqld_safe Logging to '/var/log/mysql/error.log'.
131007 20:07:30 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql



Isso provavelmente esta ocorrendo por que vc tem duas instancias rodando, e isso não pode ocorrer:

error log and syslog at the same time


Pare o Mysql(dependendo a sua versão de SO):
/etc/init.d/mysql stop
systemctl stop mysql

Valide que esteja(Se voltar um numero(pid) é pq ainda esta rodando)
pgrep mysql

Mate ele:
kill $(pgrep mysql)
ou(só se necessario)
kill -9 $(pgrep mysql)

Ai siga o procedimento....


Caso mesmo trocando a senha ainda tenha o erro:

Ao invés disso:
update user set password=PASSWORD("coloque-sua-nova-senha-de-root") where User='root';

Faça isso:
UPDATE user SET Password=password('xyz') WHERE User='root'; FLUSH PRIVILEGES; exit;



Para Mysql/MariaDB(validando como informei)
Inicie e pronto...




Contribuir com comentário