Crea instancias

En esta página, se describe cómo crear un Cloud SQL para una instancia de MySQL.

Para obtener información detallada sobre toda la configuración de las instancias, consulta Configuración de las instancias.

Después de crear una instancia de Cloud SQL, debes agregarle bases de datos. Para ello, debes crearlas o importarlas.

Antes de comenzar

  1. Accede a tu Cuenta de Google.

    Si todavía no tienes una cuenta, regístrate para obtener una nueva.

  2. En la página de selección de proyectos de Cloud Console, selecciona o crea un proyecto de Cloud.

    Ir a la página Selector de proyectos

  3. Asegúrate de que la facturación esté habilitada para tu proyecto de Google Cloud. Obtén información sobre cómo confirmar que tienes habilitada la facturación para tu proyecto.

  4. Instala e inicializa el SDK de Cloud.
  5. Asegúrate de tener las funciones de administrador de Cloud SQL y visualizador de Compute en tu cuenta de usuario.

    Ir a la página IAM

    Obtén más información sobre las funciones y los permisos.

Crea una instancia de MySQL

Para crear una instancia de MySQL, sigue estos pasos:

Console

  1. Ve a la página Instancias de Cloud SQL en Google Cloud Console.

    Ir a la página Instancias de Cloud SQL

  2. Haz clic en Crear instancia.
  3. Selecciona MySQL y haz clic en Siguiente.
  4. Ingresa un nombre.

    No incluyas información sensible ni de identificación personal en el nombre de tu instancia, ya que es visible de forma externa.

    No debes incluir el ID de proyecto en el nombre de la instancia. Esto se hace de manera automática cuando es apropiado (por ejemplo, en los archivos de registro).

  5. Ingresa la contraseña para el usuario 'root'@'%'.
  6. En Ubicación, selecciona la región y zona para la instancia.

    Ubica la instancia en la misma región en la que están los recursos que acceden a ella. No se podrá modificar la región que seleccionaste en un futuro. En la mayoría de los casos, no necesitas especificar una zona.

  7. En Opciones de configuración, actualiza la configuración de la instancia:
    Configuración Notas
    Versión de la base de datos
    Versión de la base de datos MySQL 8.0, MySQL 5.7 (predeterminada) o 5.6.
    Conectividad
    IP privada Se agrega una dirección IP privada a la instancia. Para habilitar la conexión a la instancia, se requiere una configuración adicional. .
    IP pública Se agrega una dirección IP pública a la instancia. Para habilitar la conexión a la instancia, se requiere una configuración adicional.
    Tipo de máquina y almacenamiento
    Tipo de máquina El tipo de máquina (a veces llamado “nivel”) determina la cantidad de CPU y de memoria que tiene tu instancia. Más información.
    Tipo de almacenamiento Determina si tu instancia usa almacenamiento SSD o HDD. Más información.
    Capacidad de almacenamiento La cantidad de almacenamiento aprovisionado para la instancia. Más información.
    Aumento de almacenamiento automático Determina si Cloud SQL proporciona de manera automática más almacenamiento para tu instancia cuando queda poco espacio libre. Más información.
    Alta disponibilidad Si necesitas que tu instancia esté configurada para alta disponibilidad, debes seleccionar la casilla de verificación Alta disponibilidad (regional). Más información.
    Copias de seguridad automáticas El período en el que deseas que se inicien las copias de seguridad. Más información.
    Registro binario El registro binario permite la replicación y recuperación de un momento determinado. Más información.
    Agregar marcas de bases de datos
    Marcas de bases de datos Puedes usar las marcas de la base de datos para controlar los parámetros y la configuración de tu instancia. Más información.
    Programa de mantenimiento
    Período de mantenimiento Determina un período de una hora para que Cloud SQL realice un mantenimiento disruptivo en tu instancia. Si no configuras el período, el mantenimiento disruptivo puede realizarse en cualquier momento. Más información.
    Horario de mantenimiento Tu horario de preferencia para actualizaciones de instancia, en relación con otras instancias del mismo proyecto. Más información.

    Obtén más información sobre la configuración de instancias.

  8. Haz clic en Crear.

gcloud

