Como lidar com o MySql ERROR 1133 (42000): Não consegue encontrar nenhuma linha correspondente na tabela do usuário?

4

Eu recebo constantemente a seguinte mensagem de erro:

  

1045 Não é possível efetuar login no servidor MySQL

Eu tentei o seguinte:

  1. sudo service mysql stop (foi bem)

  2. sudo /usr/sbin/mysqld --skip-grant-tables --skip-networking & (foi bem)

  3. mysql -u root (foi bem)

  4. FLUSH PRIVILEGES; (foi bem)

  5. SET PASSWORD FOR root@'localhost' = PASSWORD('password'); (recebo o seguinte erro :)

    ERROR 1133 (42000): Can't find any matching row in the user table
    
    mysql> select User from mysql.user;
    
    +------------------+
    
    | User             |
    
    +------------------+
    
    | linux            |
    
    | root             |
    
    | debian-sys-maint |
    
    +------------------+
    
    3 rows in set (0.00 sec)
    
por rf2632 10.01.2013 / 12:09

1 resposta

0

Quando você faz

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

você está atualizando a senha de um usuário com o nome root e a localização localhost . A partir do resultado da sua tabela de usuários, concluo que NÃO existe essa linha. Parece haver uma linha com root e 127.0.0.1 , portanto, você provavelmente precisará dessa linha.

    SET PASSWORD FOR root@'127.0.0.1' = PASSWORD('password'); 

Por favor, tente entender qual é a diferença entre as duas linhas e por que isso deve ser feito em vez da primeira: espero que isso ajude a ver o que estava errado e por que você deveria fazer isso, pois pode não ser on: as adições de comentários seriam muito mais fáceis de ler se estivessem na questão e formatadas corretamente: D

    
por Nanne 22.01.2013 / 16:42

Tags