Hoy estaba realizando unas pruebas con los servidores de MySQL / MariaDB y después de configurar el servidor para permitir conexiones remotas e intentar conectarme, apareció el error que dice:
Host [IP] is not allowed to connect to this MariaDB server
Veamos cómo solucionar ese problema.
Configuración
Recuerda que en tu archivo my.cnf debes tener en el apartado [mysqld]
lo siguiente:
bind-address = 0.0.0.0
Para que cualquiera se pueda conectar; o añade a los hosts que tú quieras por seguridad.
El problema
Esto no es tan complicado, pues al menos ya tenemos conexión y el servidor está atendiendo a los clientes.
Lo que pasa es que no tenemos acceso desde el host, o sea, nuestra IP no está permitida.
También suele pasar cuando nos intentamos conectar de manera remota como root.
La solución: crear usuario de MySQL / MariaDB
Entra como root (o como usuario con privilegios) a tu consola de MySQL.
Ahí crea un usuario como normalmente se hace, pero en el host pon un comodín, y después de crearlo ejecuta FLUSH PRIVILEGES;
como se ve a continuación:
CREATE USER 'parzibyte'@'%' IDENTIFIED BY 'hunter2';
FLUSH PRIVILEGES;
Toma en cuenta que solamente lo estamos creando, si quieres darle permisos mira este post.
De esta manera hemos permitido que el usuario se conecte desde cualquier lugar remoto. Si intentamos de nuevo:
Con eso terminamos. Te recuerdo de nuevo que aparte de ello debes darle permisos al usuario para que trabaje con bases de datos.
Conclusión
Esto de los hosts y usuarios es por seguridad; sería un gran riesgo permitir que cualquier usuario de cualquier host se conecte de manera remota; pues se podría llevar a cabo un ataque de fuerza bruta para obtener la contraseña. Recuerda que todo tiene una razón.
Mira más tutoriales sobre MySQL o Bases de datos en general.
Funciona perfecto, hasta con VB6 me pude conectar con un proyecto viejo. GRACIAS.
Gracias por el post! muy buena ayuda
Me agrada escuchar que funcione 🙂
Saludos!