O comando MySQL anexa '@localhost' ao nome de usuário

O comando MySQL anexa '@localhost' ao nome de usuário

Eu simplesmente não consigo entender isso.

Quero usar a linha de comando para conectar-me a um banco de dados MySQL residente em outro servidor. Fui em frente e criei o nome de usuário e a senha do usuário. Também concedi todos os privilégios desse usuário para esse banco de dados.

Ao usar o comando: mysql -h <hostname> -u <username> -p, recebo o seguinte erro:

ERROR 1045 (28000): Access denied for user '<username>'@'<local_machine_hostname>' (using password: YES)

O problema é que ele continua anexando o nome do host da máquina atual ao nome de usuário. Obviamente, isso user@<local_machine_hostname>não está correto.

Não importa o que eu digite. Por exemplo, se eu digitar:

mysql -h <hostname> -u '<username>'@'<hostname>' -p

Faz o mesmo, apenas na saída de erro, diz:

Access denied for user '<username>@<hostname>'@'<local_machine_hostname>'

Existe uma configuração em um arquivo de configuração que permite que isso aconteça? É realmente muito chato. Preciso configurar um servidor tikiwiki e ele não consegue se conectar porque durante a etapa em que você configura o mysql, ele continua anexando o nome do host da máquina local ao nome de login do mysql.

Responder1

As permissões do MySQL são baseadas no host. Ao criar o usuário CREATE USER (ou GRANT), você fornece um nome de host. Pode ser '%' ou 'localhost' ou qualquer outro IP ou nome de host. É um recurso de segurança. Você quer que isso aconteça. Não está "anexando" o nome do host ao nome de usuário quando informa acesso negado. Cada um é armazenado em uma coluna diferente da tabela mysql.users. Se você quiser fazer login no MySQL a partir de sua máquina como esse usuário, você precisará conceder a esse usuário acesso a partir de sua máquina...

DeDocumentos MySQL sobre CREATE USER:

Cada conta é nomeada usando o mesmo formato da instrução GRANT; por exemplo, 'jeffrey'@'localhost'. Se você especificar apenas a parte do nome de usuário do nome da conta, uma parte do nome do host '%' será usada. Para obter informações adicionais sobre como especificar nomes de contas, consulte a Seção 12.4.1.3, “Sintaxe GRANT”.

Responder2

vá para mysql wworkbannch e digite o código

ALTER USER ALTER USER 'root'@'localhost' IDENTIFICADO COM mysql_native_password BY '123';

informação relacionada