Conectar una base de datos MySQL remota mediante la línea de comandos
Las conexiones remotas son necesarias cuando trabajamos en un entorno distribuido. Este tutorial es una guía paso a paso que explica cómo conectar una base de datos MySQL remota mediante la línea de comandos.
Conectar una base de datos MySQL remota mediante la línea de comandos
Antes de continuar, primero es necesario tener algunas cosas: acceso a la línea de comandos o ventana de terminal y un servidor MySQL ejecutándose en otra ubicación (un servidor MySQL remoto).
También necesitaremos privilegios root
o sudo
en máquinas remotas y locales. También puede usar ssh
para conectarse de forma remota si no tiene acceso directo al servidor MySQL.
Puedes usar este artículo si quieres conectarte usando ssh
.
Este tutorial lo guiará para establecer una conexión remota con una base de datos MySQL usando una línea de comando. Incluye los siguientes pasos.
- Edite el archivo
config
de MySQL - Configure el Firewall para permitir conexiones remotas
- Permitir el inicio de sesión
root
de forma remota - Conéctese a un servidor MySQL remoto
El siguiente es el detalle de cada paso.
Edite el archivo config
de MySQL
Utilice el siguiente comando para abrir el archivo config
en un editor de texto. Usamos un editor de texto nano
, pero puede usar cualquier editor de texto con el que se sienta cómodo.
sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
Supongamos que hemos olvidado o no conocemos la ruta del archivo config
, entonces podemos usar el comando find
para conocer la ubicación del archivo config
. Una vez abierto el archivo config
, busque la sección [mysqld](https://phoenixnap.com/kb/guide-linux-find-command)
.
En la sección [mysqld]
, busque bind-address
y cambie su valor de 127.0.0.1
a 0.0.0.0
o comente esta línea usando el símbolo #
.
¿Cuál es el motivo de actualizar la opción bind-address
? Debido a la configuración predeterminada, podemos conectarnos a este servidor usando una máquina local cuya dirección IP es 127.0.0.1
.
Permitimos que todas las máquinas se conecten con este servidor de forma remota comentando esta opción usando el símbolo #
o reemplazando su valor con 0.0.0.0.
Si queremos que solo una máquina esté conectada de forma remota, podemos escribir la dirección IP de nuestra máquina host en lugar de 0.0.0.0
. Una vez que hayamos terminado con los cambios, guárdelos y salga del archivo.
Para aplicar las actualizaciones, reinicie el servidor MySQL con el siguiente comando.
sudo systemctl restart mysql
Configurar el cortafuegos para permitir conexiones remotas
Al configurar la dirección de enlace
en el archivo config
, es posible que haya observado que el puerto MySQL predeterminado es 3306
. Aquí, ajustaremos la configuración para permitir el tráfico remoto al puerto predeterminado de MySQL, que es 3306
.
Antes de abrir el tráfico, debemos configurar el firewall correctamente. Una vez hecho esto, podemos usar el comando que se indica a continuación para abrir el tráfico para este puerto en particular.
Como estamos usando Ubuntu 20.04, usaremos ufw
(cortafuegos sin complicaciones).
sudo ufw allow from your_remote_ip_address to any port 3306
En cuanto pulsemos Enter, veremos que las reglas se actualizan correctamente.
Permitir inicio de sesión raíz de forma remota
Debido a su configuración predeterminada, podemos conectarnos a root
usando una máquina local. Necesitamos hacer algunos cambios para permitir que las máquinas remotas se conecten como root
.
Para hacer eso, use los siguientes comandos.
mysql> GRANT ALL PRIVILEGES ON *.* TO 'root'@'localhost';
mysql> UPDATE mysql.user SET host='%' WHERE user='root';
Luego, reinicie el servidor MySQL usando systemctl
de la siguiente manera.
sudo systemctl restart mysql
Conéctese a un servidor MySQL remoto
Una vez que el servidor MySQL remoto esté listo para aceptar conexiones remotas, podemos usar el siguiente comando para establecer una conexión con nuestro servidor MySQL remoto.
mysql -u your_username -h your_mysql_server_ip -p
Aquí, reemplace your_username
con su nombre de usuario y your_mysql_server_ip
con su IP. También puede utilizar el nombre de host
de su servidor MySQL.
El -p
le pedirá que ingrese la contraseña para el nombre de usuario que utilizó en el comando dado anteriormente.
Finalmente estará conectado a un servidor MySQL remoto si ha hecho todo correctamente. Para otorgar acceso remoto a una base de datos, podemos ejecutar las siguientes consultas.
mysql> update db set Host='ip_address' where
-> Db='yourDB_name';
mysql> update user set Host='ip_address' where
-> user='username';
Reemplace el username
, Host
y Db
con sus valores especificados. Después de eso, ahora puede acceder a la base de datos especificada desde una ubicación remota.