GNU/Linux >> Tutoriales Linux >  >> Linux

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

El ecosistema de software no es nuevo en la noción de sistemas distribuidos. No necesita estar físicamente presente para interactuar con su software alojado de forma remota.

Por lo tanto, su MySQL no necesita residir en una máquina local para que usted se beneficie completamente de sus características funcionales. Ahora puede tener MySQL ejecutándose en un servidor dedicado remoto y aún así tener garantizado el mismo rendimiento y seguridad de la base de datos que en el caso de MySQL ejecutándose en una máquina local/de escritorio.

Esta guía de artículo nos guiará a través de la configuración y habilitación del acceso remoto a un MySQL servidor en Linux. En el servidor/máquina remota que aloja su MySQL software de base de datos, debemos realizar algunos pasos de configuración para que permita el acceso de usuarios remotos autenticados.

Crear un nuevo usuario de MySQL

Es recomendable trabajar con un usuario remoto que no sea root MySQL usuario ni vinculado al servidor remoto que aloja el MySQL software de base de datos.

Accede a tu MySQL remoto servidor y base de datos a través de SSH .

$ ssh [email protected]
$ mysql -u root -p

Para crear un nuevo usuario de MySQL, nos apegaremos a la sintaxis del comando:

CREATE USER 'username'@'%' IDENTIFIED BY 'your_user_password';

Como habrás notado, estamos usando la notación ‘username’@’%’ y no ‘nombre de usuario’@’localhost’ ya que queremos que este usuario sea lo suficientemente dinámico para acceder a MySQL servidor desde cualquier otra máquina host con una dirección IP diferente.

mysql> CREATE USER 'remote_user'@'%' IDENTIFIED BY 'password1122';

Otorguemos a este usuario algunos privilegios de base de datos. Por ejemplo, este usuario puede tener los mismos privilegios de base de datos que el usuario raíz, solo que el usuario raíz está vinculado a la máquina host.

mysql> GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%';
mysql> FLUSH PRIVILEGES;
mysql> exit;

[ También te puede interesar:Cómo crear un nuevo usuario de MySQL a través de phpMyAdmin ]

Habilitar acceso remoto a MySQL

Ahora que hemos creado el usuario remoto, es hora de realizar algunos cambios de configuración adicionales. De forma predeterminada, la dirección de vinculación de MySQL es 127.0.0.1 lo que implica que solo los usuarios de localhost pueden interactuar con la base de datos MySQL.

Para dar acceso a las direcciones IP de otros usuarios a su servidor de base de datos, navegue y abra el archivo de configuración de MySQL.

 
$ sudo nano /etc/mysql/mysql.conf.d/mysqld.cnf
OR
$ sudo vi /etc/my.cnf

Para permitir el acceso remoto a su servidor de base de datos MySQL, los campos bind-address y mysqlx-bind-address necesita ser comentado. Estos cambios de configuración evitarán que el servidor que aloja el software de la base de datos MySQL dependa únicamente de las conexiones localhost (127.0.0.1). Posteriormente, cualquier dirección IP podrá acceder a él.

Guarde y cierre el archivo.

Reinicie su servidor MySQL y luego identifique la dirección IP del servidor MySQL.

$ sudo systemctl restart mysql
$ ifconfig

Intento de acceso remoto a la base de datos MySQL

Para conectarse directamente a MySQL servidor de base de datos de forma remota, siga la siguiente sintaxis de MySQL:

$ mysql -u username -h mysql_server_ip_adress -p

En nuestro caso, el comando se verá así:

$ mysql -u remote_user -h 192.168.50.130 -p

Si se encuentra con el error anterior como se muestra en la captura de pantalla, deberá configurar su usuario de MySQL para usar una contraseña nativa. Vuelva a iniciar sesión en su servidor MySQL a través de SSH e implemente el comando:

mysql> ALTER USER 'remote_user'@'%' IDENTIFIED WITH mysql_native_password BY 'password1122'; 
mysql> exit;

Luego, salga del shell de la base de datos MySQL y reinicie el demonio MySQL.

$ sudo systemctl restart mysql

Vuelva a intentar el acceso remoto a su servidor MySQL.

$ mysql -u remote_user -h 192.168.50.130 -p

Y así, puede obtener acceso directo y remoto a un servidor de base de datos MySQL desde una computadora cliente remota configurada con una dirección IP de su elección.

Habilitar el acceso remoto a MySQL en el cortafuegos

Si tiene un firewall habilitado en su servidor remoto, es posible que deba otorgar acceso al puerto predeterminado de MySQL 3306 y conceder acceso a remote_ip_address como se muestra.

Cortafuegos UFW

$ sudo ufw allow from remote_ip_address to any port 3306

CortafuegosD

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

Iptables

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

¡Eso es todo! En este artículo, ha aprendido información útil sobre las ideas comunes del acceso remoto a MySQL en Linux.


Linux
  1. Cómo instalar el servidor de base de datos MySQL 8 en CentOS 8

  2. Cómo permitir o denegar el inicio de sesión remoto a cuentas de usuario específicas en el servidor Linux

  3. Cómo instalar el servidor de base de datos MySQL en CentOS

  4. Cómo permitir la conexión remota al servidor de base de datos MySQL

  5. Cómo configurar una base de datos esclava de MySQL

Cómo verificar los privilegios de usuario de MySQL en Linux

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

¿Cómo agregar una base de datos MySQL en SolidCP?

¿Cómo agregar una base de datos MySQL en WebsitePanel 2.1?

¿Cómo configurar el acceso remoto a MySQL en cPanel?

Hosts de acceso adicional de MySQL