Para obtener información sobre cómo instalar y comenzar a usar la herramienta de línea de comandos de gcloud, consulta Instala el SDK de Cloud. Si quieres obtener información para iniciar Cloud Shell, consulta la documentación de Cloud Shell.

  1. Muestra la lista de tipos de máquinas disponibles:
    gcloud sql tiers list
    

    Anota los valores que comienzan con db-. Debes elegir uno de estos para crear una instancia de segunda generación.

    Para obtener información sobre los diferentes tipos de máquinas, sus habilidades y sus efectos en los precios de las instancias, consulta la Página de precios.

  2. Crea la instancia:
    gcloud sql instances create [INSTANCE_NAME] --tier=[MACHINE_TYPE] --region=[REGION]
    

    No incluyas información sensible o de identificación personal en el nombre de tu instancia, ya que es visible de forma externa.
    No debes incluir el ID del proyecto en el nombre de la instancia. Esto se hace de manera automática cuando es apropiado (por ejemplo, en los archivos de registro).

    MACHINE_TYPE es uno de los valores del paso anterior que comienza con db-.

    Por ejemplo, con el comando siguiente, se crea una instancia de segunda generación llamada instance1 con el tipo de máquina db-n1-standard-2 en la región de Londres:

    gcloud sql instances create instance1 --tier=db-n1-standard-2 --region=europe-west2
    

    Puedes agregar más parámetros para determinar la configuración de otras instancias:

    Configuración Parámetro Notas
    Parámetros obligatorios
    Versión de la base de datos --database-version MYSQL_8_0, MYSQL_5_7 (predeterminada) o MYSQL_5_6.
    Región --region Ver valores válidos.
    Conectividad
    IP privada --network Especifica el nombre de la red de VPC que deseas usar para esta instancia. El acceso a servicios privados ya debe estar configurado para la red. Esta opción solo está disponible para el comando Beta (gcloud beta sql instances create). Más información.
    IP pública --authorized-networks Con conexiones de IP públicas, solo las conexiones de redes autorizadas se pueden conectar a tu instancia. Más información.
    Tipo de máquina y almacenamiento
    Tipo de máquina --tier El tipo de máquina determina la cantidad de CPU y de memoria que tiene tu instancia. Visualiza los valores predeterminados. También puedes crear tipos personalizados de máquinas. Más información.
    Tipo de almacenamiento --storage-type Determina si tu instancia usa almacenamiento SSD o HDD. Más información.
    Capacidad de almacenamiento --storage-size La cantidad de almacenamiento aprovisionada para la instancia, en GB. Más información.
    Aumento de almacenamiento automático --storage-auto-increase Determina si Cloud SQL proporciona de manera automática más almacenamiento para tu instancia cuando queda poco espacio libre. Más información.
    Límite de aumento de almacenamiento automático --storage-auto-increase-limit Determina el tamaño del almacenamiento que Cloud SQL puede aumentar de forma automática. Esta opción solo está disponible para el comando Beta (gcloud beta sql instances create). Más información.
    Copias de seguridad automáticas y alta disponibilidad
    Alta disponibilidad --availability-type En el caso de una instancia con alta disponibilidad, configúrala en REGIONAL. Más información.
    Copias de seguridad automáticas --backup-start-time El período en el que deseas que se inicien las copias de seguridad. Más información.
    Registro binario --enable-bin-log El registro binario permite la replicación y recuperación de un momento determinado. Más información.
    Agregar marcas de bases de datos
    Marcas de bases de datos --database-flags Puedes usar las marcas de la base de datos para controlar los parámetros y la configuración de tu instancia. Obtén más información sobre las marcas de base de datos. Obtén más información sobre cómo darle formato a este parámetro.
    Programa de mantenimiento
    Período de mantenimiento --maintenance-window-day,
    --maintenance-window-hour
    Determina un período de una hora durante el cual Cloud SQL realiza un mantenimiento disruptivo en tu instancia. Si no lo configuras, el mantenimiento disruptivo puede realizarse en cualquier momento. Más información.
    Horario de mantenimiento --maintenance-release-channel Tu horario de preferencia para actualizaciones de instancia, en relación con otras instancias del mismo proyecto. Use preview para las primeras actualizaciones y production para las más recientes. Más información.

  3. Anota la dirección IP asignada de manera automática.

    Si no usas el proxy de Cloud SQL, usarás esta dirección como dirección de host que tus aplicaciones o herramientas usarán para conectarse a la instancia.

  4. Configura la contraseña para el usuario “root@%” de MySQL:
    gcloud sql users set-password root --host=% --instance [INSTANCE_NAME] --password [PASSWORD]
    

REST

Crea la instancia.

Este ejemplo crea una instancia con las copias de seguridad y el registro binario habilitados. Esta configuración es opcional. Para ver una lista completa de los parámetros de esta llamada, consulta la página Instances:insert. Para obtener información sobre la configuración de las instancias, incluidos los valores válidos por región y tipo de máquina, consulta Configuración de las instancias.

