Conecta un cliente MySQL desde Compute Engine

En esta página, se describe cómo usar el cliente MySQL, instalado en una instancia de Compute Engine, con el fin de conectarlo a Cloud SQL.

Si te conectas a una instancia de MySQL, puedes usar una IP privada, una IP pública, el proxy de Cloud SQL o la imagen de Docker del proxy.

Antes de comenzar

Antes de que puedas conectarte a tu instancia de Cloud SQL, debes tener un usuario (raíz) de base de datos predeterminado en la instancia.

Esta tarea no incluye instrucciones para configurar la instancia de Compute Engine. Si necesitas ayuda para crear y configurar una instancia de Compute Engine, consulta la documentación de Compute Engine.

Conéctate con una IP privada

A fin de conectarte a Cloud SQL desde una instancia de Compute Engine con una IP privada, el acceso a servicios privados debe estar configurado para tu entorno y la instancia de Cloud SQL debe estar configurada para usar una IP privada. La instancia de Compute Engine debe estar en la misma región que la instancia de Cloud SQL y en la red configurada para una conexión privada. Más información

  1. Configura tu instancia con IP privada. Para hacerlo, sigue las instrucciones en la página sobre cómo configurar la conectividad de IP privada.
  2. Abre una conexión de terminal en tu instancia de Compute Engine.

    Sigue las instrucciones correspondientes según el sistema operativo de la instancia:

  3. Instala el cliente MySQL en la instancia de Compute Engine, si todavía no está instalado.

    Debian/Ubuntu

    Instala el cliente MySQL desde el administrador de paquetes:

    sudo apt-get update
    sudo apt-get install mysql-server
    

    CentOS/RHEL

    Instala el cliente MySQL desde el administrador de paquetes:

    sudo yum install mysql
    

    openSUSE

    Instala el cliente MySQL desde el administrador de paquetes:

    sudo zypper install mysql-server
    

    Otras plataformas

    1. Descarga el servidor de la comunidad de MySQL para tu plataforma desde la página de descarga del servidor de la comunidad de MySQL.
      El servidor de la comunidad incluye el cliente MySQL.
    2. Instala el servidor de la comunidad con las instrucciones que se muestran en la página de descargas.

    Para obtener más información sobre cómo instalar MySQL, consulta el capítulo del manual de referencia de MySQL sobre cómo instalar y actualizar MySQL.

  4. Conéctate con el cliente MySQL.
    mysql --host=[CLOUD_SQL_PRIVATE_IP_ADDR] --user=root --password
    

Conexión mediante una dirección IP pública

  1. Agrega una dirección IP IPv4 estática a la instancia de Compute Engine, si no tiene una. No puedes conectarte a Compute Engine con IPv6. Para obtener más información sobre cómo agregar una dirección IP estática, consulta Reserva una nueva dirección IP externa estática en la documentación de Compute Engine.
  2. Autoriza la dirección IP estática de la instancia de Compute Engine como una red para que se pueda conectar a tu instancia de Cloud SQL.

    Para obtener más información, consulta Configura el acceso para las conexiones de IP.

  3. Abre una conexión terminal en tu instancia de Compute Engine.

    Sigue las instrucciones correspondientes según el sistema operativo de la instancia:

  4. Instala el cliente MySQL en la instancia de Compute Engine, si todavía no está instalado.

    Debian/Ubuntu

    Instala el cliente MySQL desde el administrador de paquetes:

    sudo apt-get update
    sudo apt-get install mysql-server
    

    CentOS/RHEL

    Instala el cliente MySQL desde el administrador de paquetes:

    sudo yum install mysql
    

    openSUSE

    Instala el cliente MySQL desde el administrador de paquetes:

    sudo zypper install mysql-server
    

    Otras plataformas

    1. Descarga el servidor de la comunidad de MySQL para tu plataforma desde la página de descarga del servidor de la comunidad de MySQL.
      El servidor de la comunidad incluye el cliente MySQL.
    2. Instala el servidor de la comunidad con las instrucciones que se muestran en la página de descargas.

    Para obtener más información sobre cómo instalar MySQL, consulta el capítulo del manual de referencia de MySQL sobre cómo instalar y actualizar MySQL.

  5. Conéctate con el cliente MySQL.
    mysql --host=[CLOUD_SQL_PUBLIC_IP_ADDR] --user=root --password
    
    Ejecuta el siguiente comando de gcloud para encontrar CLOUD_SQL_PUBLIC_IP_ADDR:
    gcloud sql instances list
    

    Para ver un ejemplo sobre cómo conectarte mediante SSL, consulta Conéctate mediante SSL.

  6. Aparecerá el cuadro de MySQL.
  7. Para mantener las conexiones sin usar en funcionamiento, puedes establecer TCP keepalive.

    Para obtener más información, consulta la página sobre cómo comunicar tus instancias a Internet en la documentación de Compute Engine.

    Las conexiones se mantienen activas de forma automática para las instancias.

