Habilitar acceso remoto (Grant) Inicio / Tutoriales / Mysql / Habilitar acceso remoto (Grant) Si intenta conectarse a su servidor mysql desde una máquina remota y se encuentra con un error como el siguiente, este artículo es para usted.
ERROR 1130 (HY000): el host '1.2.3.4' no puede conectarse a este servidor MySQL
Cambiar la configuración de mysql
Comience con la edición del archivo de configuración mysql
vim /etc/mysql/my.cnf
Comente las siguientes líneas.
#bind-address = 127.0.0.1
#skip-networking
Si no encuentra la línea de salto de red, agréguela y coméntela.
Reinicie el servidor mysql.
~ /etc/init.d/mysql restart
Cambiar privilegio GRANT
Es posible que se sorprenda al ver incluso después del cambio anterior que no obtiene acceso remoto o acceso pero no puede acceder a todas las bases de datos.
De manera predeterminada, el nombre de usuario y la contraseña de mysql que está utilizando puede acceder a mysql-server localmente. Entonces necesita actualizar el privilegio.
Ejecute un comando como el siguiente para acceder desde todas las máquinas. (Reemplace USERNAME
y PASSWORD
por sus credenciales).
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'%' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
Ejecute un comando como el siguiente para dar acceso desde una IP específica. (Reemplace USERNAME
y PASSWORD
por sus credenciales).
mysql> GRANT ALL PRIVILEGES ON *.* TO 'USERNAME'@'1.2.3.4' IDENTIFIED BY 'PASSWORD' WITH GRANT OPTION;
Puede reemplazar 1.2.3.4 con su IP. Puede ejecutar el comando anterior muchas veces para OTORGAR acceso desde múltiples IP.
También puede especificar un acceso remoto USERNAME
y separado PASSWORD
.
Puede verificar el resultado final de la siguiente manera:
SELECT * from information_schema.user_privileges where grantee like "'USERNAME'%";
Finalmente, también puede necesitar ejecutar:
mysql> FLUSH PRIVILEGES;
Conexión de prueba
Desde terminal / línea de comando:
mysql -h HOST -u USERNAME -pPASSWORD
Si obtiene un shell mysql, no olvide ejecutar show database; para verificar si tiene privilegios correctos de máquinas remotas.
Consejo adicional: revocar acceso
Si accidentalmente concede acceso a un usuario, es mejor tener a mano la opción de revocación.
A continuación se revocarán todas las opciones para USERNAME de todas las máquinas:
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USERNAME'@'%';
Following will revoke all options for USERNAME from particular IP:
mysql> REVOKE ALL PRIVILEGES, GRANT OPTION FROM 'USERNAME'@'1.2.3.4';
Its better to check information_schema.user_privileges table after running REVOKE command.
Si ve el privilegio USAGE después de ejecutar el comando REVOKE, está bien. Es tan bueno como ningún privilegio en absoluto. No estoy seguro de si se puede revocar.