Créer des instances

Cette page explique comment créer une instance Cloud SQL pour une instance MySQL.

Pour en savoir plus sur l'ensemble des paramètres d'instance, consultez la page Paramètres des instances.

Lors de la création d'une instance, une seule base de données est ajoutée. Vous pouvez ajouter des bases de données supplémentaires en les créant ou en les important.

Avant de commencer

  1. Connectez-vous à votre compte Google.

    Si vous n'en possédez pas déjà un, vous devez en créer un.

  2. Dans Google Cloud Console, sur la page de sélection du projet, sélectionnez ou créez un projet Google Cloud.

    Accéder à la page de sélection du projet

  3. Assurez-vous que la facturation est activée pour votre projet Cloud. Découvrez comment vérifier que la facturation est activée pour votre projet.

  4. Installez et initialisez le SDK Cloud.
  5. Assurez-vous de disposer des rôles d'administrateur Cloud SQL et de lecteur de Compute sur votre compte utilisateur.

    Accéder à la page "IAM"

    En savoir plus sur les rôles et les autorisations

Créer une instance MySQL

Pour créer une instance MySQL, procédez comme suit :

Console

  1. Accédez à la page "Instances Cloud SQL" dans Google Cloud Console.

    Accéder à la page Instances Cloud SQL

  2. Cliquez sur Créer une instance.
  3. Sélectionnez MySQL, puis cliquez sur Suivant.
  4. Saisissez un nom.

    N'incluez pas d'informations sensibles ou personnelles dans le nom de l'instance, car les utilisateurs externes peuvent le voir.

    Vous n'avez pas besoin d'indiquer l'ID du projet, qui sera ajouté automatiquement le cas échéant (par exemple, dans les fichiers journaux).

  5. Saisissez le mot de passe de l'utilisateur 'root'@'%'.
  6. Sous Emplacement, sélectionnez la région et la zone de votre instance.

    Placez l'instance dans la même région que les ressources qui y accèdent. La région que vous sélectionnez ne peut plus être modifiée. Dans la plupart des cas, il n'est pas nécessaire de spécifier une zone.

  7. Sous Options de configuration, mettez à jour les paramètres de votre instance :
    Paramètre Remarques
    Version de la base de données Une fois l'instance créée, la version de la base de données ne peut plus être modifiée.
    Version de la base de données Console : MySQL 8.0, MySQL 5.7 (par défaut) ou MySQL 5.6.
    API : MYSQL_8_0, MYSQL_5_7 (par défaut) ou MYSQL_5_6
    Connectivité
    Adresse IP privée Ajoute une adresse IP privée pour l'instance. Pour autoriser la connexion à l'instance, une configuration supplémentaire est requise. .
    Adresse IP publique Ajoute une adresse IP publique pour l'instance. Pour activer la connexion à l'instance, une configuration supplémentaire est requise.
    Type de machine et stockage
    Type de machine Le type de machine (parfois également appelé "niveau") détermine le nombre de processeurs et la quantité de mémoire dont l'instance dispose. En savoir plus.
    Type de stockage Détermine si l'instance utilise un stockage SSD ou HDD. En savoir plus
    Capacité de stockage Quantité de stockage fournie pour l'instance. En savoir plus
    Augmentation automatique de l'espace de stockage Détermine si Cloud SQL fournit automatiquement plus d'espace de stockage pour l'instance lorsque l'espace disponible est presque épuisé. En savoir plus
    Haute disponibilité Si vous avez besoin que votre instance soit configurée pour la haute disponibilité, vous devez cocher la case Haute disponibilité (régionale). En savoir plus
    Sauvegardes automatiques Période durant laquelle vous souhaitez que les sauvegardes commencent. En savoir plus.
    Journalisation binaire La journalisation binaire permet la réplication et la récupération à un moment précis. En savoir plus.
    Ajouter des indicateurs de base de données
    Indicateurs de base de données Les indicateurs de base de données permettent de contrôler les réglages et les paramètres de l'instance. En savoir plus
    Calendrier de maintenance
    Intervalle de maintenance Détermine un intervalle d'une heure pendant lequel Cloud SQL peut effectuer des opérations de maintenance entraînant des perturbations sur l'instance. Si vous ne le définissez pas, la maintenance peut être réalisée à tout moment. En savoir plus
    Planification des maintenances Période privilégiée pour les mises à jour de l'instance, par rapport aux autres instances du même projet. En savoir plus

    En savoir plus sur les paramètres d'instance

  8. Cliquez sur Créer.

