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

4

Eu simplesmente não consigo descobrir isso.

Eu quero usar a linha de comando para se conectar a um banco de dados MySQL que reside em outro servidor. Eu fui em frente e criei o nome de usuário e senha para o usuário. Eu também concedeu todos os privilégios daquele usuário para aquele 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, esse user@<local_machine_hostname> não está correto.

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

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

Ele faz o mesmo, apenas na saída do erro, diz:

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

Existe uma configuração em um arquivo de configuração que está permitindo que isso aconteça? É realmente muito chato. Eu preciso configurar um servidor tikiwiki, e ele não pode 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.

    
por Phanto 08.06.2010 / 19:18

1 resposta

8

As permissões do MySQL são baseadas no host. Quando você cria 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 é "anexar" o nome do host ao nome de usuário quando ele informa o acesso negado. Cada um é armazenado em uma coluna diferente da tabela mysql.users. Se você deseja fazer login no MySQL a partir de sua máquina como usuário, precisará conceder acesso ao usuário a partir de sua máquina ...

Dos documentos do MySQL sobre o comando CREATE USER :

Each account is named using the same format as for the GRANT statement; for example, 'jeffrey'@'localhost'. If you specify only the user name part of the account name, a host name part of '%' is used. For additional information about specifying account names, see Section 12.4.1.3, “GRANT Syntax”.

    
por 08.06.2010 / 19:26