No incluyas información sensible o de identificación personal en el ID de tu instancia, ya que es visible de forma externa.
No debes incluir el ID del proyecto en el nombre de la instancia. Esto se hace de manera automática cuando es apropiado (por ejemplo, en los archivos de registro).

Antes de usar cualquiera de los siguientes datos de solicitud, reemplaza lo siguiente:

  • project-id: es el ID de tu proyecto.
  • instance-id: es el ID de instancia deseado.
  • region: es la región deseada.
  • machine-type: es el tipo de máquina deseado.

Método HTTP y URL:

POST https://www.googleapis.com/sql/v1beta4/projects/project-id/instances

Cuerpo JSON de la solicitud:

{
  "name": "instance-id",
  "region": "region",
  "settings": {
    "tier": "machine-type",
    "backupConfiguration": {
      "binaryLogEnabled": true,
      "enabled": true
    }
  }
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "kind": "sql#operation",
  "targetLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "PENDING",
  "user": "user@example.com",
  "insertTime": "2019-09-25T22:19:33.735Z",
  "operationType": "CREATE",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

La respuesta es una operación de larga duración, que puede tardar unos minutos en completarse.

Actualiza la contraseña raíz

Cuando la instancia termine de inicializarse, actualiza la contraseña raíz:

Antes de usar cualquiera de los siguientes datos de solicitud, reemplaza lo siguiente:

  • project-id: es el ID de tu proyecto.
  • instance-id: es el ID de la instancia creado en el paso anterior.
  • root-password: es la contraseña raíz deseada.

Método HTTP y URL:

PUT https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id/users?host=%25&name=root

Cuerpo JSON de la solicitud:

{
  "name": "root",
  "host": "%",
  "password": "root-password"
}

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "kind": "sql#operation",
  "targetLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "status": "DONE",
  "user": "user@example.com",
  "insertTime": "2019-09-26T14:32:30.592Z",
  "startTime": "2019-09-26T14:32:30.594Z",
  "endTime": "2019-09-26T14:32:33.518Z",
  "operationType": "UPDATE_USER",
  "name": "operation-id",
  "targetId": "instance-id",
  "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/operations/operation-id",
  "targetProject": "project-id"
}

La respuesta es una operación de larga duración, que puede tardar unos minutos en completarse.

Recupera la dirección IPv4

Recupera la dirección IPv4 asignada de manera automática a la nueva instancia:

Antes de usar cualquiera de los siguientes datos de solicitud, reemplaza lo siguiente:

  • project-id: es el ID de tu proyecto.
  • instance-id: es el ID de la instancia creado en el paso anterior.

Método HTTP y URL:

GET https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id

Para enviar tu solicitud, expande una de estas opciones:

Deberías recibir una respuesta JSON similar a la que se muestra a continuación:

{
  "kind": "sql#instance",
  "state": "RUNNABLE",
  "databaseVersion": "MYSQL_5_7",
  "settings": {
    "authorizedGaeApplications": [],
    "tier": "db-f1-micro",
    "kind": "sql#settings",
    "pricingPlan": "PER_USE",
    "replicationType": "SYNCHRONOUS",
    "activationPolicy": "ALWAYS",
    "ipConfiguration": {
      "authorizedNetworks": [],
      "ipv4Enabled": true
    },
    "locationPreference": {
      "zone": "us-west1-a",
      "kind": "sql#locationPreference"
    },
    "dataDiskType": "PD_SSD",
    "backupConfiguration": {
      "startTime": "18:00",
      "kind": "sql#backupConfiguration",
      "enabled": true,
      "binaryLogEnabled": true
    },
    "settingsVersion": "1",
    "storageAutoResizeLimit": "0",
    "storageAutoResize": true,
    "dataDiskSizeGb": "10"
  },
  "etag": "--redacted--",
  "ipAddresses": [
    {
      "type": "PRIMARY",
      "ipAddress": "10.0.0.1"
    }
  ],
  "serverCaCert": {
    ...
  },
  "instanceType": "CLOUD_SQL_INSTANCE",
  "project": "project-id",
  "serviceAccountEmailAddress": "redacted@gcp-sa-cloud-sql.iam.gserviceaccount.com",
  "backendType": "SECOND_GEN",
  "selfLink": "https://www.googleapis.com/sql/v1beta4/projects/project-id/instances/instance-id",
  "connectionName": "project-id:region:instance-id",
  "name": "instance-id",
  "region": "us-west1",
  "gceZone": "us-west1-a"
}

Busca el campo ipAddress en la respuesta.

Si quieres ver cómo se crea la solicitud a la API de REST subyacente para esta tarea, consulta el Explorador de API en la página de instances:insert.