gcloud

Pour en savoir plus sur l'installation et le démarrage avec l'outil de ligne de commande gcloud, consultez la page Installer le SDK Cloud. Pour en savoir plus sur le démarrage de Cloud Shell, consultez la documentation Cloud Shell.

  1. Affichez la liste des types de machines potentiels :
    gcloud sql tiers list
    

    Notez les valeurs commençant par db-. Pour créer une instance de deuxième génération, vous devez choisir l'une d'entre elles.

    Pour en savoir plus sur les différents types de machines, leurs fonctionnalités et leur effet sur la tarification de l'instance, consultez la page Tarifs.

  2. Créez l'instance :
    gcloud sql instances create INSTANCE_NAME --tier=MACHINE_TYPE --region=REGION
    

    N'incluez pas d'informations sensibles ou personnelles dans le nom de l'instance, car les utilisateurs externes peuvent le voir.
    Vous n'avez pas besoin d'indiquer l'ID du projet dans le nom de l'instance. qui sera ajouté automatiquement le cas échéant (par exemple, dans les fichiers journaux).

    MACHINE_TYPE est l'une des valeurs de l'étape précédente qui commence par db-.

    Par exemple, la commande suivante crée une instance de deuxième génération appelée "instance1" avec le type de machine db-n1-standard-2 dans la région de Londres :

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

    Vous pouvez ajouter plus de réglages pour définir d'autres paramètres d'instance :

    Paramètre Réglage Remarques
    Réglages obligatoires
    Version de la base de données --database-version MYSQL_8_0, MYSQL_5_7 (par défaut) ou MYSQL_5_6.
    Region (Région) --region Consultez les valeurs valides.
    Connectivité
    Adresse IP privée --network Spécifie le nom du réseau VPC que vous souhaitez utiliser pour cette instance. L'accès aux services privés doit déjà être configuré pour le réseau. Disponible uniquement avec la commande bêta (gcloud beta sql instances create). En savoir plus
    Adresse IP publique --authorized-networks Pour les connexions IP publiques, seules des connexions à partir de réseaux autorisés peuvent être établies avec l'instance. En savoir plus
    Type de machine et stockage
    Type de machine --tier Le type de machine détermine le nombre de processeurs et la quantité de mémoire de l'instance. Afficher les valeurs par défaut Vous pouvez également créer des types de machines personnalisés. En savoir plus
    Type de stockage --storage-type Détermine si l'instance utilise un stockage SSD ou HDD. En savoir plus
    Capacité de stockage --storage-size Quantité de stockage fournie pour l'instance, en Go. En savoir plus
    Augmentation automatique de l'espace de stockage --storage-auto-increase Détermine si Cloud SQL fournit automatiquement plus d'espace de stockage pour l'instance lorsque l'espace disponible est presque épuisé. En savoir plus
    Limite de l'augmentation automatique de l'espace de stockage --storage-auto-increase-limit Détermine dans quelle limite Cloud SQL peut automatiquement augmenter l'espace de stockage. Disponible uniquement avec la commande bêta (gcloud beta sql instances create). En savoir plus
    Sauvegardes automatiques et haute disponibilité
    Haute disponibilité --availability-type Pour une instance à disponibilité élevée, définissez ce paramètre sur REGIONAL. En savoir plus
    Sauvegardes automatiques --backup-start-time Période durant laquelle vous souhaitez que les sauvegardes commencent. En savoir plus.
    Journalisation binaire --enable-bin-log La journalisation binaire permet la réplication et la récupération à un moment précis. En savoir plus.
    Ajouter des indicateurs de base de données
    Indicateurs de base de données --database-flags Les indicateurs de base de données permettent de contrôler les réglages et les paramètres de l'instance. Apprenez-en plus sur les indicateurs de base de données. En savoir plus sur le formatage de ce paramètre.
    Calendrier de maintenance
    Intervalle de maintenance --maintenance-window-day,
    --maintenance-window-hour
    Détermine un intervalle d'une heure pendant lequel Cloud SQL peut effectuer des opérations de maintenance entraînant des perturbations sur l'instance. Si vous ne le définissez pas, la maintenance peut être réalisée à tout moment. En savoir plus.
    Planification des maintenances --maintenance-release-channel Période privilégiée pour les mises à jour de l'instance, par rapport aux autres instances du même projet. Utilisez preview pour les mises à jour précédentes et production pour les mises à jour ultérieures. En savoir plus

  3. Notez l'adresse IP attribuée automatiquement.

    Si vous n'utilisez pas le proxy Cloud SQL, les applications ou les outils l'utiliseront comme adresse hôte pour se connecter à l'instance.

  4. Définissez le mot de passe de l'utilisateur MySQL "root@%" :
    gcloud sql users set-password root --host=% --instance INSTANCE_NAME --password PASSWORD
    

