按 Cloud SQL 版本列出的 MySQL 功能
如需详细了解 Cloud SQL for MySQL 的 Cloud SQL 企业 Plus 版和 Cloud SQL 企业版的功能,请参阅 Cloud SQL 版本简介。
Cloud SQL 支持的常规 MySQL 功能
- 云端全代管式 MySQL 社区版数据库。
- 实例可在美国、欧盟、亚洲和澳大利亚使用。查看可创建 Cloud SQL 实例的所有位置。
- 支持使用 Database Migration Service (DMS) 从源数据库迁移到 Cloud SQL 目标数据库。
- 无论客户数据是存储在 Google 内部网络、数据库表、临时文件还是备份中,数据均处于加密状态。
- 支持使用 Cloud SQL Auth 代理或 SSL/TLS 协议建立安全的外部连接。
- 支持专用 IP 地址(专用服务访问通道)。
- 数据在多个地区之间复制,具备自动故障切换。
- 使用
mysqldump
导入和导出数据库,或者导入和导出 CSV 文件。 - 支持 MySQL 连接协议和标准 MySQL 连接器。
- 自动备份、按需备份,以及时间点恢复。
- 实例克隆。
- 与 Google Cloud Observability 日志记录和监控集成。
- 符合 ISO/IEC 27001。
Cloud SQL for MySQL 支持的应用语言
您可以将 Cloud SQL 与使用以下语言编写的柔性环境中运行的 App Engine 应用搭配使用:
- C#
- Go
- Java
- Node.js
- PHP
- Python
- Ruby
还可以将 Cloud SQL 与采用标准 MySQL 协议的外部应用搭配使用。
如何连接到 Cloud SQL for MySQL 实例
您可以通过以下方式连接到 Cloud SQL 实例:
mysql
客户端- SQL Workbench 或 Toad for MySQL 等第三方工具。
- 外部应用
- App Engine 应用
- 在 Compute Engine 上运行的应用
- 在 Google Kubernetes Engine 上运行的应用
- Cloud Run functions
- Cloud Run
- Google Apps 脚本。
不支持使用专用 Google 访问通道连接到 Cloud SQL。支持使用专用服务访问通道进行连接。如需了解详情,请参阅服务的专用访问通道选项。
Cloud SQL for MySQL 8.0 中的用户管理
由于 MySQL 8.0 中的更改,您不能使用 CREATE
或 DELETE
语句进行 MySQL 用户管理。此外,您不能使用 INSERT
、UPDATE
或 DELETE
语句修改用户特权,而应使用 CREATE USER
、DROP USER
、GRANT
和 REVOKE
语句来修改用户权限。如需了解详情,请参阅账号管理说明。
注意:请忽略账号管理说明下关于运行 mysql_upgrade
以升级到 8.0 版的信息。而应按照在实例上升级 MySQL 中介绍的过程进行升级。
标准 MySQL 和 Cloud SQL for MySQL 之间的区别
通常,Cloud SQL 实例提供的 MySQL 功能与本地托管的 MySQL 实例提供的功能相同。但是,标准 MySQL 实例与 Cloud SQL 实例之间存在一些差异。
Cloud SQL 不支持的 MySQL 特性
Cloud SQL for MySQL 5.6 和 5.7 不支持以下特性:
Cloud SQL for MySQL 8.0 不支持以下特性:
Cloud SQL for MySQL 8.4 不支持以下特性:
- 带标记的 GTID。如需详细了解带标记的 GTID,请参阅 MySQL 8.4 版本说明的 MySQL 8.4 中添加或更改的功能部分中的“MySQL 复制:带标记的 GTID”。
此外,Cloud SQL for MySQL 不会授予 MySQL 8.4 中引入的以下权限:
Cloud SQL 不支持的 MySQL 插件
Cloud SQL 不支持的 MySQL 语句
以下 SQL 语句会生成错误,并显示 Error 1290:
The MySQL server is running with the Google option so it cannot execute this
statement
消息:
LOAD DATA INFILE
SELECT ... INTO OUTFILE
SELECT ... INTO DUMPFILE
INSTALL PLUGIN ...
UNINSTALL PLUGIN
CREATE FUNCTION ... SONAME ...
以下语句不受支持,因为 MySQL 实例使用 GTID 复制:
CREATE TABLE ... SELECT
语句- 用于更新事务表和非事务表的事务或语句
Cloud SQL for MySQL 5.6 和 5.7 不支持以下 MySQL 语句,但 Cloud SQL for MySQL 8.0 支持:
- 事务内的
CREATE TEMPORARY TABLE
语句
如需了解详情,请参阅 MySQL 文档。
Cloud SQL 不支持的 MySQL 函数
LOAD_FILE()
Cloud SQL 不支持的 MySQL 客户端程序特性
mysqldump
(使用--tab
选项或使用与--tab
配合使用的选项时)。这是因为没有为实例用户授予 FILE 权限。所有其他mysqldump
选项均受支持。如需了解如何使用mysqldump
选项优化文件以导入到 Cloud SQL,请参阅使用 mysqldump 从本地 MySQL 服务器导出。mysqlimport
(不使用--local
选项时)。这是因为存在LOAD DATA INFILE
限制。如需将数据导入到 Cloud SQL 实例中,请参阅使用转储文件导入或使用 CSV 文件导入。如果您要将包含二进制数据的数据库导入 Cloud SQL 实例中,必须将
--hex-blob
选项与mysqldump
搭配使用。虽然在使用本地 MySQL 服务器实例和
mysql
客户端时,hex-blob
不是必需的标志,但如果您要将任何包含二进制数据的数据库导入到 Cloud SQL 实例中,则此标志是必需的。如需将数据导入到 Cloud SQL 实例中,请参阅使用转储文件导入或使用 CSV 文件导入。并非所有 MySQL 选项和参数都可作为 Cloud SQL 标记进行修改。
如需请求添加可配置的 Cloud SQL 标志,请使用 Cloud SQL 论坛。
受支持的存储引擎仅有 InnoDB。 如需有关将表从 MyISAM 转换为 InnoDB 方面的帮助,请参阅 MySQL 文档中的将表转换为 InnoDB。
Cloud SQL 预设的 MySQL 选项
Cloud SQL 使用一组特定的选项运行 MySQL。如果某个选项可能影响应用的工作方式,我们会在此处相应注明,以供您参考。
skip-name-resolve
此标志会影响系统如何解析主机名以进行客户端连接。 请参阅 MySQL 文档中的 skip-name-resolve
。
log_bin
此标志报告是否启用了二进制日志记录。如果使用 --log-bin
选项,则此变量的值为 ON
;否则为 OFF
。请参阅 MySQL 文档中的 log_bin
。
MySQL 身份验证
本部分介绍了对 MySQL 内置身份验证所做的更改。
MySQL 8.0 身份验证插件默认值
Cloud SQL for MySQL 8.0 使用 mysql_native_password
(而不是 caching_sha2_password
)作为新用户的默认身份验证插件。mysql_native_password
插件是 MySQL 5.6 和 5.7 用户的默认插件。
如果您希望新用户使用 caching_sha2_password
插件作为默认身份验证机制,则可以将您的实例对应于 default_authentication_plugin
的标志配置为使用 caching_sha2_password
。
要将现有用户配置为使用 caching_sha2_password
,请使用 ALTER USER
命令更改身份验证插件。
具有 caching_sha2_password
身份验证的用户在连接时可能需要使用 get-server-public-key
标志。如需了解详情,请参阅 MySQL 文档中的使用 SHA-2 可插入式身份验证。
MySQL 8.4 身份验证插件默认值
从 Cloud SQL for MySQL 8.4 开始,caching_sha2_password
插件是默认身份验证插件。您创建的所有内部用户和新用户账号都使用 caching_sha2_password
插件进行身份验证。Cloud SQL for MySQL 8.4 继续支持使用 mysql_native_password
插件的现有 Cloud SQL 用户账号。这些现有账号在 MySQL 8.4 升级后,可以继续连接到 Cloud SQL for MySQL 实例。
在 Cloud SQL for MySQL 8.4 中,已废弃 mysql_native_password
身份验证插件。任何尝试使用已废弃的 mysql_native_password
身份验证插件创建新用户账号的操作都会导致错误。您无法在 Cloud SQL for MySQL 8.4 中将账号的 authentication_policy
设置为使用 mysql_native_password
。
如需将现有数据库用户账号更改为使用 caching_sha2_password
身份验证插件,请使用以下命令:
ALTER USER 'username'@'%' IDENTIFIED WITH caching_sha2_password BY 'user_password';
将 username 和 user_password 替换为您要更新的用户账号的值。
如需详细了解此变更对服务器、客户端和连接器之间的兼容性的影响,请参阅 caching_sha2_password as the Preferred Authentication Plugin
。
对 Cloud SQL 中 MySQL 系统标志的更改
对于某些 MySQL 系统标志,Cloud SQL 使用与默认值不同的值。您无法更改这些标志的值。如需查看标志列表,请参阅 Cloud SQL 中系统标志的更改。
Cloud SQL for MySQL 8.0 及更高版本不支持的 Cloud SQL 特性
Cloud SQL for MySQL 8.0 及更高版本不支持使用故障切换副本的旧版 Cloud SQL for MySQL 高可用性 (HA) 配置。Cloud SQL for MySQL 8.0 及更高版本仅支持区域性高可用性配置。
按 Cloud SQL 版本列出的 PostgreSQL 功能
如需详细了解每个版本的 Cloud SQL for PostgreSQL 的功能,请参阅 Cloud SQL 版本简介。
Cloud SQL 支持的 PostgreSQL 特性
- 云端全代管式 PostgreSQL 数据库。
- 实例可在美国、欧盟、亚洲和澳大利亚使用。查看可创建 Cloud SQL 实例的所有位置。
- 支持使用 Database Migration Service (DMS) 从源数据库迁移到 Cloud SQL 目标数据库。
- 无论客户数据是存储在 Google 内部网络、数据库表、临时文件还是备份中,数据均处于加密状态。
- 支持使用 Cloud SQL Auth 代理或 SSL/TLS 协议建立安全的外部连接。
- 数据在多个地区之间复制,具备自动故障切换。
- 使用 SQL 转储文件导入和导出数据库。
- 支持 PostgreSQL 客户端服务器协议和标准 PostgreSQL 连接器。
- 自动备份、按需备份,以及时间点恢复。
- 实例克隆。
- 与 Google Cloud Observability 日志记录和监控集成。
- 支持多个 PostgreSQL 版本。
- 逻辑复制
Cloud SQL 支持的 PostgreSQL 扩展程序
Cloud SQL 支持许多 PostgreSQL 扩展程序。 如需查看这些扩展程序的完整列表,请参阅配置 PostgreSQL 扩展程序。
Cloud SQL 支持的 PostgreSQL 过程语言
Cloud SQL 支持 PL/pgSQL
SQL 过程语言。
Cloud SQL for PostgreSQL 支持的语言
您可以将 Cloud SQL 与使用以下语言编写的柔性环境中运行的 App Engine 应用搭配使用:
- C#
- Go
- Java
- Node.js
- PHP
- Python
- Ruby
您还可以将 Cloud SQL 与使用标准 PostgreSQL 客户端-服务器协议的外部应用结合使用。
如何连接到 Cloud SQL for PostgreSQL 实例
您可以通过以下方式连接到 Cloud SQL 实例:
psql
客户端。了解详情。- 使用标准 PostgreSQL 客户端-服务器协议的第三方工具。
- 外部应用。了解详情。
- App Engine 应用。了解详情。
- 在 Compute Engine 中运行的应用。了解详情。
- 在 Google Kubernetes Engine 中运行的应用。了解详情。
- Cloud Run functions。了解详情。
- Cloud Run。了解详情。
不支持使用专用 Google 访问通道连接到 Cloud SQL。
标准 PostgreSQL 与 Cloud SQL for PostgreSQL 之间的差异
一般来说,Cloud SQL 实例提供的 PostgreSQL 功能与本地托管的 PostgreSQL 实例提供的功能相同。但是,标准 PostgreSQL 实例与 Cloud SQL 实例之间存在一些差异。
Cloud SQL for PostgreSQL 不支持的特性
任何需要
SUPERUSER
特权的功能,但以下情况除外:WITHOUT FUNCTION
转换方法。自定义后台工作器。
Cloud Shell 中的
psql
客户端不支持需要重新连接的操作,例如,使用\c
命令连接到另一个数据库。低级虚拟机 (LLVM) 即时 (JIT) 编译。
PostgreSQL 与 Cloud SQL for PostgreSQL 之间的显著差异
某些 PostgreSQL 选项和参数无法作为 Cloud SQL 标志进行修改。
如需请求添加可配置的 Cloud SQL 标志,请使用 Cloud SQL for PostgreSQL 论坛。
Cloud SQL 支持的 SQL Server 特性
- 云端全代管式 SQL Server 数据库。
- 可提供高达 624 GB RAM 和 96 个 CPU 的自定义机器类型。
- 可提供高达 64 TB 的存储空间,并可根据需要自动增加存储空间大小。
- 在 Google Cloud 控制台中创建和管理实例。
- 实例可在美国、欧洲、亚洲或澳大利亚使用。查看可创建 Cloud SQL 实例的所有位置。
- 无论客户数据是存储在 Google 内部网络、数据库表、临时文件还是备份中,数据均处于加密状态。
- 用户数据库的列级和单元级加密。
- 支持使用 Cloud SQL Auth 代理或 SSL/TLS 协议建立安全的外部连接。
- 使用 BAK 和 SQL 文件导入数据库。
- 使用 BAK 文件导出数据库。
- 自动备份、按需备份,以及时间点恢复。
- 实例克隆。
- 与 Stackdriver Logging 和 Stackdriver Monitoring 集成。
- 已启用 SQL Server Agent,以便于执行复制和其他作业。
- 多区域之间的数据复制。
- 创建实例时,为数据库设置默认排序规则。
- 通过区域永久性磁盘可实现高可用性。
- 与 Managed Service for Microsoft Active Directory 集成,包括 Windows 身份验证。
- 变更数据捕获 (CDC)
- 智能查询处理。
- 加速数据库恢复。
- 增强型数据分类。
- UTF-8 字符编码支持。
- 增强型监控。
- 动态数据遮盖 (DDM)。
- 关联的服务器。
- SQL Server 审核。
- SQL Server 发布者。
- SQL Server 订阅者。
- SQL Server Integration Services (SSIS),它在单独的主机上运行,并连接到 Cloud SQL。
- SQL Server Reporting Services (SSRS),它在单独的主机上运行,并连接到 Cloud SQL。
- 批量复制程序 (bcp) 实用程序。如需详细了解如何下载并安装 bcp 实用程序,请参阅 Microsoft 文档。
- BACPAC 文件使用 SqlPackage 导入和导出。如需详细了解如何下载并安装 SqlPackage,请参阅 Microsoft 文档。
- 使用批量插入导入数据。仅 SQL Server 2022 支持此功能。您可以使用存储过程来执行批量插入。 如需了解详情,请参阅使用批量插入功能导入数据。
- 始终不使用安全 Enclave 进行加密。
- Extended Events (XEvents)。
- 在实例创建期间和实例创建后支持自定义时区。
Cloud SQL 尚不支持的 SQL Server 特性
以下特性在 Cloud SQL 中不可用,且不受 Google Cloud 支持:
Cloud SQL 尚不支持的常规 SQL Server 特性
- SQL Server Analysis Services (SSAS)
- SP_Configure 设置。如需详细了解此特性,请参阅配置数据库标志。
- Stretch 数据库
- 向 Microsoft Azure Blob Storage 执行备份
- 缓冲池扩展程序
- OPENROWSET 功能
- 数据质量服务
- 数据库日志传送
- 数据库邮件
- 分布式事务处理协调器 (MSDTC)
- 文件表
- FILESTREAM 支持
- 维护计划
- 性能数据收集器
- 基于策略的管理
- PolyBase
- 机器学习和 R 服务
- 资源调控器
- 服务器级触发器
- Service Broker 端点
- T-SQL 端点(所有使用
CREATE ENDPOINT
的操作均不受支持) - WCF Data Services
sysadmin
角色及需要该角色的系统存储过程- 混合缓冲池
- 内存优化 tempdb 元数据
- 数据库快照的内存 OLTP 支持
- 注册外部语言
- 行级安全性
- 透明数据加密 (TDE)。如需了解 Google Cloud 上的加密,请参阅客户管理的加密密钥 (CMEK) 简介和默认静态加密。
- 对象存储备份和恢复
- 内存数据库:永久性内存
- 实时运维分析
- 集成加速和分流
- 具有直接写入的混合缓冲池
- 多写入复制
- 链接至 Azure SQL 管理的实例
- 包含的可用性群组
- 始终使用安全 Enclave 进行加密
- Azure Active Directory 身份验证
- 支持 PFX 证书和其他加密改进
- MS-TDS 8.0 协议和 TLS 1.3
Cloud SQL 尚不支持的其他 SQL Server 操作
- ADMINISTER BULK OPERATIONS
- ALTER ANY CREDENTIAL
- ALTER ANY EVENT NOTIFICATION
- ALTER ANY EVENT SESSION
- ALTER RESOURCES
- ALTER SETTINGS
- AUTHENTICATE SERVER
- CONTROL_SERVER
- CREATE DDL EVENT NOTIFICATION
- CREATE ENDPOINT
- CREATE TRACE EVENT NOTIFICATION
- EXTERNAL ACCESS ASSEMBLY
- 恢复
- SHUTDOWN
- CLR ASSEMBLIES
Cloud SQL for SQL Server 支持的语法
Cloud SQL 支持 Transact-SQL 语法。
Cloud SQL for SQL Server 支持的语言
您可以将 Cloud SQL 与使用以下语言编写的柔性环境中运行的 App Engine 应用搭配使用:
- C#
- Go
- Java
- Node.js
- PHP
- Python
- Ruby
如何连接到 Cloud SQL for SQL Server 实例
您可以通过以下方式连接到 Cloud SQL 实例:
不支持使用专用 Google 访问通道连接到 Cloud SQL。