Conectar una base de datos MySQL remota mediante la línea de comandos

Mehvish Ashiq 31 mayo 2022
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.

  1. Edite el archivo config de MySQL
  2. Configure el Firewall para permitir conexiones remotas
  3. Permitir el inicio de sesión root de forma remota
  4. 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.

Mehvish Ashiq avatar Mehvish Ashiq avatar

Mehvish Ashiq is a former Java Programmer and a Data Science enthusiast who leverages her expertise to help others to learn and grow by creating interesting, useful, and reader-friendly content in Computer Programming, Data Science, and Technology.

LinkedIn GitHub Facebook

Artículo relacionado - MySQL Database