REST v1beta4

Créer l'instance

Cet exemple crée une instance avec les sauvegardes et la journalisation binaire activées. Ces paramètres sont facultatifs. Pour obtenir la liste complète des paramètres de cet appel, consultez la page instances:insert. Pour en savoir plus sur les paramètres des instances, y compris sur les valeurs valides pour la région et le type de machine, consultez la page Paramètres des instances.

N'incluez pas d'informations sensibles ou personnelles dans le nom de l'instance, car les utilisateurs externes peuvent le voir.
Vous n'avez pas besoin d'indiquer l'ID du projet, qui sera ajouté automatiquement le cas échéant (par exemple, dans les fichiers journaux).

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID de votre projet
  • instance-id : ID d'instance souhaité
  • database-version : chaîne d'énumération de la version de base de données. Par exemple : MYSQL_5_7
  • region : région souhaitée
  • machine-type : type de machine souhaité

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "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 réponse est une opération de longue durée qui peut prendre quelques minutes.

Mettre à jour le mot de passe racine

Une fois l'initialisation de l'instance terminée, mettez à jour le mot de passe racine :

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID de votre projet
  • instance-id : ID de l'instance créée à l'étape précédente
  • root-password : mot de passe racine souhaité

Méthode HTTP et URL :

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

Corps JSON de la requête :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "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 réponse est une opération de longue durée qui peut prendre quelques minutes.

Récupérer l'adresse IPv4

Récupérez l'adresse IPv4 attribuée automatiquement pour la nouvelle instance :

Avant d'utiliser les données de requête ci-dessous, effectuez les remplacements suivants :

  • project-id : ID de votre projet
  • instance-id : ID de l'instance créée à l'étape précédente

Méthode HTTP et URL :

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

Pour envoyer votre requête, développez l'une des options suivantes :

Vous devriez recevoir une réponse JSON de ce type :

{
  "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"
}

Recherchez le champ ipAddress dans la réponse.

Pour découvrir comment est formée la requête sous-jacente à l'API REST pour cette tâche, consultez la page dédiée à la méthode "instances:insert" dans APIs Explorer.

Exemples de types de machines

Les types de machines personnalisés vous permettent d'allouer à votre instance la quantité de mémoire et le nombre de processeurs dont elle a besoin. Ces valeurs sont toutefois soumises à certaines restrictions :

  • Le nombre de processeurs virtuels doit correspondre à 1 ou à un nombre pair compris entre 2 et 96.
  • La taille de la mémoire doit répondre aux critères suivants :
    • La mémoire doit être comprise entre 0,9 Go et 6,5 Go par processeur virtuel.
    • La taille de la mémoire doit être un multiple de 256 Mo.
    • La taille de la mémoire ne doit pas être inférieure à 3,75 Go (3 840 Mo).

