Acesso negado para o usuário 'root @ localhost' (usando senha: NÃO)

115

Sou novo no MySQL, estou tentando executar o WordPress na área de trabalho do Windows e ele precisa do MySQL.

Eu instalo tudo o Web Platform Installerque é fornecido pela Microsoft. Eu nunca defini uma senha de root para o MySQL e na etapa final da instalação do WordPress, ele pede uma senha do servidor MySQL.

Qual é a senha padrão do root (se houver) e como alterá-la?

Eu tentei:

mysql -u root password '123'

Mas isso me mostra:

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

Depois disso, tento:

mysql -u root -p

No entanto, ele pede uma senha que eu não tenho.


Atualização : como Bozho sugeriu, fiz o seguinte:

  1. Eu parei o serviço MySQL dos serviços do Windows
  2. CMD aberto
  3. Mudou a localização para c: \ arquivos de programas \ mysql \ bin
  4. Executou o comando abaixo

    mysqld --defaults-file="C:\\program files\\mysql\\mysql server 5.1\\my.ini" --init-files=C:\\root.txt

  5. O comando foi executado com um aviso sobre o conjunto de caracteres que mencionei abaixo

  6. Eu inicio o serviço MySQL nos serviços do Windows
  7. Eu escrevo na linha de comando

    mysql -u root -p EnterPassword: 123 // 123 was the password

  8. A linha de comando mostra o seguinte erro

    Access denied for user 'root@localhost' (using password:**YES**)

Como faço para resolver isso? Estou esperando ouvir de você.

Nasser Hadjloo
fonte
1
O primeiro comando está errado, deveria ser -pou --password, mas não password. É por isso que o mysql responde com USING PASSWORD NO.
Konerak
3
Ninguém parece ter lhe dado a resposta óbvia. A senha para o rootID do usuário fica em branco após a instalação inicial. Então é só fazer mysql -u root -pe depois apertar enter, ou seja, deixe a senha em branco. Em seguida, é claro, coloque uma senha no rootID do usuário.
RiggsFolly
1
@RiggsFolly não, não funciona! senha em branco me dá acesso negado!
J86 de
Desejo adicionar um comentário porque não tenho certeza se a resposta aceita é a correta. Para mim, digitar mysql -u root -p e depois solicitar a senha, forneça a senha correta (aquela definida na instalação) funcionou. Em vez disso, provar o nome de um banco de dados para o -p com um banco de dados que eu sei que existe não funcionou.
Carmine Tambascia

Respostas:

48

Você pode redefinir sua senha de root . Lembre-se de que não é aconselhável usar root sem senha.

Bozho
fonte
@Bozho - Eu sigo a instrução ae crio um arquivo texto e o chamo a partir do comando mencionado, depois disso eu enfrento com 100608 [warning] --default-character-set is deprecated and will be removed in a future release. please use --character-set-server instead.------------------------ -------- e finalmente quando eu inicio meu serviço mysql novamente eu me deparo com o erro exato, mas desta vez com (using password:yes)o que devo fazer?
Nasser Hadjloo
@ Bozo - Observe que não consegui executar seu comando com o executei mysqldt-ntpor mysqldt -ntNa verdade, o primeiro não é reconhecível para cmd. Estou esperando ouvir de você.
Nasser Hadjloo
@Bozho - Eu atualizei minha pergunta com o bug. obrigado pelo seu tempo.
Nasser Hadjloo
@Bozho - existe uma maneira de atualizar / personalizar meus erros do mysql? ** Atualize "Acesso negado para o usuário 'root @ localhost' (usando senha: NÃO)" para "Acesso negado para o usuário 'meunome @ localhost' (usando senha: NÃO)" **
Hitesh
81

para este tipo de erro; você apenas precisa definir uma nova senha para o usuário root como administrador. siga as etapas a seguir:

[root ~]# mysql -u root
ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password:NO)
  1. Pare o serviço / daemon do mysql em execução

    [root ~]# service mysql stop   
    mysql stop/waiting
  2. Inicie o mysql sem quaisquer privilégios usando a seguinte opção; Esta opção é usada para inicializar e não usa o sistema de privilégios do MySQL.

    [root ~]# mysqld_safe --skip-grant-tables &

Neste momento, o terminal parecerá estar parado . Deixe isso ser, e use o novo terminal para as próximas etapas.

  1. entre no prompt de comando do mysql

    [root ~]# mysql -u root
    mysql> 
  2. Corrija a configuração de permissão do usuário root;

    mysql> use mysql;
    Database changed
    mysql> select * from  user;
    Empty set (0.00 sec)
    mysql> truncate table user;
    Query OK, 0 rows affected (0.00 sec)
    mysql> flush privileges;
    Query OK, 0 rows affected (0.01 sec)
    mysql> grant all privileges on *.* to root@localhost identified by 'YourNewPassword' with grant option;
    Query OK, 0 rows affected (0.01 sec)

* se você não quiser nenhuma senha ou melhor, uma senha vazia

    mysql> grant all privileges on *.* to root@localhost identified by '' with grant option;
    Query OK, 0 rows affected (0.01 sec)*
    mysql> flush privileges;
    Query OK, 0 rows affected (0.00 sec)

