Para permitir conexiones remotas a nuestro servidor de base de datos (MySQL) en GNU/Linux, de manera gráfica lo podemos hacer desde el Administrador de MySQL (MySQL Administrator)
Para instalalo en Debian o Ubuntu, basta hacer:
$ sudo apt-get install mysql-admin
En Archlinux:
$ sudo pacman -Sy mysql-gui-tools
Una vez instalado lo iniciamos desde terminal haciendo:
$ mysql-admin
ó en el caso de Archlinux:
$ mysql-administrator
Con MySQL-Administrator podremos crear bases de datos (esquemas), crear tablas, exportar datos, importar datos, hacer copias de seguridad, restaurar copias, …
En el cual llenaremos los datos que corresponden con nuestro usuario, en nuestro caso el servidor esta en localhost (la misma maquina) y es el usuario root. Al final ponemos la contraseña de dicho usuario.
Una vez que nos hallamos loogeado, nos aparecerá esta otra pantalla:
Escogemos la pestaña “Startup Parameters” y ahí desmarcamos la opción “Disable Networking” y damos click en “Save Changes”
Como se puede observar en la parte inferior de la ventana anterior nos indica la ubicación y el nombre del fichero de configuración que también se puede modificar manualmente: /etc/mysql/my.cnf, abriendo este fichero y comentando la línea “skip-networking“, es decir, añadiendo “#” delante produciremos el mismo efecto que haciéndo en MySQL Administrator.
Reiniciaremos MySQL Server (para que los cambios tengan efecto) con el comando:
$ sudo /etc/init.d/mysql restart
Introduciremos los datos de conexión remoto (host, usuario y contraseña) y accederemos a la ventana de MySQL Administrator, seleccionaremos la opción “User Administration“, luego pulsaremos con el botón derecho sobre cualquier usuario, en esta caso lo hacemos sobre le usuario “root” , nos aparecerá un menú emergente y seleccionaremos la opción “Add Host“:
En la ventana de “Add Host” marcaremos la opción “Hostname or IP” e introduciremos la IP del PC al que queramos permitirle el acceso remoto (admite comodines, por ejemplo 192.168.1.%) y pulsaremos “OK“:
Por último, accederemos a la pestaña “Schema Privileges” para especificar a qué bases de datos tendrá acceso el usuario y qué permisos tendrá sobre las mismas, para ello marcaremos en “Schema” la base de datos a la que queramos permitir el acceso y en “Available Privileges” marcaremos las acciones permitidas sobre la base de datos:
A continuación pulsaremos el botón con una flecha a la izquierda (Grant Privilege) y los privilegios seleccionados pasarán a la columna “Assigned Privileges“. Para guardar los cambios pulsaremos en “Apply Changes“.
Con esto habremos terminado de configurar MySQL Server para el acceso tanto local (desde la propia máquina donde está instalado) como remoto (desde equipos de la red local o, incluso equipo de fuera de la red local).
Será conveniente reiniciar otra vez MySQL Server con el comando:
$ sudo /etc/init.d/mysql restart
Desde cualquier otro PC que tenga instalado MySQL Administrator o cualquier programa que pueda acceder a MySQL podremos comprobar que funciona correctamente.
Desde consola, podemos probrarlo haciendo:
$ mysql -u root -p base_de_datos -h xxx.xxx.xxx.xxx