¿Necesitas ayuda? Para solucionar problemas del proxy, consulta Cómo solucionar problemas de conexión del proxy de Cloud SQL. También puedes consultar nuestra página de asistencia de Cloud SQL.

Conexión con el proxy de Cloud SQL

  1. Habilita la API Cloud SQL Admin.

    Habilita la API

  2. Crea una cuenta de servicio para el proxy.
  3. Cuando usas una cuenta de servicio a fin de proporcionar credenciales para el proxy, debes crearla con los permisos necesarios. Si usas las funciones más específicas de Identity Access and Management (IAM) para administrar los permisos de Cloud SQL, debes asignarle a la cuenta de servicio una función que incluya el permiso cloudsql.instances.connect. A continuación, se enumeran las funciones predefinidas de Cloud SQL que incluyen este permiso:

    • Cliente de Cloud SQL
    • Editor de Cloud SQL
    • Administrador de Cloud SQL

    Si usas las funciones de proyecto heredadas (visualizador, editor o propietario), la cuenta de servicio debe tener, al menos, la función de editor.

    1. Ve a la página Cuentas de servicio de Google Cloud Console.

      Ve a la página Cuentas de servicio

    2. Selecciona el proyecto que contiene la instancia de Cloud SQL.
    3. Haz clic en Crear cuenta de servicio.
    4. En el cuadro de diálogo Crear cuenta de servicio, ingresa un nombre descriptivo para la cuenta de servicio.
    5. En Función, selecciona una de las siguientes funciones:
      • Cloud SQL > Cliente de Cloud SQL
      • Cloud SQL > Editor de Cloud SQL
      • Cloud SQL > Administrador de Cloud SQL

      O bien, puedes seleccionar Proyecto > Editor a fin de usar la función básica de editor, pero esta incluye permisos para todo Google Cloud.

      Si no ves estas funciones, es posible que tu usuario de Google Cloud no tenga el permiso resourcemanager.projects.setIamPolicy. Para comprobar tus permisos, accede a la página de IAM en Google Cloud Console y busca tu ID de usuario.

    6. Cambia el ID de la cuenta de servicio por un valor único y reconocible.
    7. Haz clic en Proporcionar una nueva clave privada y confirma que el tipo de clave sea JSON.
    8. Haz clic en Crear.

      El archivo de clave privada se descargará en tu equipo. Puedes moverlo a otra ubicación. Protege el archivo de claves.

  4. Si la instancia de Compute Engine se encuentra en un proyecto diferente que la instancia de Cloud SQL, asegúrate de que la cuenta de servicio tenga los permisos correspondientes en el proyecto que contiene la instancia de Cloud SQL:
    1. Ve a la lista de instancias de Compute Engine en Google Cloud Console.

      Ir a la lista de instancias de Compute Engine

    2. Si es necesario, selecciona el proyecto asociado con la instancia de Compute Engine.
    3. Selecciona la instancia de Compute Engine para ver las propiedades.
    4. En las propiedades de la instancia de Compute Engine, copia el nombre de la cuenta de servicio.
    5. Ve a la página Proyectos de IAM y de administración en Google Cloud Console.

      Ir a la página Proyectos de IAM y de administración

    6. Selecciona el proyecto que contiene la instancia de Cloud SQL.
    7. Busca el nombre de la cuenta de servicio.
    8. Si la cuenta de servicio ya existe y tiene una función que incluye el permiso cloudsql.instances.connect, puedes continuar con el paso 4.

      Las funciones de Cloud SQL Client, Cloud SQL Editor y Cloud SQL Admin brindan los permisos necesarios, al igual que las funciones de proyecto heredadas Editor y Owner.

    9. De lo contrario, haz clic en Agregar para incluir la cuenta de servicio.
    10. En el cuadro de diálogo Agregar miembros, ingresa el nombre de la cuenta de servicio y selecciona una función que incluya el permiso cloudsql.instances.connect (cualquier función predefinida de Cloud SQL funcionará, excepto Visualizador).

      O bien, puedes seleccionar Proyecto > Editor a fin de usar la función básica de editor, pero esta incluye permisos para todo Google Cloud.

      Si no ves estas funciones, es posible que tu usuario de Google Cloud no tenga el permiso resourcemanager.projects.setIamPolicy. Para comprobar tus permisos, accede a la página de IAM en Google Cloud Console y busca tu ID de usuario.

    11. Haz clic en Agregar.

      Ahora verás que la cuenta de servicio aparece con la función especificada.

  5. Abre una conexión de terminal en tu instancia de Compute Engine.

    Sigue las instrucciones correspondientes según el sistema operativo de la instancia:

  6. Si tu instancia de Compute Engine ejecuta una imagen pública CentOS o RHEL, es posible que SELinux bloquee la conexión del proxy. Si esto sucede, debes configurar la función SELinux para permitir la conexión.

    Si deseas obtener más información sobre SELinux para RHEL, consulta la documentación de RHEL. Si deseas obtener más información sobre SELinux para CentOS, consulta la documentación de CentOS.

  7. Instala el cliente MySQL en la instancia de Compute Engine, si todavía no está instalado.

    Debian/Ubuntu

    Instala el cliente MySQL desde el administrador de paquetes:

    sudo apt-get update
    sudo apt-get install mysql-server
    

    CentOS/RHEL

    Instala el cliente MySQL desde el administrador de paquetes:

    sudo yum install mysql
    

    openSUSE

    Instala el cliente MySQL desde el administrador de paquetes:

    sudo zypper install mysql-server
    

    Otras plataformas

    1. Descarga el servidor de la comunidad de MySQL para tu plataforma desde la página de descarga del servidor de la comunidad de MySQL.
      El servidor de la comunidad incluye el cliente MySQL.
    2. Instala el servidor de la comunidad con las instrucciones que se muestran en la página de descargas.

    Para obtener más información sobre cómo instalar MySQL, consulta el capítulo del manual de referencia de MySQL sobre cómo instalar y actualizar MySQL.

  8. Instala el proxy de Cloud SQL en la instancia de Compute Engine.

    Linux de 64 bits

    1. Descarga el proxy con el siguiente comando:
      wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy
      
    2. Haz que el proxy sea ejecutable con el siguiente comando:
      chmod +x cloud_sql_proxy
      

    Linux de 32 bits

    1. Descarga el proxy con el siguiente comando:
      wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.386 -O cloud_sql_proxy
      
    2. Haz que el proxy sea ejecutable con el siguiente comando:
      chmod +x cloud_sql_proxy
      

    Windows de 64 bits

    Para descargar el proxy, haz clic con el botón derecho en https://dl.google.com/cloudsql/cloud_sql_proxy_x64.exe y selecciona Guardar vínculo como. Cambia el nombre del archivo por cloud_sql_proxy.exe.

    Windows de 32 bits

    Para descargar el proxy, haz clic derecho en https://dl.google.com/cloudsql/cloud_sql_proxy_x86.exe y selecciona Guardar vínculo como. Cambia el nombre del archivo por cloud_sql_proxy.exe.
    Si no se incluye aquí tu sistema operativo, también puedes compilar el proxy desde la fuente.

  9. Inicia el proxy.

    Según el lenguaje y entorno, puedes iniciar el proxy con sockets TCP o con sockets Unix.

    Sockets TCP

    1. Copia el nombre de la conexión de la instancia desde la página Detalles de la instancia.

      Por ejemplo: myproject:myregion:myinstance.

    2. Si usas una cuenta de servicio para autenticar el proxy, toma nota de la ubicación en la máquina cliente del archivo de clave privada que se generó cuando creaste la cuenta de servicio.
    3. Inicia el proxy.

      Estas son algunas strings posibles para invocar al proxy:

      • Si usas la autenticación del SDK de Cloud:
        ./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:3306
        
        El puerto especificado no debe estar en uso, por ejemplo, por un servidor de base de datos local.
      • Si usas una cuenta de servicio y también incluyes de forma explícita el nombre de la conexión de la instancia (recomendado para entornos de producción):
        ./cloud_sql_proxy -instances=<INSTANCE_CONNECTION_NAME>=tcp:3306 \
                          -credential_file=<PATH_TO_KEY_FILE> &
        

      Si deseas obtener más información sobre las opciones del proxy, consulta las opciones para autenticar el proxy y las opciones de especificación de instancias.

    Sockets Unix

    1. Si usas una especificación de instancia explícita, copia el nombre de la conexión de tu instancia que aparece en la página Detalles de la instancia.
    2. Crea el directorio donde se alojarán los sockets del proxy:
      sudo mkdir /cloudsql; sudo chmod 777 /cloudsql
    3. Si usas una cuenta de servicio para autenticar el proxy, toma nota de la ubicación del archivo de claves privadas que se generó en la máquina cliente cuando creaste la cuenta de servicio.
    4. Abre una ventana de terminal nueva y, luego, inicia el proxy.

      Estas son algunas strings posibles para invocar al proxy:

      • Si usas una cuenta de servicio y también incluyes de forma explícita el nombre de la conexión de la instancia (recomendado para entornos de producción):
        ./cloud_sql_proxy -dir=/cloudsql -instances=<INSTANCE_CONNECTION_NAME> \
                          -credential_file=<PATH_TO_KEY_FILE> &
      • Si usas la autenticación del SDK de Cloud y la detección automática de instancias:
        ./cloud_sql_proxy -dir=/cloudsql &

      Se recomienda iniciar el proxy en su propia terminal para que puedas supervisar los resultados sin que se mezclen con los de otros programas.

      Si deseas obtener más información sobre las opciones del proxy, consulta las opciones para autenticar el proxy y las opciones de especificación de instancias.

    5. Cuando uses un socket Unix para conectarte a Cloud SQL con el proxy de Cloud SQL, asegúrate de que la longitud del nombre del socket no supere el límite del sistema. Esto depende del sistema, pero suele tener entre 91 y 108 caracteres. En Linux, la longitud se suele definir como 108, y puedes usar el siguiente comando para verificar:
      cat /usr/include/linux/un.h | grep "define UNIX_PATH_MAX"
  10. Inicia la sesión de MySQL.

    La string de conexión que uses dependerá de si iniciaste el proxy con un socket TCP o un socket UNIX.

    Sockets TCP

    1. Inicia el cliente MySQL:
      mysql -u <USERNAME> -p --host 127.0.0.1
      

      Cuando te conectas mediante los sockets TCP, se accede al proxy a través de 127.0.0.1.

    2. Si se te solicita, ingresa la contraseña.
    3. Aparecerá el cuadro de MySQL.

    Sockets Unix

    1. Inicia el cliente MySQL:
      mysql -u <USERNAME> -p -S /cloudsql/<INSTANCE_CONNECTION_NAME>
      
    2. Ingresa la contraseña.
    3. Aparecerá el cuadro de MySQL.

¿Necesitas ayuda? Para solucionar problemas del proxy, consulta Cómo solucionar problemas de conexión del proxy de Cloud SQL. También puedes consultar nuestra página de asistencia de Cloud SQL.

Próximos pasos