gcloud sql instances create

NAME
gcloud sql instances create - creates a new Cloud SQL instance
SYNOPSIS
gcloud sql instances create INSTANCE [--activation-policy=ACTIVATION_POLICY] [--active-directory-domain=ACTIVE_DIRECTORY_DOMAIN] [--[no-]assign-ip] [--async] [--audit-bucket-path=AUDIT_BUCKET_PATH] [--audit-retention-interval=AUDIT_RETENTION_INTERVAL] [--audit-upload-interval=AUDIT_UPLOAD_INTERVAL] [--authorized-networks=NETWORK,[NETWORK,…]] [--availability-type=AVAILABILITY_TYPE] [--no-backup] [--backup-location=BACKUP_LOCATION] [--backup-start-time=BACKUP_START_TIME] [--cascadable-replica] [--collation=COLLATION] [--connector-enforcement=CONNECTOR_ENFORCEMENT] [--cpu=CPU] [--database-flags=FLAG=VALUE,[FLAG=VALUE,…]] [--database-version=DATABASE_VERSION; default="MYSQL_8_0"] [--[no-]deletion-protection] [--deny-maintenance-period-end-date=DENY_MAINTENANCE_PERIOD_END_DATE] [--deny-maintenance-period-start-date=DENY_MAINTENANCE_PERIOD_START_DATE] [--deny-maintenance-period-time=DENY_MAINTENANCE_PERIOD_TIME] [--edition=EDITION] [--enable-bin-log] [--[no-]enable-data-cache] [--[no-]enable-dataplex-integration] [--[no-]enable-google-ml-integration] [--enable-google-private-path] [--enable-password-policy] [--enable-point-in-time-recovery] [--failover-replica-name=FAILOVER_REPLICA_NAME] [--[no-]insights-config-query-insights-enabled] [--insights-config-query-plans-per-minute=INSIGHTS_CONFIG_QUERY_PLANS_PER_MINUTE] [--insights-config-query-string-length=INSIGHTS_CONFIG_QUERY_STRING_LENGTH] [--[no-]insights-config-record-application-tags] [--[no-]insights-config-record-client-address] [--maintenance-release-channel=MAINTENANCE_RELEASE_CHANNEL] [--maintenance-window-day=MAINTENANCE_WINDOW_DAY] [--maintenance-window-hour=MAINTENANCE_WINDOW_HOUR] [--master-instance-name=MASTER_INSTANCE_NAME] [--memory=MEMORY] [--network=NETWORK] [--password-policy-complexity=PASSWORD_POLICY_COMPLEXITY] [--[no-]password-policy-disallow-username-substring] [--password-policy-min-length=PASSWORD_POLICY_MIN_LENGTH] [--password-policy-password-change-interval=PASSWORD_POLICY_PASSWORD_CHANGE_INTERVAL] [--password-policy-reuse-interval=PASSWORD_POLICY_REUSE_INTERVAL] [--psc-auto-connections=[network=NETWORK],[project=PROJECT]] [--[no-]recreate-replicas-on-primary-crash] [--replica-type=REPLICA_TYPE] [--replication=REPLICATION] [--require-ssl] [--retained-backups-count=RETAINED_BACKUPS_COUNT] [--retained-transaction-log-days=RETAINED_TRANSACTION_LOG_DAYS] [--root-password=ROOT_PASSWORD] [--ssl-mode=SSL_MODE] [--[no-]storage-auto-increase] [--storage-size=STORAGE_SIZE] [--storage-type=STORAGE_TYPE] [--threads-per-core=THREADS_PER_CORE] [--tier=TIER, -t TIER] [--time-zone=TIME_ZONE] [--timeout=TIMEOUT; default=3600] [--allowed-psc-projects=PROJECT,[PROJECT,…] --enable-private-service-connect] [--disk-encryption-key=DISK_ENCRYPTION_KEY : --disk-encryption-key-keyring=DISK_ENCRYPTION_KEY_KEYRING --disk-encryption-key-location=DISK_ENCRYPTION_KEY_LOCATION --disk-encryption-key-project=DISK_ENCRYPTION_KEY_PROJECT] [--region=REGION; default="us-central"     | --gce-zone=GCE_ZONE     | --secondary-zone=SECONDARY_ZONE --zone=ZONE] [GCLOUD_WIDE_FLAG]
DESCRIPTION
Creates a new Cloud SQL instance.
EXAMPLES
To create a MySQL 5.7 instance with ID prod-instance that has 2 CPUs, 4 GB of RAM, and is in the region us-central1 (a zone will be auto-assigned), where the 'root' user has its password set to password123, run:
gcloud sql instances create prod-instance --database-version=MYSQL_5_7 --cpu=2 --memory=4GB --region=us-central1 --root-password=password123

