En esta página, se describe cómo crear una instancia de Cloud SQL para MySQL.
Para obtener información detallada sobre toda la configuración de las instancias, consulta Configuración de las instancias.
Una instancia recién creada tiene cuatro bases de datos del sistema:
information_schema
: Proporciona acceso a los metadatos de la base de datos y la información sobre el servidor de MySQL.mysql
: El esquema del sistema. Contiene tablas que almacenan información requerida por el servidor MySQL mientras se ejecuta.performance_schema
: Una función para supervisar la ejecución del servidor MySQL a un nivel bajo.sys
: Contiene un conjunto de objetos que ayuda a los DBA y los desarrolladores a interpretar los datos recopilados por el esquema de rendimiento.
Antes de comenzar
- Sign in to your Google Cloud account. If you're new to Google Cloud, create an account to evaluate how our products perform in real-world scenarios. New customers also get $300 in free credits to run, test, and deploy workloads.
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
-
In the Google Cloud console, on the project selector page, select or create a Google Cloud project.
-
Make sure that billing is enabled for your Google Cloud project.
- Install the Google Cloud CLI.
-
To initialize the gcloud CLI, run the following command:
gcloud init
- Asegúrate de tener las funciones de administrador de Cloud SQL y visualizador de Compute en tu cuenta de usuario.
Obtén más información sobre las funciones y los permisos.
Crear una instancia de MySQL
Console
-
En la consola de Google Cloud, ve a la página Instancias de Cloud SQL.
- Haz clic en Crear instancia.
- En el panel Elegir un motor de base de datos de la página Crear una instancia, haz clic en Elegir MySQL.
- En el campo ID de instancia del panel información de la instancia, ingresa un ID para la instancia.
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).
- Establece una contraseña para el usuario raíz.
Aunque existe la opción Sin contraseña, no la recomendamos por razones de seguridad.
Opcional: Configura una política de contraseñas para la instancia de la siguiente manera:
- Selecciona la casilla de verificación Habilitar políticas de contraseñas.
- Haz clic en el botón Configurar política de contraseñas, configura una o más de las siguientes opciones y haz clic en Guardar.
- Longitud mínima: Especifica la cantidad mínima de caracteres que debe tener la contraseña.
- Complejidad de la contraseña: Verifica si la contraseña es una combinación de caracteres en minúscula, mayúscula, numéricos y no alfanuméricos.
- Restringir la reutilización de contraseñas: Especifica la cantidad de contraseñas anteriores que no puedes volver a usar.
Esta opción solo es compatible con Cloud SQL para MySQL 8.0.
- Inhabilitar nombre de usuario: Impide el uso del nombre de usuario en la contraseña.
- Selecciona la versión de la base de datos de tu instancia: MySQL 8.0 (predeterminada), MySQL 5.7 o MySQL 5.6.
- Opcional: Selecciona Mostrar versiones secundarias. Luego, elige una versión secundaria que no sea la predeterminada.
- Selecciona la edición de Cloud SQL para tu instancia:
Enterprise
oEnterprise plus
. Para obtener más información sobre las ediciones de Cloud SQL, consulta Introducción a las ediciones de Cloud SQL. - En la sección Elige la región y la disponibilidad zonal, selecciona la región y la zona para la instancia.
La disponibilidad de las regiones puede ser diferente en función de
la edición de Cloud SQL. Para obtener más información, consulta Información sobre la configuración de instancias.
Ubica la instancia en la misma región que 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.
Si estás configurando tu instancia para alta disponibilidad, puedes seleccionar una zona principal y una secundaria.
Se aplican las siguientes condiciones cuando se usa la zona secundaria durante la creación de la instancia:
- Las zonas están predeterminadas como
Any
para la zona principal yAny (different from primary)
para la zona secundaria. - Si se especifican las zonas principal y secundaria, deben ser zonas distintas.
- Las zonas están predeterminadas como
- En la sección Personaliza tu instancia, actualiza la configuración de la instancia.
Primero, haz clic en MOSTRAR OPCIONES DE CONFIGURACIÓN para mostrar los grupos
de opciones de configuración. Luego, expande los grupos que desees para revisar y personalizar la configuración.
A la derecha, se muestra un informe de resumen de todas las opciones que seleccionas.
Personalizar esta configuración de instancia es opcional. Los valores predeterminados se asignan en todos los casos en los que no se realizan personalizaciones.
En la siguiente tabla, se muestra una referencia rápida a la configuración de instancias. Para obtener más detalles sobre cada configuración, consulta la página de configuración de instancia.
Configuración Notas Tipo de máquina Tipo de máquina Selecciona entre núcleo compartido o núcleo dedicado. Para el núcleo compartido, cada tipo de máquina se clasifica por la cantidad de CPU (núcleos) y la cantidad de memoria de tu instancia. Núcleos El número de CPU virtuales para tu instancia. Más información. Memoria La cantidad de memoria para la instancia, en GB. Más información Personalizado En el tipo de máquina del núcleo dedicado, en lugar de seleccionar una configuración predefinida, selecciona el botón Personalizado para crear una instancia con una configuración personalizada. Cuando seleccionas esta opción, debes seleccionar la cantidad de núcleos y de memoria para tu instancia. Obtén más información. Almacenamiento 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 Habilitar los aumentos de almacenamiento automáticos Determina si Cloud SQL proporciona de manera automática más almacenamiento para tu instancia cuando queda poco espacio libre. Más información Encriptación Encriptación administrada por Google La opción predeterminada. Clave de encriptación administrada por la clave del cliente (CMEK) Selecciona esta opción para usar tu clave con Google Cloud Key Management Service. Más información Conexiones IP privada Agrega una dirección IP privada para la instancia. Para habilitar la conexión a la instancia, se requiere una configuración adicional.
De manera opcional, puedes especificar un rango de IP asignado para que tus instancias las usen en las conexiones.- Expande la opción Mostrar la opción de rango de IP asignado.
- Selecciona un rango de IP en el menú desplegable.
Tu instancia puede tener una dirección IP pública y una privada.
- Obtén más información sobre el uso de IP privada.
- Obtén más información sobre los rangos de direcciones IP asignados
IP pública Agrega una dirección IP pública para la instancia. Luego, puedes agregar redes autorizadas para conectarte a la instancia. Tu instancia puede tener una dirección IP pública y una privada.
Obtén más información sobre el uso de IP pública.
Redes autorizadas Agrega el nombre de la red nueva y la dirección de red. Más información Ruta privada para los servicios de Google Cloud Si seleccionas esta casilla de verificación, permitirás que otros servicios de Google Cloud, como BigQuery, accedan a los datos en Cloud SQL y realicen consultas en estos datos a través de una conexión privada.
Protección de datos Copias de seguridad automáticas El período en el que deseas que se inicien las copias de seguridad. Más información Elige dónde almacenar tus copias de seguridad Selecciona Multirregión para la mayoría de los casos de uso. Si necesitas almacenar copias de seguridad en una región específica, por ejemplo, si hay motivos normativos para hacerlo, selecciona Región y selecciona tu región en el menú desplegable de Ubicación. Elige cuántas copias de seguridad automáticas se almacenarán Es la cantidad de copias de seguridad automáticas que deseas conservar (de 1 a 365 días). Más información Habilita la recuperación de un momento determinado Habilita la recuperación de un momento determinado y el registro de escritura por adelantado. Más información Habilitar la protección contra la eliminación Determina si se debe proteger una instancia contra la eliminación accidental. Más información Elige la cantidad de días que se retendrán los registros Configura la retención de escritura por adelantado de 1 a 7 días. La configuración predeterminada es de 7 días. Más información Mantenimiento Ventana preferida Determina un período de una hora para que Cloud SQL realice un mantenimiento disruptivo en la instancia. Si no configuras el período, el mantenimiento disruptivo puede realizarse en cualquier momento. Más información Orden de las actualizaciones Tu horario de preferencia para actualizaciones de instancia, en relación con otras instancias del mismo proyecto. Más información Marcas AGREGAR MARCA 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 Etiquetas AGREGAR ETIQUETA Agrega una clave y un valor para cada etiqueta que agregues. Usa etiquetas para organizar tus instancias. Caché de datos Habilita la caché de datos (opcional) Habilita la caché de datos para instancias de la edición Cloud SQL para MySQL Enterprise Plus. Para obtener más información sobre la caché de datos, consulta Caché de datos. -
Haz clic en Crear instancia.
Nota: La creación de tu instancia puede tardar algunos minutos. Sin embargo, puedes ver información sobre la instancia mientras se crea.
Para ver la contraseña en texto no encriptado, haz clic en el ícono Mostrar contraseña.
Puedes ingresar la contraseña de forma manual o hacer clic en Generar para que Cloud SQL cree una contraseña de forma automática.
La versión de la base de datos no se puede editar después de que se crea la instancia.
gcloud
Para obtener información sobre cómo instalar y comenzar a usar gcloud, consulta Instala gcloud CLI. Si quieres obtener información para iniciar Cloud Shell, consulta la Documentación de Cloud Shell.
- Usa el comando
gcloud sql instances create
para crear la instancia:
Para las instancias de Cloud SQL Enterprise Plus:gcloud sql instances create INSTANCE_NAME \ --region=REGION \ --tier=TIER \ --database-version=MYSQL_8_0_31 \ --edition=ENTERPRISE_PLUS
Para las instancias de Cloud SQL Enterprise:gcloud sql instances create INSTANCE_NAME \ --cpu=NUMBER_CPUS \ --memory=MEMORY_SIZE \ --region=REGION
Como alternativa, puedes usar la marca--tier
si eliges db-f1-micro o db-g1-small como el tipo de máquina:gcloud sql instances create INSTANCE_NAME \ --tier=API_TIER_STRING \ --region=REGION
Hay restricciones para los valores de CPU virtual y tamaño de memoria:
- 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)
Por ejemplo, la siguiente cadena crea una instancia de Cloud SQL Enterprise con dos CPU virtuales y 7,680 MB de memoria:
gcloud sql instances create myinstance \ --database-version=MYSQL_8_0 \ --cpu=2 \ --memory=7680MB \ --region=us-central1
Con la siguiente cadena, se crea una instancia de Cloud SQL Enterprise Plus con cuatro núcleos:
gcloud sql instances create myinstance \ --database-version=MYSQL_8_0_31 \ --tier=db-perf-optimized-N-4 \ --edition=ENTERPRISE_PLUS \ --region=us-central1
El valor predeterminado para REGION es
us-central1
.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).Si creas una instancia para alta disponibilidad, puedes especificar las zonas principal y secundaria a través de los parámetros
--zone
y--secondary-zone
. Se aplican las siguientes condiciones cuando se usa la zona secundaria durante la creación o la edición de la instancia:- Las zonas deben ser válidas.
- Si se especifica la zona secundaria, también se debe especificar la principal.
- Si se especifican las zonas principal y secundaria, deben ser zonas distintas.
- Si se especifican las zonas principal y secundaria, deben pertenecer a la misma región.
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
La versión de la base de datos, que se basa en la edición de Cloud SQL. Región --region
Consulta los valores válidos. Establece una política de contraseñas Habilitar política de contraseñas --enable-password-policy
Habilita la política de contraseñas cuando se usa. De manera predeterminada, la política de contraseñas está inhabilitada. Cuando se inhabilita a través de el parámetro --clear-password-policy
, los otros parámetros de la política de contraseñas se restablecen.Longitud mínima --password-policy-min-length
Especifica la cantidad mínima de caracteres que debe tener la contraseña. Complejidad de la contraseña --password-policy-complexity
Habilita la verificación de complejidad de contraseñas para garantizar que la contraseña contenga uno de estos tipos de caracteres: minúsculas, mayúsculas, numéricos y no alfanuméricos. Establece el valor en COMPLEXITY_DEFAULT
:Restricción de reutilización de contraseña --password-policy-reuse-interval
Especifica la cantidad de contraseñas anteriores que no puedes volver a usar. Esta opción solo es compatible con Cloud SQL para MySQL 8.0. No permitir el nombre de usuario --password-policy-disallow-username-substring
Impide el uso del nombre de usuario en la contraseña. Usa el parámetro --no-password-policy-disallow-username-substring
para inhabilitar la verificación.Conectividad IP privada --network
--no-assign-ip
(opcional)--allocated-ip-range-name
(opcional)--enable-google-private-path
(opcional)--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
).--no-assign-ip
: La instancia solo tendrá una dirección IP privada.--allocated-ip-range-name
: Si se especifica, establece un nombre de rango para el que se asigna un rango de IP. Por ejemplo,google-managed-services-default
. El nombre del rango debe cumplir conRFC-1035
y tener entre 1 y 63 caracteres. (gcloud alpha sql instances create
).--enable-google-private-path
: Si usas este parámetro, permites que otros servicios de Google Cloud, como BigQuery, accedan a los datos en Cloud SQL y realicen consultas en estos datos a través de una conexión privada.Este parámetro solo es válido si se cumplen estas condiciones:
- Usas el parámetro
--no-assign-ip
. - Usas el parámetro
--network
para especificar el nombre de la red de VPC que deseas usar para crear una conexión privada.
Obtén más información sobre la configuración de IP privadas.
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 Aplicación de SSL --ssl-mode
--require-ssl
El parámetro
ssl-mode
aplica de manera forzosa SSL/TLS para las conexiones. Si deseas obtener más información, consulta Configuración de Cloud SQL para MySQL.El parámetro
require-ssl
determina si las conexiones SSL a través de IP se aplican o no.require-ssl
es un parámetro heredado. Utilizassl-mode
en lugar de esta función. Para obtener más información, consulta IpConfiguration.Tipo de máquina y almacenamiento Tipo de máquina --tier
Se usa para especificar una instancia de núcleo compartido ( db-f1-micro
odb-g1-small
). Para una configuración de instancia personalizada, usa en su lugar los parámetros--cpu
o--memory
. Consulta Configuración de instancias personalizadas.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 aprovisionado 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.Caché de datos (opcional) --enable-data-cache
Habilita o inhabilita la caché de datos para las instancias. Para obtener más información, consulta la caché de datos. Copias de seguridad automáticas y alta disponibilidad Alta disponibilidad --availability-type
Para una instancia con disponibilidad alta, configúrala a REGIONAL
. Más información.Zona secundaria --secondary-zone
Si creas una instancia para alta disponibilidad, puedes especificar las zonas principal y secundaria con --zone
y--secondary-zone parameters
. Se aplican las siguientes restricciones cuando se usa la zona secundaria durante la creación o la edición de la instancia:- Las zonas deben ser válidas.
- Si se especifica la zona secundaria, también se debe especificar la principal.
Si se especifican las zonas principal y secundaria, deben ser zonas distintas.
Si se especifican las zonas principal y secundaria, deben pertenecer a la misma regió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 Configuración de retención para copias de seguridad automáticas --retained-backups-count
Es la cantidad de copias de seguridad automáticas que se retendrán. 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 Configuración de retención para el registro binario --retained-transaction-log-days
La cantidad de días para conservar los registros binarios de la recuperación de un momento determinado. Más información Agrega marcas de bases de datos Marcas de la base 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 yproduction
para las más recientes. Más información. - Anota la dirección IP asignada de manera automática.
Si no usas el proxy de Cloud SQL auth, usarás esta dirección como dirección de host que tus aplicaciones o herramientas usarán para conectarse a la instancia.
- Configura la contraseña para el usuario “root@%” de MySQL:
gcloud sql users set-password root \ --host=% \ --instance INSTANCE_NAME \ --password PASSWORD
Terraform
Para crear una instancia, usa un recurso de Terraform.
Aplica los cambios
Para aplicar tu configuración de Terraform en un proyecto de Google Cloud, completa los pasos de las siguientes secciones.
Prepara Cloud Shell
- Inicia Cloud Shell
-
Establece el proyecto de Google Cloud predeterminado en el que deseas aplicar tus configuraciones de Terraform.
Solo necesitas ejecutar este comando una vez por proyecto y puedes ejecutarlo en cualquier directorio.
export GOOGLE_CLOUD_PROJECT=PROJECT_ID
Las variables de entorno se anulan si configuras valores explícitos en el archivo de configuración de Terraform.
Prepara el directorio
Cada archivo de configuración de Terraform debe tener su propio directorio (también llamado módulo raíz).
-
En Cloud Shell, crea un directorio y un archivo nuevo dentro de ese directorio. El nombre del archivo debe tener la extensión
.tf
, por ejemplo,main.tf
. En este instructivo, el archivo se denominamain.tf
.mkdir DIRECTORY && cd DIRECTORY && touch main.tf
-
Si sigues un instructivo, puedes copiar el código de muestra en cada sección o paso.
Copia el código de muestra en el
main.tf
recién creado.De manera opcional, copia el código de GitHub. Esto se recomienda cuando el fragmento de Terraform es parte de una solución de extremo a extremo.
- Revisa y modifica los parámetros de muestra que se aplicarán a tu entorno.
- Guarda los cambios.
-
Inicializa Terraform. Solo debes hacerlo una vez por directorio.
terraform init
De manera opcional, incluye la opción
-upgrade
para usar la última versión del proveedor de Google:terraform init -upgrade
Aplica los cambios
-
Revisa la configuración y verifica que los recursos que creará o actualizará Terraform coincidan con tus expectativas:
terraform plan
Corrige la configuración según sea necesario.
-
Para aplicar la configuración de Terraform, ejecuta el siguiente comando y, luego, escribe
yes
cuando se te solicite:terraform apply
Espera hasta que Terraform muestre el mensaje “¡Aplicación completa!”.
- Abre tu proyecto de Google Cloud para ver los resultados. En la consola de Google Cloud, navega a tus recursos en la IU para asegurarte de que Terraform los haya creado o actualizado.
Borra los cambios
Para borrar tus cambios, haz lo siguiente:
- Para inhabilitar la protección contra la eliminación, en tu archivo de configuración de Terraform, establece el argumento
deletion_protection
enfalse
.deletion_protection = "false"
- Para aplicar la configuración actualizada de Terraform, ejecuta el siguiente comando y, luego, ingresa
yes
cuando se te solicite:terraform apply
-
Quita los recursos que se aplicaron antes con tu configuración de Terraform a través de la ejecución del siguiente comando y, luego, ingresa
yes
cuando se te solicite:terraform destroy
REST v1
Crea la instancia
En este ejemplo, se crea una instancia. También se incluyen algunos parámetros opcionales, como las copias de seguridad y el registro binario. 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, consulta Configuración de 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 datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: el ID de tu proyecto
- INSTANCE_ID: el ID de tu instancia.
- DATABASE_VERSION: la versión de la base de datos.
Por ejemplo:
MYSQL_8_0
oMYSQL_8_0_31
. - REGION: la región
- MACHINE_TYPE: tu tipo de máquina.
- EDITION_TYPE: tu edición de Cloud SQL
- DATA_CACHE_ENABLED: (opcional) Configura
true
en modo de habilitar la caché de datos para tu instancia - PRIVATE_NETWORK: especifica el nombre de la red de nube privada virtual (VPC) que deseas usar para esta instancia. El acceso a servicios privados ya debe estar configurado para la red.
- AUTHORIZED_NETWORKS: para las conexiones de IP públicas, especifica las conexiones de redes autorizadas que pueden conectarse a la instancia.
Para establecer una política de contraseñas mientras creas una instancia, incluye el objeto passwordValidationPolicy en la solicitud. Configura los siguientes parámetros, según sea necesario:
enablePasswordPolicy
: Habilita la política de contraseñas cuando se establece entrue
.Para quitar la política de contraseñas, puedes usar una solicitud
PATCH
connull
como valor deenablePasswordPolicy
. En este caso, se restablecen los otros parámetros de la política de contraseñas.minLength
: Especifica la cantidad mínima de caracteres que debe tener la contraseña.complexity
: Verifica si la contraseña es una combinación de caracteres en minúscula, mayúscula, numéricos y no alfanuméricos. El valor predeterminado esCOMPLEXITY_DEFAULT
.reuseInterval
: Especifica la cantidad de contraseñas anteriores que no puedes volver a usar.Esta opción solo es compatible con Cloud SQL para MySQL 8.0.
disallowUsernameSubstring
: Impide el uso del nombre de usuario en la contraseña cuando se configura comotrue
.
HTTP method and URL:
POST https://sqladmin.googleapis.com/v1/projects/PROJECT_ID/instances
Cuerpo JSON de la solicitud:
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "settings": { "tier": "MACHINE_TYPE", "edition": "EDITION_TYPE", "dataCacheConfig" = { "dataCacheEnabled": DATA_CACHE_ENABLED }, "backupConfiguration": { "binaryLogEnabled": true, "enabled": true }, "passwordValidationPolicy": { "enablePasswordPolicy": true "minLength": "MIN_LENGTH", "complexity": COMPLEXITY_DEFAULT, "reuseInterval": "REUSE_INTERVAL", "disallowUsernameSubstring": "DISALLOW_USERNAME_SUBSTRING", } "ipConfiguration": { "privateNetwork": "PRIVATE_NETWORK", "authorizedNetworks": [AUTHORIZED_NETWORKS], "ipv4Enabled": false, "enablePrivatePathForGoogleCloudServices": 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://sqladmin.googleapis.com/v1/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://sqladmin.googleapis.com/v1/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 datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: 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://sqladmin.googleapis.com/v1/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://sqladmin.googleapis.com/v1/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://sqladmin.googleapis.com/v1/projects/project-id/operations/operation-id", "targetProject": "project-id" }
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 datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: 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://sqladmin.googleapis.com/v1/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_8_0_18", "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://sqladmin.googleapis.com/v1/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.
REST v1beta4
Crea la instancia
En este ejemplo, se crea una instancia. También se incluyen algunos parámetros opcionales, como las copias de seguridad y el registro binario. 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, consulta Configuración de 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 datos de solicitud a continuación, realiza los siguientes reemplazos:
- PROJECT_ID: el ID de tu proyecto
- INSTANCE_ID: el ID de tu instancia.
- DATABASE_VERSION: la versión de la base de datos.
Por ejemplo:
MYSQL_8_0
oMYSQL_8_0_31
. - REGION: la región
- MACHINE_TYPE: tu tipo de máquina.
- EDITION_TYPE: tu edición de Cloud SQL
- DATA_CACHE_ENABLED: (opcional) Configura
true
en modo de habilitar la caché de datos para tu instancia
Para establecer una política de contraseñas mientras creas una instancia, incluye el objeto passwordValidationPolicy en la solicitud. Configura los siguientes parámetros, según sea necesario:
enablePasswordPolicy
: Habilita la política de contraseñas cuando se establece entrue
.Para quitar la política de contraseñas, puedes usar una solicitud
PATCH
connull
como valor deenablePasswordPolicy
. En este caso, se restablecen los otros parámetros de la política de contraseñas.minLength
: Especifica la cantidad mínima de caracteres que debe tener la contraseña.complexity
: Verifica si la contraseña es una combinación de caracteres en minúscula, mayúscula, numéricos y no alfanuméricos. El valor predeterminado esCOMPLEXITY_DEFAULT
.reuseInterval
: Especifica la cantidad de contraseñas anteriores que no puedes volver a usar.Esta opción solo es compatible con Cloud SQL para MySQL 8.0.
disallowUsernameSubstring
: Impide el uso del nombre de usuario en la contraseña cuando se configura comotrue
.
HTTP method and URL:
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/PROJECT_ID/instances
Cuerpo JSON de la solicitud:
{ "name": "INSTANCE_ID", "region": "REGION", "databaseVersion": "DATABASE_VERSION", "settings": { "tier": "MACHINE_TYPE", "edition": "EDITION_TYPE", "dataCacheConfig" { "dataCacheEnabled": DATA_CACHE_ENABLED }, "backupConfiguration": { "binaryLogEnabled": true, "enabled": true }, "passwordValidationPolicy": { "enablePasswordPolicy": true "minLength": "MIN_LENGTH", "complexity": COMPLEXITY_DEFAULT, "reuseInterval": "REUSE_INTERVAL", "disallowUsernameSubstring": "DISALLOW_USERNAME_SUBSTRING", } } }
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://sqladmin.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://sqladmin.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 datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: 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://sqladmin.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://sqladmin.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://sqladmin.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 datos de solicitud a continuación, realiza los siguientes reemplazos:
- project-id: 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://sqladmin.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_8_0_18", "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://sqladmin.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.
Especifica la versión secundaria de la base de datos
Puedes especificar la versión secundaria de una instancia existente a través de gcloud
o la API de REST.
gcloud
Usa el comando gcloud sql instances create
con la marca --database-version
.
Reemplaza las siguientes variables antes de ejecutar el comando:
- INSTANCE_NAME: El nombre de la instancia
- DATABASE_VERSION: La versión secundaria de la base de datos de la instancia:
MYSQL_8_0_18
,MYSQL_8_0_26
,MYSQL_8_0_27
,MYSQL_8_0_28
,MYSQL_8_0_29
,MYSQL_8_0_30
,MYSQL_8_0_31
(versión secundaria predeterminada para MySQL 8.0),MYSQL_8_0_32
, oMYSQL_8_0_33
. Si especificasMYSQL_8_0
, se usa la versión secundaria predeterminada. Si no especificas esta marca, se usa la versión principal predeterminada,MYSQL_8_0
.
gcloud sql instances create INSTANCE_NAME \ --database-version=DATABASE_VERSION
Para obtener información detallada, consulta la documentación sobre cómo crear una instancia a través de gcloud
.
REST v1
Usa una solicitud POST con el método instances:insert y la marca databaseVersion
.
POST https://sqladmin.googleapis.com/sql/v1/projects/project-id/instancesAntes de usar cualquiera de los datos de la solicitud, reemplaza estas variables:
- project_id: El ID del proyecto.
- instance_id: El nombre de la instancia
- databaseVersion: La versión de la base de datos de la instancia:
MYSQL_8_0_18
,MYSQL_8_0_26
,MYSQL_8_0_27
,MYSQL_8_0_28
,MYSQL_8_0_29
,MYSQL_8_0_30
,MYSQL_8_0_31
(versión secundaria predeterminada para MySQL 8.0),MYSQL_8_0_32
, oMYSQL_8_0_33
. Si especificasMYSQL_8_0
, se usa la versión secundaria predeterminada. Si no especificas esta marca, se usa la versión principal predeterminada,MYSQL_8_0
.
Para obtener información detallada, consulta la documentación sobre cómo crear una instancia a través de la API de REST v1.
REST v1beta4
Usa una solicitud POST con el método instances:insert y la marca databaseVersion
.
POST https://sqladmin.googleapis.com/sql/v1beta4/projects/project-id/instances
Antes de usar cualquiera de los datos de la solicitud, reemplaza estas variables:
- project_id: El ID del proyecto.
- instance_id: El nombre de la instancia
- databaseVersion:
La versión de la base de datos de la instancia:
MYSQL_8_0_18
,MYSQL_8_0_26
,MYSQL_8_0_27
,MYSQL_8_0_28
,MYSQL_8_0_29
,MYSQL_8_0_30
,MYSQL_8_0_31
(versión secundaria predeterminada para MySQL 8.0),MYSQL_8_0_32
, oMYSQL_8_0_33
. Si especificasMYSQL_8_0
, se usa la versión secundaria predeterminada. Si no especificas esta marca, se usa la versión principal predeterminada,MYSQL_8_0
.
Para obtener información detallada, consulta la documentación sobre cómo crear una instancia a través de la API de REST v1beta4.
Versión secundaria de la base de datos para réplicas de lectura, clonaciones y PITR
Cuando creas una réplica de lectura, puedes especificar la versión secundaria de la base de datos de la réplica de lectura. De forma predeterminada, se crean réplicas de lectura nuevas en la versión secundaria predeterminada.
Cuando clonas una instancia, la instancia recién creada tiene la misma versión secundaria que la de la fuente.
Cuando realizas una recuperación de un momento determinado, la instancia recién creada tiene la misma versión secundaria de la base de datos que la de la fuente.
Configuraciones de instancias personalizadas
Determina la memoria y los núcleos virtuales disponibles para tu instancia de Cloud SQL. La disponibilidad de los tipos de máquinas se determina según la edición de Cloud SQL.
Para las cargas de trabajo que requieren procesamiento en tiempo real, como el procesamiento de transacciones en línea (OLTP), asegúrate de que tu instancia tenga la memoria suficiente para contener toda la configuración de trabajo. Sin embargo, existen otros factores que pueden afectar los requisitos de memoria, como la cantidad de conexiones activas y los procesos de sobrecarga internos. Debes realizar pruebas de carga para evitar problemas de rendimiento en tu entorno de producción.
Cuando configures tu instancia, selecciona suficiente memoria y CPU virtuales para manejar tu carga de trabajo y actualízala a medida que esta aumente. Una configuración de máquina con CPU virtuales insuficientes podría perder su cobertura del ANS. Para obtener más información, consulta los Lineamientos operativos.
Tipos de máquinas para instancias de edición de Cloud SQL Enterprise Plus
Para las instancias de Cloud SQL Enterprise Plus, los tipos de máquinas se predefinen de la siguiente manera:
Tipo de máquina Enterprise Plus | vCPUs | Memoria (GB) | SSD local |
---|---|---|---|
db-perf-optimized-N-2 | 2 | 16 | 375 |
db-perf-optimized-N-4 | 4 | 32 | 375 |
db-perf-optimized-N-8 | 8 | 64 | 375 |
db-perf-optimized-N-16 | 16 | 128 | 750 |
db-perf-optimized-N-32 | 32 | 256 | 1500 |
db-perf-optimized-N-48 | 48 | 384 | 3000 |
db-perf-optimized-N-64 | 64 | 512 | 6000 |
db-perf-optimized-N-80 | 80 | 640 | 6000 |
db-perf-optimized-N-96 | 96 | 768 | 6000 |
db-perf-optimized-N-128 | 128 | 864 | 9000 |
Tipos de máquinas para instancias de Cloud SQL Enterprise
En las instancias de Cloud SQL Enterprise, también puedes crear configuraciones de instancias personalizadas con el comando gcloud sql
instances create
.
Los parámetros de configuración de instancias personalizadas te permiten seleccionar la cantidad de memoria y CPU que tu instancia necesita. Esta flexibilidad te permite elegir la forma de VM adecuada para tu carga de trabajo.
Los nombres de los tipos de máquinas tienen el siguiente formato: db-custom-#-#
Reemplaza el primer marcador de posición # por la cantidad de CPU en la máquina y el segundo marcador de posición # por la cantidad de memoria en la máquina.
Por ejemplo, si el nombre de tu máquina es db-custom
y tu máquina tiene 1 CPU y 3,840 MB de RAM, el formato de la máquina sería db-custom-1-3840
.
Cuando seleccionas la cantidad de CPU y memoria, hay algunas restricciones en la configuración que eliges:
- 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)
En la siguiente tabla, se enumeran los nombres de cada tipo de máquina heredada, la cantidad de CPU y RAM de cada tipo de máquina y la string resultante para el tipo de máquina.
Puedes crear el tipo de máquina equivalente si especificas la CPU y la RAM equivalentes en la consola de Google Cloud, a través de gcloud CLI o si especificas db-custom-#-#
en la API.
Tipo de máquina heredada | vCPUs | Memoria (MB) | String db-custom-CPU-RAM (string de nivel de API) |
---|---|---|---|
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 |
Solucionar problemas
Problema | Soluciona problemas |
---|---|
Mensaje de error: Failed to create subnetwork. Couldn't
find free blocks in allocated IP ranges. Please allocate new ranges for
this service provider . |
No hay más direcciones disponibles en el rango de IP asignado. Puede haber varias situaciones posibles:
Para resolver este problema, puedes expandir el rango de IP asignado existente o asignar un rango de IP adicional a la conexión privada a servicios. Para obtener más información, consulta Asigna un rango de direcciones IP. Si usaste la marca Si asignas un nuevo rango, ten cuidado de no crear una asignación que se superponga con cualquier asignación existente. Después de crear un nuevo rango de IP, actualiza el intercambio de tráfico de VPC con el siguiente comando: gcloud services vpc-peerings update \ --service=servicenetworking.googleapis.com \ --ranges=OLD_RESERVED_RANGE_NAME,NEW_RESERVED_RANGE_NAME \ --network=VPC_NETWORK \ --project=PROJECT_ID \ --force Si expandes una asignación existente, asegúrate de aumentar solo el rango de asignación y no disminuirlo. Por ejemplo, si la asignación original era 10.0.10.0/24, realiza la nueva asignación de 10.0.10.0/23 como mínimo. En general, si empiezas desde una asignación /24, disminuir la /mask en 1 para cada condición (grupo adicional de tipos de instancias, región adicional) es una buena regla general. Por ejemplo, si intentas crear ambos grupos de tipos de instancias en la misma asignación, pasar de /24 a /23 es suficiente. Después de expandir un rango de IP existente, actualiza el intercambio de tráfico de VPC con el siguiente comando: gcloud services vpc-peerings update \ --service=servicenetworking.googleapis.com \ --ranges=RESERVED_RANGE_NAME \ --network=VPC_NETWORK \ --project=PROJECT_ID |
Mensaje de error: Failed to create subnetwork. Router status is
temporarily unavailable. Please try again later. Help Token:
[token-ID] . |
Vuelve a crear la instancia de Cloud SQL. |
Mensaje de error: Failed to create subnetwork. Required
'compute.projects.get' permission for PROJECT_ID . |
Cuando creas una instancia mediante una dirección IP privada, se crea una cuenta de servicio a tiempo con la API de Service Networking. Si solo habilitaste recientemente la API de Service Networking, es posible que la cuenta de servicio no se cree y la creación de la instancia falle. En este caso, debes esperar a que la cuenta de servicio se propague en todo el sistema o agregarla de forma manual con los permisos necesarios. |
¿Qué sigue?
- Crear una base de datos de MySQL en la instancia
- Crear usuarios de MySQL en la instancia
- Protege y controla el acceso a la instancia.
- Conectarse a la instancia con un cliente MySQL
- Importa datos a la base de datos.