Tipos de máquina de muestra

Con tipos personalizados de máquinas, puedes configurar la cantidad de memoria y CPU que tu instancia necesita. Sin embargo, estos valores tienen algunas restricciones:

  • La cantidad de CPU virtuales debe ser 1 o un número par entre 2 y 96.
  • La memoria debe tener las siguientes características:
    • Ser de entre 0.9 y 6.5 GB por CPU virtual
    • Ser un múltiplo de 256 MB
    • Ser de al menos 3.75 GB (3,840 MB)

Aquí hay algunos valores de tipo de máquina de muestra basados en los tipos de máquina predefinidos disponibles para instancias de MySQL:

Tipo predefinido de máquina CPU virtuales Memoria (MB) API de string de nivel
db-n1-standard-1 1 3840 db-custom-1-3840
db-n1-standard-2 2 7680 db-custom-2-7680
db-n1-standard-4 4 15360 db-custom-4-15360
db-n1-standard-8 8 30720 db-custom-8-30720
db-n1-standard-16 16 61440 db-custom-16-61440
db-n1-standard-32 32 122880 db-custom-32-122880
db-n1-standard-64 64 245760 db-custom-64-245760
db-n1-standard-96 96 368640 db-custom-96-368640
db-n1-highmem-2 2 13312 db-custom-2-13312
db-n1-highmem-4 4 26624 db-custom-4-26624
db-n1-highmem-8 8 53248 db-custom-8-53248
db-n1-highmem-16 16 106496 db-custom-16-106496
db-n1-highmem-32 32 212992 db-custom-32-212992
db-n1-highmem-64 64 425984 db-custom-64-425984
db-n1-highmem-96 96 638976 db-custom-96-638976

Soluciona problemas

Haz clic en los vínculos de la tabla para obtener más información:

Situación Posible problema Solución
Internal error. Falta la cuenta de servicio de herramientas redes de servicios. Inhabilita y vuelve a habilitar Service Networking API.
La creación de la instancia de Terraform falla. Hay un error en la configuración de Terraform. Inspecciona y repara el archivo de configuración de Terraform.
HTTP Error 409 en la secuencia de comandos de Terraform. Ya hay otra operación en curso. Corrige la secuencia de comandos de Terraform para que espere a que finalice cada operación.
Unknown error Intentas crear una instancia con el mismo nombre que tenía una instancia que se borró hace poco. También es posible que estés intentando crear varias instancias en simultáneo con un nuevo rango de IP privado que está en uso. Usa un nombre diferente para la instancia o espera hasta que haya pasado una semana desde el momento en que se borró la otra instancia. Vuelve a crear las instancias con errores de manera consecutiva con nombres diferentes.

Error interno

Verás el mensaje de error {"ResourceType":"sqladmin.v1beta4.instance", "ResourceErrorCode":"INTERNAL_ERROR","ResourceErrorMessage":null}.

Posible problema

Es probable que al proyecto de servicio le falte la cuenta de servicio de herramientas de redes de servicios requerida para esta función.

Solución

Para reparar los permisos del servicio, inhabilita la Service Networking API, espera cinco minutos y vuelve a habilitarla.


La creación de la instancia de Terraform falla

La creación de la instancia de Terraform falla.

Posible problema

Por lo general, este es un problema propio de la secuencia de comandos de Terraform.

Solución

Inspecciona y repara el archivo de configuración de Terraform.


Error 409 en la secuencia de comandos de Terraform

Verás el mensaje de error HTTP Error 409 en las secuencias de comandos de Terraform.

Posible problema

Operation failed because another operation was already in progress

Solución

Revisa la secuencia de comandos para detener la ejecución hasta que se complete cada operación de instancia. Sondea la secuencia de comandos y espera hasta que se muestre un estado 200 para el ID de la operación anterior antes de continuar con el siguiente paso.


Error desconocido

Cuando intentas crear una instancia, ves un mensaje de error como Cloud SQL creation failed, error UNKNOWN.

Posible problema

Lo más probable es que estés intentando volver a usar el nombre de una instancia que borraste hace poco. Los nombres de las instancias no se pueden volver a usar durante una semana después de la eliminación. También es posible que estés intentando crear varias instancias en simultáneo con un nuevo rango de IP privado cuando solo se crea la primera instancia y las otras generan un Unknown error.

Solución

Usa un nombre diferente para la instancia o espera una semana a fin de crear una nueva con ese nombre. Crea varias instancias repetidas veces, en lugar de hacerlo en simultáneo.

Próximos pasos