To create a Postgres 9.6 instance with ID prod-instance that has 2 CPUs, 8 GiB of RAM, and is in the zone us-central1-a, where the 'postgres' user has its password set to password123, run:

gcloud sql instances create prod-instance --database-version=POSTGRES_9_6 --cpu=2 --memory=8GiB --zone=us-central1-a --root-password=password123

To create a SQL Server 2017 Express instance with ID prod-instance that has 2 CPUs, 3840MiB of RAM, and is in the zone us-central1-a, where the 'sqlserver' user has its password set to password123, run:

gcloud sql instances create prod-instance --database-version=SQLSERVER_2017_EXPRESS --cpu=2 --memory=3840MiB --zone=us-central1-a --root-password=password123
POSITIONAL ARGUMENTS
INSTANCE
Cloud SQL instance ID.
FLAGS
--activation-policy=ACTIVATION_POLICY
Activation policy for this instance. This specifies when the instance should be activated and is applicable only when the instance state is RUNNABLE. The default is always. More information on activation policies can be found here: https://cloud.google.com/sql/docs/mysql/start-stop-restart-instance#activation_policy. ACTIVATION_POLICY must be one of: always, never.
--active-directory-domain=ACTIVE_DIRECTORY_DOMAIN
Managed Service for Microsoft Active Directory domain this instance is joined to. Only available for SQL Server instances.
--[no-]assign-ip
Assign a public IP address to the instance. This is a public, externally available IPv4 address that you can use to connect to your instance when properly authorized. Use --assign-ip to enable and --no-assign-ip to disable.
--async
Return immediately, without waiting for the operation in progress to complete.
--audit-bucket-path=AUDIT_BUCKET_PATH
The location, as a Cloud Storage bucket, to which audit files are uploaded. The URI is in the form gs://bucketName/folderName. Only available for SQL Server instances.
--audit-retention-interval=AUDIT_RETENTION_INTERVAL
The number of days for audit log retention on disk, for example, 3dfor 3 days. Only available for SQL Server instances.
--audit-upload-interval=AUDIT_UPLOAD_INTERVAL
How often to upload audit logs (audit files), for example, 30mfor 30 minutes. Only available for SQL Server instances.
--authorized-networks=NETWORK,[NETWORK,…]
The list of external networks that are allowed to connect to the instance. Specified in CIDR notation, also known as 'slash' notation (e.g. 192.168.100.0/24).
--availability-type=AVAILABILITY_TYPE
Specifies level of availability. AVAILABILITY_TYPE must be one of:
regional
Provides high availability and is recommended for production instances; instance automatically fails over to another zone within your selected region.
zonal
Provides no failover capability. This is the default.
--backup
Enables daily backup. Enabled by default, use --no-backup to disable.
--backup-location=BACKUP_LOCATION
Choose where to store your backups. Backups are stored in the closest multi-region location to you by default. Only customize if needed.
--backup-start-time=BACKUP_START_TIME
Start time of daily backups, specified in the HH:MM format, in the UTC timezone.
--cascadable-replica
Specifies whether a SQL Server replica is a cascadable replica. A cascadable replica is a SQL Server cross-region replica that supports replica(s) under it. This flag only takes effect when the --master-instance-name flag is set, and the replica under creation is in a different region than the primary instance.
--collation=COLLATION
Cloud SQL server-level collation setting, which specifies the set of rules for comparing characters in a character set.
--connector-enforcement=CONNECTOR_ENFORCEMENT
Cloud SQL Connector enforcement mode. It determines how Cloud SQL Connectors are used in the connection. See the list of modes here. CONNECTOR_ENFORCEMENT must be one of:
CONNECTOR_ENFORCEMENT_UNSPECIFIED
The requirement for Cloud SQL connectors is unknown.
NOT_REQUIRED
Does not require Cloud SQL connectors.
REQUIRED
Requires all connections to use Cloud SQL connectors, including the Cloud SQL Auth Proxy and Cloud SQL Java, Python, and Go connectors. Note: This disables all existing authorized networks.
--cpu=CPU
Whole number value indicating how many cores are desired in the machine. Both --cpu and --memory must be specified if a custom machine type is desired, and the --tier flag must be omitted.
--database-flags=FLAG=VALUE,[FLAG=VALUE,…]
Comma-separated list of database flags to set on the instance. Use an equals sign to separate flag name and value. Flags without values, like skip_grant_tables, can be written out without a value after, e.g., skip_grant_tables=. Use on/off for booleans. View the Instance Resource API for allowed flags. (e.g., --database-flags max_allowed_packet=55555,skip_grant_tables=,log_output=1)
--database-version=DATABASE_VERSION; default="MYSQL_8_0"
The database engine type and versions. If left unspecified, MYSQL_8_0 is used. See the list of database versions at https://cloud.google.com/sql/docs/mysql/admin-api/rest/v1beta4/SqlDatabaseVersion. Apart from listed major versions, DATABASE_VERSION also accepts supported minor versions. DATABASE_VERSION must be one of: MYSQL_5_6, MYSQL_5_7, MYSQL_8_0, MYSQL_8_4, POSTGRES_9_6, POSTGRES_10, POSTGRES_11, POSTGRES_12, POSTGRES_13, POSTGRES_14, POSTGRES_15, POSTGRES_16, POSTGRES_17, SQLSERVER_2017_EXPRESS, SQLSERVER_2017_WEB, SQLSERVER_2017_STANDARD, SQLSERVER_2017_ENTERPRISE, SQLSERVER_2019_EXPRESS, SQLSERVER_2019_WEB, SQLSERVER_2019_STANDARD, SQLSERVER_2019_ENTERPRISE, SQLSERVER_2022_EXPRESS, SQLSERVER_2022_WEB, SQLSERVER_2022_STANDARD, SQLSERVER_2022_ENTERPRISE.
--[no-]deletion-protection
Enable deletion protection on a Cloud SQL instance. Use --deletion-protection to enable and --no-deletion-protection to disable.
--deny-maintenance-period-end-date=DENY_MAINTENANCE_PERIOD_END_DATE
Date when the deny maintenance period ends, that is 2021-01-10.
--deny-maintenance-period-start-date=DENY_MAINTENANCE_PERIOD_START_DATE
Date when the deny maintenance period begins, that is 2020-11-01.
--deny-maintenance-period-time=DENY_MAINTENANCE_PERIOD_TIME
Time when the deny maintenance period starts or ends, that is 05:00:00.
--edition=EDITION
Specifies the edition of Cloud SQL instance. EDITION must be one of: enterprise, enterprise-plus.
--enable-bin-log
Allows for data recovery from a specific point in time, down to a fraction of a second. Must have automatic backups enabled to use. Make sure storage can support at least 7 days of logs.
--[no-]enable-data-cache
Enable use of data cache for accelerated read performance. This flag is only available for Enterprise_Plus edition instances. Use --enable-data-cache to enable and --no-enable-data-cache to disable.
--[no-]enable-dataplex-integration
Enable Dataplex integration for Google Cloud SQL. Use --enable-dataplex-integration to enable and --no-enable-dataplex-integration to disable.
--[no-]enable-google-ml-integration
Enable Vertex AI integration for Google Cloud SQL. Currently, only PostgreSQL is supported. Use --enable-google-ml-integration to enable and --no-enable-google-ml-integration to disable.
--enable-google-private-path
Enable a private path for Google Cloud services. This flag specifies whether the instance is accessible to internal Google Cloud services such as BigQuery. This is only applicable to MySQL and PostgreSQL instances that don't use public IP. Currently, SQL Server isn't supported.
--enable-password-policy
Enable the password policy, which enforces user password management with the policies configured for the instance. This flag is only available for Postgres.
--enable-point-in-time-recovery
Allows for data recovery from a specific point in time, down to a fraction of a second, via write-ahead logs. Must have automatic backups enabled to use. Make sure storage can support at least 7 days of logs.
--failover-replica-name=FAILOVER_REPLICA_NAME
Also create a failover replica with the specified name.
--[no-]insights-config-query-insights-enabled
Enable query insights feature to provide query and query plan analytics.

