Permitir conexiones externas MySQL (GNU/Linux)



MySQL ( ó mariadb ) valida el acceso a las bases de datos no solo por usuario, sino que también lo hace por ip de conexión y por defecto solo permite conexiones locales. Para permitir conexiones externas hay que hacer algunas configuraciones.

1. Edición archivo de configuración.

En la mayoría de las distribuciones el archivo de configuración podemos encontrarlo en /etc/mysql/my.cnf ó  /etc/my.cnf. Es necesario editar este archivo agregando la siguiente línea (o editando en caso de existir el parámetro bind-address):
bind-address = 0.0.0.0
 Esto indicará al servicio que también puede escuchar peticiones de cualquier dirección ip ( como ya nos habremos imaginado no es lo mejor en cuestiones de seguridad, así que si deseamos realizar desde alguna ip en específico se puede realizar, por ejemplo; bind-address = 192.168.1.2 ).

2. Reiniciar el servicio.

Es necesario reiniciar el servicio de MySQL para que el cambio en la configuración tome efecto:
# systemctl restart mysqld
3. Abrir puerto en firewall.

En caso de tener firewall en el equipo es necesario abrir el puerto 3306 (o cualquiera que tenga configurado nuestro servicio de MySQL).
#  firewall-cmd --zone=public --add-port=3306/tcp --permanent
#  firewall-cmd --reload

4. Crear usuario.

Ahora solo resta crear un usuario que permita las conexiones externas.
mysql> CREATE USER 'usuario'@'%' identified by 'password_usuario';
mysql> GRANT ALL on basededatos.* to 'usuario'@'%' identified by 'password_usuario' ;
Nota. Si se desea que el usuario pueda acceder solo desde alguna ip específica es necesario reemplazar '%' por dicha ip.

De esta manera MySQL permitirá conexiones desde direcciones externas.

Comentarios

Entradas populares de este blog

Odisea 3G Huawei E173

Nessus Arch Linux

De dados y cubos con puntos