Falha ao adicionar um usuário para todas as origens

1

Quando tento adicionar um novo usuário com

grant all privileges on retrosias.* to 'rs3'@'%' identified by 'a';

Nem consigo me conectar localmente:

ERROR 1045 (28000): Access denied for user 'rs3'@'localhost' (using password: YES)

Se eu adicionar o mesmo usuário usando

grant all privileges on retrosias.* to 'rs3'@'localhost' identified by 'a';

então eu posso me conectar localmente, mas minha real necessidade é conectar de qualquer computador.

Minha versão do servidor é

Server version: 5.5.28-0ubuntu0.12.04.3 (Ubuntu)

E verifiquei que os usuários adicionados antes ainda podem se conectar de qualquer lugar (portanto, não um problema de firewall).

Onde está o meu erro? Ou o que poderia ser uma solução alternativa?

    
por Denys Séguret 09.01.2013 / 15:39

2 respostas

0

A reinicialização do servidor fez o que nem flush privileges nem service stop mysql / service start mysql não obteve.

Todos os (muitos) usuários que adicionei antes da reinicialização agora estão acessíveis.

E os novos usuários que adiciono agora com os mesmos comandos também são acessíveis.

Estou relutante em aceitar minha resposta. Eu não sei se este é um problema conhecido / freqüente com o mysql. O facto de ter de reiniciar não só o serviço mas também todo o computador é bastante perturbador.

    
por 10.01.2013 / 08:34
1
mysql> select User,Host,Password from user;
+------+------------+-------------------------------------------+
| User | Host       | Password                                  |
+------+------------+-------------------------------------------+
| root | localhost  | *62395BB52702DE50773EBF629DD4AE90F07FFD94 |
| root | sgeorge-mn |                                           |
| root | 127.0.0.1  | *62395BB52702DE50773EBF629DD4AE90F07FFD94 |
| root | ::1        |                                           |
|      | localhost  |                                           |
|      | sgeorge-mn |                                           |
| suku | localhost  | *EAF5C8242B88A14545BB61062D64CA5207DD1A37 |
| rs3  | %          | *0FDB28C86F3804FCA60FA633DB4264B0EB169D9B |
| rs3  | localhost  | *667F407DE7C6AD07358FA38DAED7828A72014B4E |
+------+------------+-------------------------------------------+
9 rows in set (0.00 sec)

It is necessary to have both (% and localhost) accounts for rs3 to be able to connect from anywhere as rs3. Without the localhost account, the anonymous-user account for localhost that is created by mysql_install_db would take precedence when rs3 connects from the localhost. As a result, rs3 would be treated as an anonymous user. The reason for this is that the anonymous-user account has a more specific Host column value than the 'rs3'@'%' account and thus comes earlier in the user table sort order.

Sobre a ordem de classificação:

The server uses sorting rules that order rows with the most-specific Host values first. Literal host names and IP addresses are the most specific. (The specificity of a literal IP address is not affected by whether it has a netmask, so 192.168.1.13 and 192.168.1.0/255.255.255.0 are considered equally specific.) The pattern '%' means "any host" and is least specific. The empty string '' also means "any host" but sorts after '%'. Rows with the same Host value are ordered with the most-specific User values first (a blank User value means "any user" and is least specific).

Para mais informações: link

    
por 10.01.2013 / 03:31

Tags