Confirme os resultados:

    mysql> select host, user from user;
+-----------+------+
| host      | user |
+-----------+------+
| localhost | root |
+-----------+------+
1 row in set (0.00 sec)
  1. Saia do shell e reinicie o mysql no modo normal.

    mysql> quit;
    [root ~]# kill -KILL [PID of mysqld_safe]
    [root ~]# kill -KILL [PID of mysqld]
    [root ~]# service mysql start
  2. Agora você pode fazer o login com sucesso como usuário root com a senha que você definiu

     [root ~]# mysql -u root -pYourNewPassword 
     mysql> 
user2977819
fonte
2
Pressione Enter após "[root ~] # mysqld_safe --skip-grant-tables &" e abra outro terminal para inserir "[root ~] # mysql -u root"
Liuda
Eu encontrei esse problema, e fiz muito, apenas esqueça de reiniciar os serviços de db ... muito obrigado!
Bruce Lee
3
Na etapa 3, receboERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2)
MrMartin
4
@MrMartin, crie esse diretório sudo mkdir -p /var/run/mysqlde dê permissão para elesudo chown mysql:mysql /var/run/mysqld
niceday
essa é a resposta que me ajudou muito!
Jones G
17

1) Você pode definir a senha do root invocando o console MySQL. Localiza-se em

C:\wamp\bin\mysql\mysql5.1.53\bin por padrão.

Vá para o diretório e digite MySQL. em seguida, defina a senha da seguinte forma.

    > SET PASSWORD FOR root@localhost = PASSWORD('new-password');

2) Você pode configurar o aplicativo phpmyadmin do wamp para o usuário root editando

C:\wamp\apps\phpmyadmin3.3.9\config.inc.php 

Nota: - se você estiver usando o xampp, o arquivo estará localizado em

C:\xampp\phpMyadmin\config.inc.php

Se parece com isso:

        $cfg['Servers'][$i]['verbose'] = 'localhost';
        $cfg['Servers'][$i]['host'] = 'localhost';
        $cfg['Servers'][$i]['port'] = '';
        $cfg['Servers'][$i]['socket'] = '';
        $cfg['Servers'][$i]['connect_type'] = 'tcp';
        $cfg['Servers'][$i]['extension'] = 'mysqli';
        $cfg['Servers'][$i]['auth_type'] = 'config';
        $cfg['Servers'][$i]['user'] = 'root';
        $cfg['Servers'][$i]['password'] = 'YOURPASSWORD';
        $cfg['Servers'][$i]['AllowNoPassword'] = false;

O erro "Acesso negado para o usuário 'root @ localhost' (usando senha: NÃO)" será resolvido quando você definir $cfg['Servers'][$i]['AllowNoPassword']como falso

Se você alterou em segredo a senha de 'root @ localhost', você deve fazer 2 coisas para resolver o erro "Acesso negado para o usuário 'root @ localhost'":

  1. se ['senha'] tiver aspas vazias como '' , coloque sua senha entre aspas.
  2. altere (usando a senha: NÃO) para (usando a senha: SIM)

Isso resolverá o erro.

Nota: phpmyadmin é uma ferramenta separada que vem com o wamp. Ele apenas fornece uma interface para o MySQL. se você mudar a senha do meu root sql, então você deve mudar as configurações do phpmyadmin. Normalmente o phpmyadmin é configurado como usuário root.

pássaro amarelo
fonte
não, você não pode .. mysql não iniciará: c: \ wamp64 \ bin \ mysql \ mysql5.7.23 \ bin> mysql ERROR 1045 (28000): Acesso negado para o usuário 'ODBC' @ 'localhost' (usando senha: NÃO)
Jaxx0rr
9

Eu estava recebendo o mesmo erro no capitão OS X El. Mysql versão 5.7. Consegui me conectar ao mysql com root depois de executar essas etapas.

Pare o servidor mysql

sudo mysql.server stop

Inicie o mysql em modo de segurança

sudo mysqld_safe --skip-grant-tables

Usando o mysqld, mude o banco de dados para mysql e atualize os detalhes do usuário 'root'.

show databases;
use mysql;
UPDATE mysql.user 
    SET authentication_string = PASSWORD('MyNewPass'), password_expired = 'N'
    WHERE User = 'root' AND Host = 'localhost';
exit;

Depois disso, mate o processo 'mysqld_safe' e inicie o mysql normalmente. Você deve ser capaz de fazer login no mysql usando root e uma nova senha. Documentos SQL para mais detalhes

Sushantkumar M
fonte
4

Simplesmente edite o my.iniarquivo no caminho C: \ xampp \ mysql \ bin. Basta adicionar:

skip-grant-tables

linha entre as linhas de # The MySQL server [mysqld]e port=3306. Em seguida, reinicie o servidor MySQL.

Parece:

Captura de tela

Ryan oscar
fonte
Quando faço isso, recebo outro errocommunications link failure
Ahmed Hussein
3

