Código de erro: 1133. Não é possível ' encontrar qualquer linha correspondente na tabela do usuário

Estou lendo O “Relly “Aprendendo MySQL” e diz que você pode criar um usuário no MySQL fazendo exatamente isto:

mysql> GRANT ALL ON *.* TO "jill"@"%.invyhome.com" IDENTIFIED BY "the_password"; Query OK, 0 rows affected (0.01 sec) 

Mas se eu tentar fazer:

-> grant select on testgrounds.personas to ""@"localhost"; --> Error Code: 1133. Can"t find any matching row in the user table 

Mas é bem-sucedido se eu usar uma senha:

->grant select on testgrounds.personas to ""@"localhost" identified by "pass"; --> 0 row(s) affected 

Tive que restaurar os privilégios para usuário root porque estava experimentando e os baguncei, então acho que antes de fazer isso eu poderia realmente usar a instrução do livro (não me lembro 100%)

-> select current_user; --> "root@localhost" -> show grants; --> "GRANT ALL PRIVILEGES ON *.* TO \"root\"@\"localhost\" IDENTIFIED BY PASSWORD \"*4ACFE3202A5FF5CF467898FC58AAB1D615029441\" WITH GRANT OPTION" --> "GRANT ALL PRIVILEGES ON `testgrounds`.* TO \"root\"@\"localhost\" WITH GRANT OPTION" --> "GRANT PROXY ON \"\"@\"\" TO \"root\"@\"localhost\" WITH GRANT OPTION" 

Há algo errado com minha instalação ou configuração do MySQL?

Resposta

Este não é um problema com o MySQL instalação ou configuração.

Cada nome de conta consiste em um usuário e um nome de host, como “user_name” @ “host_name”, mesmo quando o nome do host não é especificado. De Manual de referência do MySQL:

Os nomes das contas MySQL consistem em um nome de usuário e um nome de host. Isso permite a criação de contas para usuários com o mesmo nome que podem se conectar de diferentes hosts.

Isso também permite que o MySQL conceda diferentes níveis de permissões, dependendo de qual host que eles usam para se conectar.

Ao atualizar concessões para uma conta onde o MySQL não reconhece a parte do host, ele retornará um código de erro 1133, a menos que tenha uma senha para identificar esta conta.

Além disso, O MySQL permitirá que um nome de conta seja especificado apenas por seu nome de usuário, mas neste caso é tratado como “user_name” @ “%”.

Deixe uma resposta

O seu endereço de email não será publicado. Campos obrigatórios marcados com *