sql >> Base de Datos >  >> RDS >> Mysql

Permitir todas las conexiones remotas, MySQL

Como señaló Ryan anteriormente, el comando que necesita es

GRANT ALL ON *.* to [email protected]'%' IDENTIFIED BY 'password'; 

Sin embargo, tenga en cuenta que la documentación indica que para que esto funcione, otra cuenta de usuario de localhost debe ser creado para el mismo usuario; de lo contrario, la cuenta anónima creada automáticamente por mysql_install_db tiene prioridad porque tiene una columna de host más específica.

En otras palabras; para el usuario user poder conectarse desde cualquier servidor; Se deben crear 2 cuentas de la siguiente manera:

GRANT ALL ON *.* to [email protected] IDENTIFIED BY 'password'; 
GRANT ALL ON *.* to [email protected]'%' IDENTIFIED BY 'password'; 

Lea la documentación completa aquí

Y aquí está la pieza relevante como referencia:

Después de conectarse al servidor como root, puede agregar nuevas cuentas. Las siguientes declaraciones usan GRANT para configurar cuatro cuentas nuevas:

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';

Las cuentas creadas por estos extractos tienen las siguientes propiedades:

Dos de las cuentas tienen un nombre de usuario de monty y una contraseña de some_pass. Ambas cuentas son cuentas de superusuario con todos los privilegios para hacer cualquier cosa. La cuenta 'monty'@'localhost' solo se puede usar cuando se conecta desde el host local. La cuenta 'monty'@'%' usa el comodín '%' para la parte del host, por lo que puede usarse para conectarse desde cualquier host.

Es necesario tener las dos cuentas de monty para poder conectarse desde cualquier lugar como monty . Sin la cuenta localhost, la cuenta de usuario anónimo para localhost creada por mysql_install_db tendría prioridad cuando monty se conecta desde el host local. Como resultado, monty sería tratado como un usuario anónimo. La razón de esto es que la cuenta de usuario anónimo tiene un valor de columna Host más específico que la cuenta 'monty'@'%' y, por lo tanto, aparece antes en el orden de clasificación de la tabla de usuarios. (La clasificación de la tabla de usuarios se trata en la Sección 6.2.4, “Control de acceso, Etapa 1:Verificación de la conexión”.)