Use --insights-config-query-insights-enabled to enable and --no-insights-config-query-insights-enabled to disable.

--insights-config-query-plans-per-minute=INSIGHTS_CONFIG_QUERY_PLANS_PER_MINUTE
Number of query plans to sample every minute. Default value is 5. Allowed range: 0 to 20.
--insights-config-query-string-length=INSIGHTS_CONFIG_QUERY_STRING_LENGTH
Query string length in bytes to be stored by the query insights feature. Default length is 1024 bytes. Allowed range: 256 to 4500 bytes.
--[no-]insights-config-record-application-tags
Allow application tags to be recorded by the query insights feature.

Use --insights-config-record-application-tags to enable and --no-insights-config-record-application-tags to disable.

--[no-]insights-config-record-client-address
Allow the client address to be recorded by the query insights feature.

Use --insights-config-record-client-address to enable and --no-insights-config-record-client-address to disable.

--maintenance-release-channel=MAINTENANCE_RELEASE_CHANNEL
Which channel's updates to apply during the maintenance window. If not specified, Cloud SQL chooses the timing of updates to your instance. MAINTENANCE_RELEASE_CHANNEL must be one of:
preview
Preview updates release prior to production updates. You may wish to use the preview channel for dev/test applications so that you can preview their compatibility with your application prior to the production release.
production
Production updates are stable and recommended for applications in production.
week5
week5 updates release after the production updates. Use the week5 channel to receive a 5 week advance notification about the upcoming maintenance, so you can prepare your application for the release.
--maintenance-window-day=MAINTENANCE_WINDOW_DAY
Day of week for maintenance window, in UTC time zone. MAINTENANCE_WINDOW_DAY must be one of: SUN, MON, TUE, WED, THU, FRI, SAT.
--maintenance-window-hour=MAINTENANCE_WINDOW_HOUR
Hour of day for maintenance window, in UTC time zone.
--master-instance-name=MASTER_INSTANCE_NAME
Name of the instance which will act as master in the replication setup. The newly created instance will be a read replica of the specified master instance.
--memory=MEMORY
Whole number value indicating how much memory is desired in the machine. A size unit should be provided (eg. 3072MiB or 9GiB) - if no units are specified, GiB is assumed. Both --cpu and --memory must be specified if a custom machine type is desired, and the --tier flag must be omitted.
--network=NETWORK
Network in the current project that the instance will be part of. To specify using a network with a shared VPC, use the full URL of the network. For an example host project, 'testproject', and shared network, 'testsharednetwork', this would use the form: --network=projects/testproject/global/networks/testsharednetwork
--password-policy-complexity=PASSWORD_POLICY_COMPLEXITY
The complexity of the password. This flag is available only for PostgreSQL. PASSWORD_POLICY_COMPLEXITY must be one of:
COMPLEXITY_DEFAULT
A combination of lowercase, uppercase, numeric, and non-alphanumeric characters.
COMPLEXITY_UNSPECIFIED
The default value if COMPLEXITY_DEFAULT is not specified. It implies that complexity check is not enabled.
--[no-]password-policy-disallow-username-substring
Disallow username as a part of the password. Use --password-policy-disallow-username-substring to enable and --no-password-policy-disallow-username-substring to disable.
--password-policy-min-length=PASSWORD_POLICY_MIN_LENGTH
Minimum number of characters allowed in the password.
--password-policy-password-change-interval=PASSWORD_POLICY_PASSWORD_CHANGE_INTERVAL
Minimum interval after which the password can be changed, for example, 2m for 2 minutes. See <a href="/sdk/gcloud/reference/topic/datetimes"> $ gcloud topic datetimes</a> for information on duration formats. This flag is available only for PostgreSQL.
--password-policy-reuse-interval=PASSWORD_POLICY_REUSE_INTERVAL
Number of previous passwords that cannot be reused. The valid range is 0 to 100.
--psc-auto-connections=[network=NETWORK],[project=PROJECT]
A comma-separated list of networks or a comma-separated list of network-project pairs. Each project in this list is represented by a project number (numeric) or by a project ID (alphanumeric). This allows Private Service Connect connections to be created automatically for the specified networks. For example, this connection uses "the form psc-auto-connections=network=projects/testproject1/global/networks/testnetwork1" or "the form psc-auto-connections=project=testproject1,network=projects/testproject1/global/networks/testnetwork1". Sets psc_auto_connections value.
network
Required, Sets network value.
project
Sets project value.
Shorthand Example:
--psc-auto-connections=network=string,project=string