Voici quelques exemples de valeurs de types de machines, basés sur les types prédéfinis disponibles pour les instances MySQL :

Type de machine prédéfini Processeurs virtuels Mémoire (Mo) Chaîne de niveau de l'API
db-n1-standard-1 1 3 840 db-custom-1-3840
db-n1-standard-2 2 7 680 db-custom-2-7680
db-n1-standard-4 4 15 360 db-custom-4-15360
db-n1-standard-8 8 30 720 db-custom-8-30720
db-n1-standard-16 16 61 440 db-custom-16-61440
db-n1-standard-32 32 122 880 db-custom-32-122880
db-n1-standard-64 64 245 760 db-custom-64-245760
db-n1-standard-96 96 368640 db-custom-96-368640
db-n1-highmem-2 2 13 312 db-custom-2-13312
db-n1-highmem-4 4 26 624 db-custom-4-26624
db-n1-highmem-8 8 53 248 db-custom-8-53248
db-n1-highmem-16 16 106 496 db-custom-16-106496
db-n1-highmem-32 32 212 992 db-custom-32-212992
db-n1-highmem-64 64 425 984 db-custom-64-425984
db-n1-highmem-96 96 638976 db-custom-96-638976

Dépannage

Cliquez sur les liens du tableau pour en savoir plus :

Pour ce problème... Le problème peut être... Essayez ce qui suit...
Internal error Compte de service Service Networking manquant. Désactivez et réactivez l'API Service Networking API.
Échec de création de l'instance. Erreur de configuration Terraform. Inspectez et corrigez le fichier de configuration Terraform.
HTTP Error 409 dans le script Terraform. Une autre opération est déjà en cours. Corrigez le script Terraform pour attendre la fin de chaque opération.
Unknown error Tentative de création d'une instance portant le même nom qu'une instance récemment supprimée. Ou tentative de création de plusieurs instances simultanément avec une nouvelle plage d'adresses IP privées utilisée. Attribuez un autre nom à l'instance ou attendez une semaine à compter de sa suppression. Recréez les instances ayant échoué de manière consécutive en utilisant des noms différents.

Erreur interne

Le message d'erreur {"ResourceType":"sqladmin.v1beta4.instance", "ResourceErrorCode":"INTERNAL_ERROR","ResourceErrorMessage":null} s'affiche.

Cause possible

Le projet de service ne contient probablement pas le compte de service Service Networking requis pour cette fonctionnalité.

Solutions possibles

Pour réparer les autorisations de service, désactivez l'API Service Networking API, attendez cinq minutes, puis réactivez-la.


Échec de création de l'instance Terraform

Échec de création de l'instance.

Cause possible

Il s'agit généralement d'un problème dans le script Terraform lui-même.

Solutions possibles

Inspectez et corrigez le fichier de configuration Terraform.


Erreur 409 dans le script Terraform

Le message d'erreur HTTP Error 409 s'affiche dans les scripts Terraform.

Cause possible

Operation failed because another operation was already in progress

Solutions possibles

Révisez le script de façon à interrompre son exécution jusqu'à ce que chaque opération d'instance se termine. Demandez au script d'effectuer une interrogation et d'attendre le retour d'un code 200 pour l'ID de l'opération précédente avant de passer à l'étape suivante.


Erreur inconnue

Lorsque vous tentez de créer une instance, un message d'erreur tel que Cloud SQL creation failed, error UNKNOWN s'affiche.

Cause possible

Vous tentez très probablement de réutiliser le nom d'une instance que vous avez récemment supprimée. Une fois une instance supprimée, vous devez attendre une semaine afin de pouvoir réutiliser son nom. Vous essayez peut-être également de créer plusieurs instances simultanément à l'aide d'une nouvelle plage d'adresses IP privées, et seule la première instance est créée alors que les autres échouent avec l'erreur Unknown error.

Solutions possibles

Attribuez un autre nom à l'instance ou attendez une semaine pour en créer une autre avec ce nom. Créez plusieurs instances de manière consécutive plutôt que simultanément.

Étapes suivantes