Certifique-se de que o serviço MySQL esteja sendo executado em sua máquina e siga as instruções do MySQL para configurar o root inicialmente (pesquise por 'windows' e você verá as etapas para configurar o root):

http://dev.mysql.com/doc/refman/5.1/en/default-privileges.html

sholsapp
fonte
Esta solução não funcionará para mim porque não tenho a senha necessária na segunda etapa.
Nasser Hadjloo
Isso é o que eu estava olhando quando enviei o link, tem certeza de que não funciona? Não vejo nenhuma referência à senha antiga. Para Windows, faça o seguinte: shell> mysql -u root mysql> SET PASSWORD FOR 'root' @ 'localhost' = PASSWORD ('newpwd'); mysql> SET PASSWORD FOR 'root'@'127.0.0.1' = PASSWORD ('newpwd'); mysql> SET PASSWORD FOR 'root' @ '%' = PASSWORD ('newpwd');
sholsapp de
1
Como disse antes, quando escrevo, mysql -u rootestou com problemas e não consigo fazer o login no mysql para executar a segunda linha. então, como usar este comando?
Nasser Hadjloo
3

Use mysql -u root -p Ele pedirá a senha, insira a senha e entre.

Vikash Kumar
fonte
Isso funcionou depois que o acesso dos usuários foi negado.
Shawn W
2

Outra solução se alguém obtiver o erro A senha especificada para a conta do usuário 'root' não é válida ou não conseguiu se conectar ao servidor de banco de dados também com a senha correta, é a seguinte

• No registro do Windows, exclua a chave reg mysql_pwd em HKCU \ Software \ Microsoft \ WebPlatformInstaller

• Desinstale a versão anterior do conector MySQL .NET

• Baixe e instale o conector MySql .NET mais recente .

Silverstorm
fonte
Verificar a senha e o nome do banco de dados funcionou para mim .. +1
Abhinav Dobhal
2

Para MySQL 5.7. Estas são as etapas abaixo:

Pare seu servidor MySQL completamente. Isso pode ser feito acessando a janela Serviços dentro do Windows XP e Windows Server 2003, onde você pode parar o serviço MySQL.

Abra o prompt de comando do MS-DOS usando "cmd" dentro da janela Executar. Dentro dele, navegue até a pasta bin do MySQL, como C: \ MySQL \ bin, usando o comando cd.

Execute o seguinte comando no prompt de comando: mysqld.exe -u root --skip-grant-tables

Deixe o prompt de comando atual do MS-DOS como está e abra uma nova janela do prompt de comando do MS-DOS.

Navegue até a pasta bin do MySQL, como C: \ MySQL \ bin usando o comando cd.

Digite mysql e pressione Enter.

Agora você deve ter o prompt de comando do MySQL funcionando. Digite use mysql; para que mudemos para o banco de dados "mysql".

Execute o seguinte comando para atualizar a senha:

atualizar usuário set authentication_string = senha ('1111') onde usuário = 'root';

Katie
fonte
1

Em seu código, substitua 'root' pelo nome de usuário do servidor e a senha pela senha do servidor. Por exemplo, se você tem um banco de dados e seus arquivos php no servidor http://www.example.com , obviamente, você terá que entrar neste site do servidor usando seu nome de usuário e senha.

Pir Fahim Shah
fonte
1

Se você estiver usando o XAMPP, vá para C:\xampp\phpMyAdmine abra a linha de config.inc.phplocalização $cfg['Servers'][$i]['password'] = ''e coloque sua senha lá.

Ajay Rawat
fonte
1

Para obter algumas informações, recebo um erro após alterar a senha:

Acesso negado para o usuário 'root' @ 'localhost' (usando senha: NÃO)

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

Em ambos os casos houve erro.

Mas depois disso eu tentei com

mysql -uroot -ppassword ao invés de

mysql -u root -p password -> com espaços entre -uroot e -ppassword então talvez se alguém tiver problemas, tente desta forma.

profiile_samir
fonte
0

Algumas vezes isso só acontece devido à instalação do Wamp ou alteração das opções de senha do usuário root. Pode-se usar privilégios -> root (usuário) e, em seguida, definir a opção de senha como NÃO para executar as coisas sem qualquer senha OU definir a senha e usá-la no aplicativo.

Sayyad
fonte
0
  1. Alterar a senha de config.inc.phppresente emC:\xampp\phpMyAdmin .
  2. Tipo mysql -u root -p no prompt de comando.
  3. Você será solicitado a inserir a senha. Digite a senha que você atualizou no config.inc.php.
user12682744
fonte
0

se você alterou a porta para uma porta fora do padrão, será necessário especificá-la:

$ connection = mysqli_connect ('localhost: 3308', 'root', '', 'loginapp');

Mitch
fonte
-3
mysqladmin -u root -p password

insira o seu current password

então

insira o seu new password

djrconcepts
fonte
1
A questão toda é que o OP não sabe a senha atual, porque ela nunca foi definida .
Nateowami
Eu sabia minha senha, mas tive problemas com o login com senha temporária. esta resposta funcionou para mim
Bernard