JSON Example:

--psc-auto-connections='{"network": "string", "project": "string"}'

File Example:

--psc-auto-connections=path_to_file.(yaml|json)
--[no-]recreate-replicas-on-primary-crash
Allow/Disallow replica recreation when a primary MySQL instance operating in reduced durability mode crashes. Not recreating the replicas might lead to data inconsistencies between the primary and its replicas. This setting is only applicable for MySQL instances and is enabled by default. Use --recreate-replicas-on-primary-crash to enable and --no-recreate-replicas-on-primary-crash to disable.
--replica-type=REPLICA_TYPE
The type of replica to create. REPLICA_TYPE must be one of: READ, FAILOVER.
--replication=REPLICATION
Type of replication this instance uses. The default is synchronous. REPLICATION must be one of: synchronous, asynchronous.
--require-ssl
Specified if users connecting over IP must use SSL.
--retained-backups-count=RETAINED_BACKUPS_COUNT
How many backups to keep. The valid range is between 1 and 365. Default value is 7 for Enterprise edition instances. For Enterprise_Plus, default value is 15. Applicable only if --no-backups is not specified.
--retained-transaction-log-days=RETAINED_TRANSACTION_LOG_DAYS
How many days of transaction logs to keep. The valid range is between 1 and 35. Only use this option when point-in-time recovery is enabled. If logs are stored on disk, storage size for transaction logs could increase when the number of days for log retention increases. For Enterprise, default and max retention values are 7 and 7 respectively. For Enterprise_Plus, default and max retention values are 14 and 35.
--root-password=ROOT_PASSWORD
Root Cloud SQL user's password.
--ssl-mode=SSL_MODE
Set the SSL mode of the instance. SSL_MODE must be one of:
ALLOW_UNENCRYPTED_AND_ENCRYPTED
Allow non-SSL and SSL connections. For SSL connections, client certificate will not be verified.
ENCRYPTED_ONLY
Only allow connections encrypted with SSL/TLS.
TRUSTED_CLIENT_CERTIFICATE_REQUIRED
Only allow connections encrypted with SSL/TLS and with valid client certificates.
--[no-]storage-auto-increase
Storage size can be increased, but it cannot be decreased; storage increases are permanent for the life of the instance. With this setting enabled, a spike in storage requirements can result in permanently increased storage costs for your instance. However, if an instance runs out of available space, it can result in the instance going offline, dropping existing connections. This setting is enabled by default. Use --storage-auto-increase to enable and --no-storage-auto-increase to disable.
--storage-size=STORAGE_SIZE
Amount of storage allocated to the instance. Must be an integer number of GB. The default is 10GB. Information on storage limits can be found here: https://cloud.google.com/sql/docs/quotas#storage_limits
--storage-type=STORAGE_TYPE
The storage type for the instance. The default is SSD. STORAGE_TYPE must be one of: SSD, HDD.
--threads-per-core=THREADS_PER_CORE
The number of threads per core. The value of this flag can be 1 or 2. To disable SMT, set this flag to 1. Only available in Cloud SQL for SQL Server instances.
--tier=TIER, -t TIER
Machine type for a shared-core instance e.g. db-g1-small. For all other instances, instead of using tiers, customize your instance by specifying its CPU and memory. You can do so with the --cpu and --memory flags. Learn more about how CPU and memory affects pricing: https://cloud.google.com/sql/pricing.
--time-zone=TIME_ZONE
Set a non-default time zone. Only available for SQL Server instances.
--timeout=TIMEOUT; default=3600
Time to synchronously wait for the operation to complete, after which the operation continues asynchronously. Ignored if --async flag is specified. By default, set to 3600s. To wait indefinitely, set to unlimited.
--allowed-psc-projects=PROJECT,[PROJECT,…]
A comma-separated list of projects. Each project in this list might be represented by a project number (numeric) or by a project ID (alphanumeric). This allows Private Service Connect connections to be established from specified consumer projects.
--enable-private-service-connect
When the flag is set, a Cloud SQL instance will be created with Private Service Connect enabled.
Key resource - The Cloud KMS (Key Management Service) cryptokey that will be used to protect the instance. The 'Compute Engine Service Agent' service account must hold permission 'Cloud KMS CryptoKey Encrypter/Decrypter'. The arguments in this group can be used to specify the attributes of this resource.
--disk-encryption-key=DISK_ENCRYPTION_KEY
ID of the key or fully qualified identifier for the key.

