Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Permitir todas as conexões remotas, MySQL


Como apontado por Ryan acima, o comando que você precisa é
GRANT ALL ON *.* to [email protected]'%' IDENTIFIED BY 'password'; 

No entanto, observe que a documentação indica que, para que isso funcione, outra conta de usuário de localhost deve ser criado para o mesmo usuário; caso contrário, a conta anônima criada automaticamente por mysql_install_db tem precedência porque tem uma coluna de host mais específica.

Em outras palavras; para o usuário user poder se conectar de qualquer servidor; 2 contas precisam ser criadas da seguinte forma:
GRANT ALL ON *.* to [email protected] IDENTIFIED BY 'password'; 
GRANT ALL ON *.* to [email protected]'%' IDENTIFIED BY 'password'; 

Leia a documentação completa aqui.

E aqui está a peça relevante para referência:

Depois de se conectar ao servidor como root, você pode adicionar novas contas. As declarações a seguir usam GRANT para configurar quatro novas contas:
mysql> CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'localhost'
    ->     WITH GRANT OPTION;
mysql> CREATE USER 'monty'@'%' IDENTIFIED BY 'some_pass';
mysql> GRANT ALL PRIVILEGES ON *.* TO 'monty'@'%'
    ->     WITH GRANT OPTION;
mysql> CREATE USER 'admin'@'localhost';
mysql> GRANT RELOAD,PROCESS ON *.* TO 'admin'@'localhost';
mysql> CREATE USER 'dummy'@'localhost';

As contas criadas por esses demonstrativos possuem as seguintes propriedades:

Duas das contas têm um nome de usuário de monty e uma senha de some_pass. Ambas as contas são contas de superusuário com privilégios totais para fazer qualquer coisa. A conta 'monty'@'localhost' pode ser usada somente ao se conectar a partir do host local. A conta 'monty'@'%' usa o curinga '%' para a parte do host, portanto, pode ser usada para conectar de qualquer host.

É necessário ter as duas contas para que monty possa se conectar de qualquer lugar como monty . Sem a conta localhost, a conta de usuário anônimo para localhost que é criada por mysql_install_db teria precedência quando monty se conectar a partir do host local. Como resultado, monty seria tratado como um usuário anônimo. A razão para isso é que a conta de usuário anônimo tem um valor de coluna Host mais específico do que a conta 'monty'@'%' e, portanto, vem mais cedo na ordem de classificação da tabela do usuário. (a classificação da tabela do usuário é discutida na Seção 6.2.4, “Controle de Acesso, Estágio 1:Verificação da Conexão”.)