🎉 Announcing new lower pricing — up to 40% lower costs for Cloud Servers and Cloud SQL! Read more →

Contents

Cloud SQL

Cloud SQL instances are simple managed relational cloud database servers that can be created via the API, CLI and Control Panel.

Engines and Versions

Both MySQL and PostgreSQL database engines are available.

When creating a new Cloud SQL Instance, the current minor version of the chosen engine is used as the starting point and future point releases are installed during the weekly maintenance window as they become available.

MySQL

The table below shows the major and minor MySQL versions available.

Major Version Current Minor Version End of Life
8.0 8.0.34 Apr 2026
5.7 5.7.43 Oct 2023

MySQL snapshot compatibility

Snapshots of MySQL instances are compatible between point releases but not between minor versions. So you cannot snapshot a MySQL 5.6 instance and create a 5.7 instance from the snapshot. To upgrade minor versions, create a new instance and use the standard mysql tools to take and reload a database dump.

Snapshotting MyISAM tables

The snapshot process depends on crash recoverable storage engines, such as InnoDB. MySQL’s MyISAM engine is not a crash recoverable storage engine so snapshots of MyISAM tables may result in incomplete or corrupt data.

If you need to use MyISAM tables, then you can minimise the risk of corrupted tables in snapshots by flushing and locking them prior to creating a snapshot. They only need to be locked for a few seconds at the start of the snapshot, and not during the copy process.

PostgreSQL

The table below shows the major and minor PostgreSQL versions available.

Major Version Current Minor Version End of Life (final release)
16 16.0 9 Nov 2028
15 15.4 11 Nov 2027
14 14.9 12 Nov 2026
13 13.12 13 Nov 2025
12 12.16 14 Nov 2024
11 11.21 9 Nov 2023
10 10.23 10 Nov 2022 (deprecated)
9.6 9.6.24 11 Nov 2021 (deprecated)
9.5 9.5.25 11 Feb 2021 (deprecated)

For more information, see the PostgreSQL versioning policy documentation.

PostgreSQL extensions

The following PostgreSQL extensions are available for use and can be activated using the standard CREATE EXTENSION command.

address_standardizer 3.0.0 Used to parse an address into constituent elements
address_standardizer_data_us 3.0.0 Address Standardizer US dataset example
adminpack 2.0 administrative functions for PostgreSQL
amcheck 1.1 functions for verifying relation integrity
autoinc 1.0 functions for autoincrementing fields
bloom 1.0 bloom access method - signature file based index
btree_gin 1.3 support for indexing common datatypes in GIN
btree_gist 1.5 support for indexing common datatypes in GiST
citext 1.5 data type for case-insensitive character strings
cube 1.4 data type for multidimensional cubes
dblink 1.2 connect to other PostgreSQL databases from within a database
dict_int 1.0 text search dictionary template for integers
dict_xsyn 1.0 text search dictionary template for extended synonym processing
earthdistance 1.1 calculate great-circle distances on the surface of the Earth
file_fdw 1.0 foreign-data wrapper for flat file access
fuzzystrmatch 1.1 determine similarities and distance between strings
hstore 1.5 data type for storing sets of (key, value) pairs
hstore_plperl 1.0 transform between hstore and plperl
hstore_plperlu 1.0 transform between hstore and plperlu
hstore_plpython2u 1.0 transform between hstore and plpython2u
hstore_plpythonu 1.0 transform between hstore and plpythonu
insert_username 1.0 functions for tracking who changed a table
intagg 1.1 integer aggregator and enumerator (obsolete)
intarray 1.2 functions, operators, and index support for 1-D arrays of integers
isn 1.2 data types for international product numbering standards
jsonb_plperl 1.0 transform between jsonb and plperl
jsonb_plperlu 1.0 transform between jsonb and plperlu
jsonb_plpython2u 1.0 transform between jsonb and plpython2u
jsonb_plpythonu 1.0 transform between jsonb and plpythonu
lo 1.1 Large Object maintenance
ltree 1.1 data type for hierarchical tree-like structures
ltree_plpython2u 1.0 transform between ltree and plpython2u
ltree_plpythonu 1.0 transform between ltree and plpythonu
moddatetime 1.0 functions for tracking last modification time
pageinspect 1.7 inspect the contents of database pages at a low level
pg_buffercache 1.3 examine the shared buffer cache
pg_freespacemap 1.2 examine the free space map (FSM)
pg_prewarm 1.2 prewarm relation data
pg_stat_statements 1.6 track execution statistics of all SQL statements executed
pg_trgm 1.4 text similarity measurement and index searching based on trigrams
pg_visibility 1.2 examine the visibility map (VM) and page-level visibility info
pgcrypto 1.3 cryptographic functions
pgrowlocks 1.2 show row-level locking information
pgstattuple 1.5 show tuple-level statistics
plperl 1.0 PL/Perl procedural language
plperlu 1.0 PL/PerlU untrusted procedural language
plpgsql 1.0 PL/pgSQL procedural language
plpython2u 1.0 PL/Python2U untrusted procedural language
plpythonu 1.0 PL/PythonU untrusted procedural language
pltcl 1.0 PL/Tcl procedural language
pltclu 1.0 PL/TclU untrusted procedural language
postgis 3.0.0 PostGIS geometry, geography, and raster spatial types and functions
postgis_raster 3.0.0 PostGIS raster types and functions
postgis_sfcgal 3.0.0 PostGIS SFCGAL functions
postgis_tiger_geocoder 3.0.0 PostGIS tiger geocoder and reverse geocoder
postgis_topology 3.0.0 PostGIS topology spatial types and functions
postgres_fdw 1.0 foreign-data wrapper for remote PostgreSQL servers
refint 1.0 functions for implementing referential integrity (obsolete)
seg 1.3 data type for representing line segments or floating-point intervals
sslinfo 1.2 information about SSL certificates
tablefunc 1.0 functions that manipulate whole tables, including crosstab
tcn 1.0 Triggered change notifications
timetravel 1.0 functions for implementing time travel
tsm_system_rows 1.0 TABLESAMPLE method which accepts number of rows as a limit
tsm_system_time 1.0 TABLESAMPLE method which accepts time in milliseconds as a limit
unaccent 1.1 text search dictionary that removes accents
uuid-ossp 1.1 generate universally unique identifiers (UUIDs)
xml2 1.1 XPath querying and XSLT

