sql >> Base de Datos >  >> RDS >> Mysql

Habilitar el acceso remoto a la base de datos MySQL

Por lo general, el acceso remoto al servidor de la base de datos MySQL está deshabilitado por razones de seguridad. Sin embargo, en algún momento necesitará proporcionar acceso remoto al servidor de base de datos MySQL desde su casa o un servidor web. Puede seguir estos pasos para habilitarlo.

Paso 1:inicie sesión mediante SSH (si el servidor está fuera de su entorno o intranet)

Primero, inicie sesión a través de ssh en el servidor de base de datos MySQL remoto desde Windows usando PuTTy o desde Linux usando SSH

Paso 2:edite el archivo my.cnf

Una vez conectado, debe editar el archivo de configuración del servidor MySQL my.cnf usando un editor de texto como vi:

  • En Debian Linux el archivo se encuentra en /etc/mysql/my.cnf ubicación.
  • En Red Hat Linux/Fedora/Centos Linux el archivo se encuentra en /etc/my.cnf ubicación.

Para editar /etc/my.cnf, ejecute:

# vi /etc/my.cnf
  • En Windows , el archivo my.ini se encuentra en C:\Program Files\MySQL\MySQL Server X.Y (X.Y es el número de versión del servidor MySQL)

Para Windows, abra el archivo my.ini en el bloc de notas

Paso 3:Una vez abierto el archivo, busque la línea que dice lo siguiente

[mysqld]

Asegúrese de que se comente el salto de línea en red (o elimine la línea) y agregue la siguiente línea

bind-address=YOUR-SERVER-IP

Por ejemplo, si la IP de su servidor MySQL es 173.234.21.12, el bloque completo se verá así:

[mysqld]
user            = mysql
pid-file        = /var/run/mysqld/mysqld.pid
socket          = /var/run/mysqld/mysqld.sock
port            = 3306
basedir         = /usr
datadir         = /var/lib/mysql
tmpdir          = /tmp
language        = /usr/share/mysql/English
bind-address    = 173.234.21.12
# skip-networking
....

donde,

  • dirección de enlace :dirección IP a la que enlazar.
  • omitir redes :No escuche las conexiones TCP/IP en absoluto. Toda interacción con mysqld debe realizarse a través de sockets Unix. Esta opción es muy recomendable para sistemas en los que solo se permiten solicitudes locales. Dado que debe permitir la conexión remota, esta línea debe eliminarse de my.cnf o comentarse.

Paso 4:Guarde y cierre el archivo

En Debian/Ubuntu Linux, escriba el siguiente comando para reiniciar el servidor mysql:

# /etc/init.d/mysql restart

En RHEL/CentOS/Fedora/Scientific Linux, escriba el siguiente comando para reiniciar el servidor mysql:

# /etc/init.d/mysqld restart

En Windows, abra el símbolo del sistema como administrador y escriba

net stop MySQL
net start MySQL

Paso 5:otorgar acceso a la dirección IP remota

Otorgar acceso a una nueva base de datos

Si desea agregar una nueva base de datos llamada foo para la barra de usuario y la IP remota 162.72.20.23, debe escribir los siguientes comandos en el indicador mysql:

mysql> CREATE DATABASE foo;
mysql> GRANT ALL ON foo.* TO bar@'162.72.20.23' IDENTIFIED BY 'PASSWORD';

Otorgar acceso a una base de datos existente

Supongamos que siempre está realizando una conexión desde una IP remota llamada 162.72.20.23 a una base de datos llamada webdb para el usuario webadmin. Para otorgar acceso a esta dirección IP para la base de datos existente, escriba el siguiente comando en el indicador mysql:

mysql> update db set Host='162.72.20.23' where Db='webdb';
mysql> update user set Host='162.72.20.23' where user='webadmin';

Paso 6:Salir de MySQL

Escriba el comando de salida para cerrar la sesión de mysql:

mysql> exit

Paso 7:Abra el puerto 3306

Una regla de iptables de muestra para abrir el firewall de iptables de Linux

/sbin/iptables -A INPUT -i eth0 -p tcp --destination-port 3306 -j ACCEPT

O solo permita la conexión remota desde su servidor web ubicado en 162.72.20.23:

/sbin/iptables -A INPUT -i eth0 -s 162.72.20.23 -p tcp --destination-port 3306 -j ACCEPT

O solo permita la conexión remota desde su subred LAN 192.168.1.0/24:

/sbin/iptables -A INPUT -i eth0 -s 192.168.1.0/24 -p tcp --destination-port 3306 -j ACCEPT

Finalmente, guarde todas las reglas (comando específico de RHEL / CentOS):
# service iptables save

En Windows, vaya a Panel de control> Firewall de Windows> Agregar regla de entrada para el puerto 3306

Paso 8:Pruebe el acceso remoto a la base de datos MySQL

Desde su sistema remoto o su escritorio, escriba el siguiente comando:

$ mysql -u webadmin –h 173.234.21.12 –p

En Windows, ejecute el programa de línea de comandos de MySQL e inicie sesión como administrador escribiendo el siguiente comando desde la carpeta raíz de MySQL (por ejemplo, Archivos de programa\MySQL\MySQL Server 5.5\bin):

C:\Program Files\MySQL\MySQL Server 5.5\bin>mysql -u webadmin –h 173.234.21.12 –p

Donde,