GNU/Linux >> Tutoriales Linux >  >> Ubuntu

Cómo permitir conexiones remotas a MySQL

Introducción

No es raro alojar bases de datos y servidores web en la misma máquina local. Sin embargo, muchas organizaciones ahora se están moviendo hacia un entorno más distribuido.

Un servidor de base de datos separado puede mejorar la seguridad, el rendimiento del hardware y permitirle escalar recursos rápidamente. En tales casos de uso, aprender a administrar los recursos remotos de manera efectiva es una prioridad.

Este tutorial le muestra cómo habilitar conexiones remotas a una base de datos MySQL.

Requisitos previos

  • Acceso a una ventana de terminal/línea de comando
  • Servidor MySQL remoto
  • Sudo o raíz privilegios en máquinas locales y remotas

Conexión remota del servidor MySQL

Permitir conexiones a un servidor MySQL remoto se configura en 3 pasos:

  1. Editar el archivo de configuración de MySQL
  2. Configurar cortafuegos
  3. Conéctese al servidor MySQL remoto

Paso 1:Edite el archivo de configuración de MySQL

1.1 Acceder al archivo mysqld.cnf

Use su editor de texto preferido para abrir mysqld.cnf expediente. Este ejemplo usa el editor de texto nano en Ubuntu 18.04. Ingrese el siguiente comando en su interfaz de línea de comandos para acceder al archivo de configuración del servidor MySQL:

sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf

La ubicación del archivo puede variar según la distribución y la versión en uso. Si el archivo de configuración de MySQL no es su ubicación predeterminada, intente usar Linux find comando para detectarlo.

1.2 Cambiar dirección IP de enlace

Ahora tiene acceso al archivo de configuración del servidor MySQL. Desplácese hacia abajo hasta la dirección de vinculación línea y cambiar la dirección IP. La IP predeterminada actual está establecida en 127.0.0.1. Esta IP limita las conexiones de MySQL a la máquina local.

La nueva IP debe coincidir con la dirección de la máquina que necesita acceder al servidor MySQL de forma remota. Por ejemplo, si vincula MySQL a 0.0.0.0, cualquier máquina que llegue al servidor MySQL también puede conectarse con él.

Una vez que realice los cambios necesarios, guarde y salga del archivo de configuración.

1.3 Reiniciar el servicio MySQL

Aplique los cambios realizados en el archivo de configuración de MySQL reiniciando el servicio de MySQL:

sudo systemctl restart mysql

A continuación, debe ajustar la configuración actual de su cortafuegos para permitir el tráfico al puerto MySQL predeterminado.

Paso 2:configurar el cortafuegos para permitir la conexión MySQL remota

Mientras editaba el archivo de configuración, probablemente observó que el puerto predeterminado de MySQL es 3306 .

Si ya configuró un firewall en su servidor MySQL, debe abrir el tráfico para este puerto específico. Siga las instrucciones a continuación que correspondan a su servicio de firewall en uso.

Opción 1:UFW (cortafuegos sin complicaciones)

UFW es la herramienta de firewall predeterminada en Ubuntu. En una ventana de terminal, escriba el siguiente comando para permitir el tráfico y hacer coincidir la IP y el puerto:

sudo ufw allow from remote_ip_address to any port 3306

El sistema confirma que las reglas se actualizaron correctamente.

Opción 2:CortafuegosD

La herramienta de administración de firewalld en CentOS usa zonas para dictar qué tráfico se debe permitir.

Cree una nueva zona para establecer las reglas para el tráfico del servidor MySQL. El nombre de la zona en nuestro ejemplo es mysqlrule y usamos la dirección IP de nuestro ejemplo anterior 133.155.44.103 :

sudo firewall-cmd --new-zone=mysqlrule --permanent
sudo firewall-cmd --reload
sudo firewall-cmd --permanent --zone=mysqlrule --add-source=133.155.44.103
sudo firewall-cmd --permanent --zone=mysqlrule --add-port=3306/tcp
sudo firewall-cmd --reload

Ha abierto con éxito el puerto 3306 en su firewall.

Opción 3:abrir el puerto 3306 con iptables

Las iptables La utilidad está disponible en la mayoría de las distribuciones de Linux de forma predeterminada. Escriba el siguiente comando para abrir el puerto MySQL 3306 al tráfico sin restricciones:

sudo iptables -A INPUT -p tcp --dport 3306 -j ACCEPT

Para limitar el acceso a una dirección IP específica, use el siguiente comando en su lugar:

sudo iptables -A INPUT -p tcp -s 133.155.44.103 --dport 3306 -j ACCEPT

Este comando otorga acceso a 133.155.44.103. Deberá sustituirla por la IP de su conexión remota.

Es necesario guardar los cambios realizados en las reglas de iptables. En una distribución basada en Ubuntu, escriba los siguientes comandos:

sudo netfilter-persistent save
sudo netfilter-persistent reload

Escriba el siguiente comando para guardar las nuevas reglas de iptables en CentOS:

service iptables save

Paso 3:Conéctese al servidor MySQL remoto

Su servidor remoto ahora está listo para aceptar conexiones. Utilice el siguiente comando para establecer una conexión con su servidor MySQL remoto:

mysql -u username -h mysql_server_ip -p

El -u username en el comando representa su nombre de usuario de MySQL. El -h mysql_server_ip es la IP o el nombre de host de su servidor MySQL. El -p La opción le solicita que ingrese la contraseña para el nombre de usuario de MySQL.

Debería ver un resultado similar al siguiente:

Connection to mysql_server_ip 3306 port [tcp/mysql] succeeded!

¿Cómo otorgar acceso remoto a una nueva base de datos MySQL?

Si aún no tiene ninguna base de datos, puede crear fácilmente una base de datos escribiendo el siguiente comando en su shell de MySQL:

CREATE DATABASE ‘yourDB’;

Para otorgar acceso de usuario remoto a una base de datos específica:

GRANT ALL PRIVILEGES ON yourDB.* TO [email protected]’133.155.44.103’ IDENTIFIED BY ‘password1’;

El nombre de la base de datos, el nombre de usuario, la IP remota y la contraseña deben coincidir con la información que desea usar para la conexión remota.

Cómo otorgar acceso remoto a una base de datos MySQL existente

Otorgar acceso remoto a un usuario para una base de datos existente requiere un conjunto de dos comandos:

update db set Host=’133.155.44.103' where Db='yourDB';
update user set Host=’133.155.44.103' where user='user1';

Usuario1 ahora puede acceder a su base de datos desde una ubicación remota identificada por la IP 133.155.44.103 .


Ubuntu
  1. Cómo restablecer la contraseña raíz de MySql

  2. Cómo instalar MySQL 8.0/5.7 en Debian 11/Debian 10

  3. Cómo instalar el servidor MySQL en Debian 9

  4. Cómo instalar el servidor MySQL en CentOS 7

  5. Cómo instalar MySQL en Linux Mint 19

Cómo permitir conexiones remotas a MySQL

Cómo instalar MySQL 8 en CentOS 8

Cómo instalar el servidor MySQL en Ubuntu

Cómo permitir el acceso remoto al servidor de base de datos MySQL

¿Cómo permitir la conexión remota al servidor MySQL en el servidor cPanel/WHM?

Cómo instalar el servidor MySQL en Ubuntu 20.04