If you need an extension not listed above, please let us know and we can investigate further.

Database Types

Cloud SQL instances have an associated Database Type which describes the RAM, CPU and disk storage resources allocated to it.

Changing Database Type

Cloud SQL instances can be resized by changing to a larger type.

Access

Network access

Cloud SQL Instances are made accessible over the network by mapping a Cloud IP to them.

Admin password

When a new instance is created, admin credentials are automatically generated by the API. The credentials are only displayed at create time, since the admin password is not stored by the API, so cannot be retrieved later.

The admin password can be reset at any time, using the “Reset admin password” action.

Cloud SQL instances created from a snapshot inherit the admin password from the snapshot, rather than generating a new one.

Cloud SQL Snapshots

Creating a snapshot produces an instant and consistent copy of a Cloud SQL instance stored in Orbit, our highly-available object storage service.

Although the snapshot itself is instantaneous, the copy process may take several minutes depending on the size of the data and the current load on the instance.

During the copy process, the snapshot is initially held on the instance itself which means that the instance cannot be destroyed until the snapshot copy is completed. Once complete, the snapshot is stored to the images Orbit storage container.

Cloud SQL Snapshots can be used to as a starting point for new instances, providing the ability to essentially clone (or “fork”) an existing Cloud SQL instance.

Automated Snapshots

Snapshots can be created manually at any time and also automatically by specifying an automated snapshot schedule.

The snapshot schedule enables an automated snapshot to be created each day, each week or each month at a specified time.

By default, new Cloud SQL instances schedule a daily automated snapshot.

Snapshot Retention Policy

The automated snapshot retention policy describes the maximum number of automated snapshots which should be kept. When the number of automated snapshots exceeds this number, the oldest snapshot will be deleted to maintain the specified retention count.

The retention policy will only delete excess automated snapshots and will not delete manual snapshots.

By default, the retention policy is to keep all automated snapshots i.e not to delete any automatically.

Weekly maintenance window

Minor version updates to the database engine are automatically applied during a weekly one hour maintenance window.

The maintenance window can be set to any hour during the week but defaults to Sunday morning between 06:00am and 07:00am UTC.

During any updates, service can be interrupted for short periods of time if the instance needs to be restarted.

Minor version updates are from the upstream vendor, and will usually only contain bug and security patches.

Billing

Cloud SQL instances are billed by the hour, starting from the time the instance is first created until it is destroyed. Data transfer between instance and the Internet is billed per gigabyte at the standard Internet data rates. Data between Cloud SQL instances and cloud servers is free.

Cloud SQL snapshot storage is billed per gigabyte at the Orbit storage rate.

Last updated: 28 Sep 2023 at 11:36 UTC

Try Brightbox risk-free with ÂŁ50 free credit Sign up takes just two minutes...