Cómo permitir conexiones remotas a MySQL

Cómo permitir conexiones remotas a MySQL

Si está trabajando con una base de datos MySQL, entonces ya está al tanto de los desafíos que enfrenta para mantener segura su base de datos. Desde intentos de piratería de bases de datos que usan inyecciones de SQL hasta ataques de fuerza bruta, es difícil mantener sus datos seguros, especialmente si está trabajando con una base de datos de forma remota.

Hay formas de configurar un servidor SQL para permitir conexiones remotas, pero debe tener cuidado, ya que permitir conexiones remotas en un servidor MySQL puede hacer que su base de datos sea un objetivo fácil para los hackers. Si desea permitir conexiones seguras y remotas a una base de datos MySQL, esto es lo que necesitará saber.

Tabla de contenido

    Esta guía lo llevará a través de los pasos para configurar MySQL para permitir conexiones remotas, pero deberá asegurarse de tener acceso directo o remoto al servidor que aloja primero su servidor MySQL.

    Supongamos que no tiene acceso remoto a su servidor a través de SSH (por ejemplo). En ese caso, no podrá configurar su base de datos MySQL para permitir conexiones remotas directamente a menos que su cuenta de Root MySQL ya permita conexiones remotas. Por lo tanto, primero deberá establecer esta conexión antes de poder continuar.

    Edición de su archivo de configuración MySQL

    El primer paso en la configuración de MySQL para permitir conexiones remotas es editar su archivo de configuración de MySQL. En esta etapa, esta guía asumirá que ya se ha conectado al servidor, la PC o la Mac alojando su base de datos MySQL de forma remota y tiene acceso a la consola.

    Alternativamente, puede configurar un servidor MySQL local utilizando un terminal abierto en Mac o Linux o un editor de texto en Windows.

    1. Para comenzar, use su editor de texto de consola preferido para editar su archivo de base de datos MySQL. En Linux, escriba sudo nano/etc/mysql/mysql.confusión.d/mysqld.CNF en un terminal o ventana SSH para editar este archivo utilizando el nano Editor (suponiendo que su base de datos MySQL esté en la ubicación predeterminada).
    1. Si está ejecutando Windows, abra el explorador de archivos y acceda a la carpeta que contiene su instalación de MySQL (por ejemplo,. C:/archivos de programa/mysql/mysql servidor 8.0). Abre el mi.ini Archivo utilizando su editor de texto predeterminado (por ejemplo. Bloc de notas) haciendo doble clic en la entrada. Si no está allí, crea el archivo primero.
    1. En Mac, abra una ventana de terminal y escriba sudo nano/usr/local/etc/my.CNF. Este es el archivo de configuración predeterminado para MySQL si ha instalado MySQL usando HomeBrew.

    Las ubicaciones mencionadas anteriormente son las ubicaciones predeterminadas para los archivos de configuración de MySQL. Si estos comandos no funcionan, deberá buscar los archivos relevantes (mi.CNF, mysqld.CNF, o mi.ini) manualmente para localizar la ruta del archivo relevante.

    Configuración de un rango de IP de dirección de enlace seguro

    1. Una vez que haya abierto el archivo de configuración MySQL para su servidor, use la tecla de flecha de su teclado para llegar a la directorio Sección del archivo. Este rango de IP limita las conexiones a su base de datos, que generalmente se establece para permitir solo conexiones desde la máquina o servidor local utilizando 127.0.0.1.
    1. Si desea configurar su base de datos MySQL para permitir las conexiones de los dispositivos utilizando su conexión a Internet actual, primero encuentre su dirección IP pública y luego reemplace 127.0.0.1 con esa dirección IP. Alternativamente, reemplácelo con una dirección IP para el dispositivo o servidor que desee permitir las conexiones desde.
    1. En algunas circunstancias, es posible que desee permitir todo Conexiones remotas a una base de datos MySQL. Esto lleva riesgo extremo y no debe usarse en un servidor de producción. Sin embargo, si desea permitir esto, reemplace 127.0.0.1 con 0.0.0.0.
    1. Tome nota del puerto valor en el Ajustes básicos sección. Esto se requerirá en la siguiente sección. Si no es visible, se utilizará el valor predeterminado, que es el puerto 3306. Puede agregar su propio puerto escribiendo puerto = xxxx en una nueva línea, reemplazando xxxx con un valor puerto adecuado.
    1. Una vez que haya configurado el directorio En su archivo de configuración MySQL, guarde el archivo. Si está en Linux, seleccione CTRL + O y CTRL + X para hacer esto. En Mac, seleccione Comando + O y Comando + X. Los usuarios de Windows pueden guardar seleccionando Archivo > Ahorrar.
    1. A continuación, los usuarios de Linux y Mac pueden reiniciar MySQL escribiendo mysql.Servidor de parada && mysql.Inicio del servidor o mysql.reinicio del servidor. Es posible que deba elevar el comando usando sudo (por ejemplo,. sudo mysql.reinicio del servidor) y use la ruta apropiada para el mysql.Archivo del servidor (por ejemplo. /usr/local/bin/mysql.servidor).
    1. Si el comando anterior no funciona, intente SUDO SERVICIO MYSQL RESTART en cambio.
    1. Para reiniciar MySQL en Windows, abra una nueva ventana de PowerShell haciendo clic derecho en el menú de inicio y seleccionando Windows PowerShell (administrador). En la ventana PowerShell, escriba Net Stop MySQL80 seguido por Net inicio mySQL80, reemplazo mysql80 con el nombre del servicio correcto en su PC.

    Si no está seguro del nombre correcto del servicio en Windows, escriba inicio neto para encontrarlo.Si no puede recargar su configuración, reinicie su servidor y vuelva a cargar MySQL manualmente (si es necesario) en su lugar).

    Configuración de sus firewalls

    En esta etapa, su base de datos MySQL debe permitir conexiones remotas de los dispositivos utilizando la dirección IP que establece como el directorio valor en su archivo de configuración mysql (o de todos los dispositivos si establece este valor en 0.0.0.0 en cambio). Sin embargo, las conexiones aún serán bloqueadas por su Dispositivo o firewall de red.

    La mayoría de los servidores y las PC usan un firewall para bloquear las conexiones a menos que se otorgue acceso a un puerto específico. Los pasos para configurar esto variarán, dependiendo de si está ejecutando MySQL en Windows o Linux. Los firewalls de Mac están deshabilitados de forma predeterminada, por lo que no debe necesitar completar ningún paso adicional aquí.

    Configurar firewalls de Linux

    Muchos servidores de Linux usan iptables Como la utilidad predeterminada de firewall. Puede configurarlo siguiendo los pasos a continuación.

    1. Abra una conexión de terminal o SSH y escriba sudo iptables -a entrada -p tcp -s x.X.X.X -dport yyyy -j acepta. Reemplazar X.X.X.X Con la dirección IP para el dispositivo, desea permitir las conexiones MySQL de, y reemplazar Yyy con el valor del puerto coincidente de su archivo de configuración MySQL (por ejemplo,. 3306).
    1. Esto configurará el firewall temporalmente. Si está utilizando un servidor Linux con sede en Debian o Ubuntu, haga que este cambio sea permanente escribiendo SUDO NETFILTER PERSISTENT SAVE y SUDO NETFILTER PERSISTENTE en la ventana terminal o ssh.

    Si iPtables no es la herramienta de firewall predeterminada para su distribución de Linux, deberá consultar el manual de usuario de su distribución para obtener más información. Si ciertos paquetes (como netfilter) no están disponibles, use la herramienta de repositorio de software de su distribución para instalarla (por ejemplo,. sudo apt install netFilter-Persistente).

    Configurar firewalls de Windows

    Si está utilizando una PC o servidor de Windows para alojar su base de datos, puede configurar su firewall usando estos pasos:

    1. Haga clic con el botón derecho en el menú de inicio y seleccione Correr.
    1. En el Correr caja, escriba WF.MSC y seleccionar DE ACUERDO.
    1. En el Defensor de Windows Ventana, seleccione Reglas de entrada > Nueva regla.
    1. En el Nuevo asistente de reglas entrantes Ventana, seleccione Puerto > Próximo.
    1. En el siguiente menú, seleccione TCP Desde las opciones, escriba 3306 (O cualquier valor del puerto que se enumere en su archivo de configuración de MySQL), luego seleccione Próximo.
    1. En el Acción menú, deje la opción predeterminada a Permitir la conexión habilitado, luego seleccione Próximo.
    1. Confirme que desea que la regla se aplique a todos los tipos de red, luego seleccione Próximo.
    1. Escriba un nombre descriptivo para la regla (por ejemplo,. Mysql) En el puerto proporcionado, luego seleccione Finalizar Para agregarlo a su lista de reglas de firewall.

    Si tiene problemas para conectarse, repita estos pasos anteriores, asegúrese de crear un nuevo regla de salida En su configuración de firewall utilizando los mismos detalles (puerto 3306, etc.). También es posible que deba configurar su enrutador de red local para abrir los puertos bloqueados necesarios para permitir conexiones entrantes y salientes a su base de datos. 

    Conectarse a un servidor remoto usando mysql

    Después de configurar su base de datos MySQL para permitir conexiones remotas, deberá establecer una conexión a ella. Puedes hacer esto usando el mysql dominio (mysql.exe en ventanas) desde una terminal o ventana de PowerShell.

    Si está ejecutando Windows, deberá asegurarse de que MySQL esté instalado localmente antes de comenzar. Los usuarios de Mac pueden instalar MySQL usando HomeBrew desde el terminal (Brew instalar mysql), mientras que los usuarios de Linux pueden usar su repositorio de aplicaciones local (por ejemplo,. sudo apto install mysql) para instalar los paquetes necesarios.

    Conectarse a MySQL en Linux o Mac

    1. Para conectarse a su servidor MySQL remoto en Mac o Linux, abra una nueva ventana de terminal y escriba mysql -U nombre de usuario -h x.X.X.X: xxxx -p. Reemplazar X.X.X.X: xxxx con la dirección IP y el número de puerto de su servidor remoto (por ejemplo,. 100.200.100.200: 3306) y nombre de usuario con tu nombre de usuario mysql.
    1. Cuando se le solicite, confirme su contraseña. Si la conexión es exitosa, aparecerá un mensaje de éxito en la terminal.

    Conectarse a MySQL en Windows

    1. Para conectarse a un servidor MySQL remoto en Windows, abra una nueva ventana de PowerShell haciendo clic derecho en el menú Inicio y seleccionando Windows PowerShell (administrador).
    1. En la nueva ventana de PowerShell, escriba CD "C: \ Archivos de programa \ mysql \ mysql workbench 8.0 \"Para ingresar la carpeta correcta, reemplazando este directorio con el directorio de instalación correcto en su PC. Por ejemplo, si su versión de MySQL es 8.0.1, usa el MySQL Workbench 8.0.1 carpeta en su lugar.
    1. A partir de ahí, escriba .\ mysql.exe -u nombre de usuario -h x.X.X.X: xxxx -p. Reemplazar X.X.X.X: xxxx con la dirección IP y el número de puerto de su servidor remoto (por ejemplo,. 100.200.100.200: 3306) y nombre de usuario con un nombre de usuario MySQL que permite el acceso remoto (como raíz). Siga cualquier instrucción adicional en pantalla.
    2. Proporcione su contraseña, cuando se le solicite, para completar el proceso de inicio de sesión y acceder a su base de datos MySQL de forma remota.

    Si esto no funciona, conéctese al servidor o la PC que aloja su servidor MySQL usando SSH (o accede directamente) usando estos pasos y usando el -H localhost argumento. Luego puede crear una cuenta de usuario adecuada siguiendo los pasos a continuación.

    Permitir el acceso remoto a los usuarios a una base de datos MySQL

    En este punto, debería poder conectarse a su servidor MySQL de forma remota utilizando la cuenta de usuario root de su servidor u otra cuenta de usuario con privilegios elevados. Como este nivel de acceso no es seguro, puede preferir crear una cuenta más restringida para acceder a su base de datos MySQL.

    Esta cuenta tendrá acceso limitado a su servidor MySQL, lo que le permitirá interactuar con bases de datos seleccionadas. No podrá realizar cambios más serios, como acceder a otros datos de bases de datos, crear nuevas cuentas de usuario, etc.

    Deberá tener la capacidad de iniciar sesión en su servidor MySQL de forma remota. Si no puede usar su cuenta raíz de forma remota, deberá acceder al shell de su servidor usando el mysql Comando a través de una conexión SSH remota o accediendo directamente a la PC o al servidor alojando el servidor.

    1. En su control remoto mysql (usando el mysql herramienta), escriba Crear usuario "nombre de usuario"@"x.X.X.x "identificado por" contraseña "; y seleccionar Ingresar. Reemplazar nombre de usuario Con el nombre de usuario desea crear, X.X.X.X con la dirección IP de la que desea conectarse y contraseña con una contraseña adecuada.
    1. Deberá otorgarle a su nueva cuenta los permisos necesarios. Para hacer esto, escriba Otorgar todo en DatabAsename.* Al nombre de usuario@"x.X.X.X"; y reemplazar DataBASEname, nombre de usuario, y X.X.X.X Con los detalles correctos. Si lo desea, reemplace nombre de la base de datos con * Para otorgarle acceso a todas las bases de datos.

    Con el acceso otorgado, use los pasos en la sección anterior para conectarse a su servidor de forma remota utilizando su nueva cuenta (por ejemplo,. mysql -U nombre de usuario -h x.X.X.X: xxxx -p).

    Asegurar los datos de su base de datos

    Ya sea que esté trabajando con MySQL u otro tipo de base de datos SQL, es importante mantener sus conexiones seguras para mantener su seguridad de datos. Una buena manera de hacerlo es generar claves SSH para el acceso remoto a su servidor, en lugar de confiar en contraseñas obsoletas (y fácilmente adivinables).

    Si le preocupa la pérdida de datos, puede hacer una copia de seguridad de su base de datos en línea. La mayoría de las bases de datos se ejecutan utilizando servidores Linux: puede automatizar fácilmente una copia de seguridad de un archivo de Linux. Si está ejecutando MySQL en Windows, puede configurar un sistema de copia de seguridad automático similar para Windows, lo que le permite restaurar sus datos en una emergencia.