A adição de um usuário ao MySQL com 'name' @ '%' falha com o ERRO 1396

9

Eu apenas tentei adicionar um novo usuário ao MySQL usando

CREATE USER 'name'@'%' IDENTIFIED BY '...'

No entanto, ele falha com o seguinte erro:

ERROR 1396 (HY000): Operation CREATE USER failed for 'name'@'%'

Adicionar o usuário apenas para localhost funciona bem:

CREATE USER 'name'@'localhost' IDENTIFIED BY '...'

Não tenho idéia do que poderia ser o problema. Ficaria grato por todas as idéias.

(Estou usando mysql Ver 14.14 Distrib 5.1.66.)

Petr Pudlák
fonte
Eu enfrentei o problema semelhante, enquanto CREATE / DROP o usuário, verifiquei todas as tabelas de permissões para obter informações do usuário, não encontrei nenhuma informação do usuário, tentei revogar todo o acesso e deixei o usuário, depois de algum tempo, a operação funciona, sem fazer qualquer alteração, eu escrevi minha resposta detalhada aqui rathishkumar.in/2018/10/…
Rathish

Respostas:

13

De acordo com os documentos, se você omitir o @ 'hostname' (ou seja, CREATE USER 'name'), o MySQL o interpretará como se tivesse um @ '%'. A mensagem de erro que você forneceu sugere que já existe um usuário 'name' @ '%' no sistema:

mysql> CREATE USER 'name'@'%' IDENTIFIED BY 'test';
Query OK, 0 rows affected (0.04 sec)

mysql> CREATE USER 'name'@'%' IDENTIFIED BY 'test';
ERROR 1396 (HY000): Operation CREATE USER failed for 'name'@'%'
mysql> CREATE USER 'name' IDENTIFIED BY 'test';
ERROR 1396 (HY000): Operation CREATE USER failed for 'name'@'%'

Se você excluir o usuário e ainda receber a mensagem, tente executar o FLUSH PRIVILEGES.

Consulte também esta pergunta para obter informações adicionais.

redguy
fonte
1

Eu estava enfrentando esse mesmo erro enquanto usava a imagem do docker mysql: 5.7. O principal erro foi tentar criar um rootusuário que existe por padrão. Mais informações: https://github.com/docker-library/mysql/issues/129

Conforme fornecido no link acima, a solução NÃO foi definir MYSQL_USERe MYSQL_PASSWORDnas variáveis ​​de ambiente ao iniciar a imagem do Docker.

rahuljain1311
fonte
Isso me ajudou muito! Não sabia por que não conseguia me conectar ao banco de dados na janela de encaixe e nunca suspeitei que esse fosse o motivo.
dingo_d