To set the kms-key attribute:

  • provide the argument --disk-encryption-key on the command line.

This flag argument must be specified if any of the other arguments in this group are specified.

--disk-encryption-key-keyring=DISK_ENCRYPTION_KEY_KEYRING
The KMS keyring of the key.

To set the kms-keyring attribute:

  • provide the argument --disk-encryption-key on the command line with a fully specified name;
  • provide the argument --disk-encryption-key-keyring on the command line.
--disk-encryption-key-location=DISK_ENCRYPTION_KEY_LOCATION
The Google Cloud location for the key.

To set the kms-location attribute:

  • provide the argument --disk-encryption-key on the command line with a fully specified name;
  • provide the argument --disk-encryption-key-location on the command line.
--disk-encryption-key-project=DISK_ENCRYPTION_KEY_PROJECT
The Google Cloud project for the key.

To set the kms-project attribute:

  • provide the argument --disk-encryption-key on the command line with a fully specified name;
  • provide the argument --disk-encryption-key-project on the command line;
  • set the property core/project.
At most one of these can be specified:
--region=REGION; default="us-central"
Regional location (e.g. asia-east1, us-east1). See the full list of regions at https://cloud.google.com/sql/docs/instance-locations.
At most one of these can be specified:
--gce-zone=GCE_ZONE
(DEPRECATED) Preferred Compute Engine zone (e.g. us-central1-a, us-central1-b, etc.).

Flag --gce-zone is deprecated and will be removed by release 255.0.0. Use --zone instead.

--secondary-zone=SECONDARY_ZONE
Preferred secondary Compute Engine zone (e.g. us-central1-a, us-central1-b, etc.).
--zone=ZONE
Preferred Compute Engine zone (e.g. us-central1-a, us-central1-b, etc.).
GCLOUD WIDE FLAGS
These flags are available to all commands: --access-token-file, --account, --billing-project, --configuration, --flags-file, --flatten, --format, --help, --impersonate-service-account, --log-http, --project, --quiet, --trace-token, --user-output-enabled, --verbosity.

Run $ gcloud help for details.

NOTES
These variants are also available:
gcloud alpha sql instances create
gcloud beta sql instances create