你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn。
本文介绍 Azure Database for MySQL 灵活服务器中的限制。 MySQL 数据库引擎中的常规限制也适用。 若要了解资源限制(计算、内存、存储),请参阅有关计算和存储的文章。
服务器参数
Azure Database for MySQL 灵活服务器支持优化服务器参数的值。 某些参数的最小值和最大值(例如 max_connections
、join_buffer_size
、query_cache_size
)在你计算服务器大小之前由计算层确定。 若要详细了解这些限制以及服务器参数(如 max_connections
和 innodb_buffer_pool_size
)的最小值和最大值,请参阅有关服务器参数的文章。
生成的不可见主键
对于 MySQL 8.0 及更高版本,默认为所有 Azure Database for MySQL 灵活服务器实例启用生成的不可见主键 (GIPK)。
MySQL 8.0+ 服务器将不可见列 my_row_id
添加到该列上的表和主键,在其中创建 InnoDB 表时没有显式主键。 因此,除非表创建语句还指定显式主键,否则不能创建列名为 my_row_id
的表。 了解详细信息。
默认情况下,GIPK 显示在 SHOW CREATE TABLE、SHOW COLUMNS 和 SHOW INDEX 的输出中。 GIPK 在 INFORMATION_SCHEMA
COLUMNS 表和 STATISTICS 表中也可见。
若要更详细地了解 GIPK 及其在数据传入复制中的用例,请参阅将数据复制到 Azure Database for MySQL 灵活服务器。
禁用 GIPK 的步骤
如果要禁用 GIPK,可以使用两个选项:
使用 Azure 门户或 Azure CLI 将 sql_generate_invisible_primary_key 服务器参数的值更改为
OFF
。连接到 Azure Database for MySQL 灵活服务器实例,并运行以下命令:
mysql> SET sql_generate_invisible_primary_key=OFF;
lower_case_table_names
在 Azure Database for MySQL 灵活服务器中,如果 MySQL 版本为 5.7,则 lower_case_table_names
的默认值为 1
。 如果需要调整此设置,建议创建支持工单。 请务必了解,将参数值更改为 2
后,不允许将其还原为 1
。
对于 MySQL 版本 8.0,禁止在初始化服务器后更改 lower_case_table_names
设置。 了解详细信息。 在 Azure Database for MySQL 灵活服务器中,如果 MySQL 版本为 8.0,则 lower_case_table_names
的默认值为 1
。 如果要将此参数更改为 2
,建议创建 MySQL 5.7 服务器,并创建支持工单,以获取有关该更改的帮助。 稍后,如有必要,可以将服务器升级到版本 8.0。
存储引擎
MySQL 支持许多存储引擎。 以下列表显示了 Azure Database for MySQL 灵活服务器中支持的和不支持的存储引擎。
支持的引擎
不支持的引擎
权限和数据操作支持
许多服务器参数和设置可能会无意中导致服务器性能下降或使 MySQL 服务器的 ACID 属性(原子性、一致性、隔离性和持久性)无效。 为了在产品级别维护服务完整性和服务级别协议,Azure Database for MySQL 灵活服务器不会公开多个角色。
Azure Database for MySQL 灵活服务器不允许直接访问基础文件系统。 不支持某些数据操作命令。
支持的权限
LOAD DATA INFILE
受支持,但你必须指定[LOCAL]
参数并将其定向到 UNC 路径(通过服务器消息块装载的 Azure 存储)。 如果使用的是 MySQL 客户端 8.0 或更高版本,则需在连接字符串中包含-–local-infile=1
参数。对于 MySQL 8.0 及更高版本,仅以下动态权限受支持:
不支持的权限
数据库管理员 (DBA) 角色受限制。 也可使用在创建新服务器时分配的管理员用户角色。 此角色允许执行大部分数据定义语言 (DDL) 和数据操作语言 (DML) 语句。
以下静态权限受限制:
不支持授予 BACKUP_ADMIN 权限来使用迁移工具进行备份。
DEFINER
需要SUPER
权限才能创建,并且受到限制。 如果使用备份导入数据,请在在执行 mysqlpump 备份时手动移除CREATE DEFINER
命令或使用--skip-definer
命令。mysql 系统数据库为只读状态,支持各种平台即服务 (PaaS) 功能。 不能对
mysql
系统数据库进行更改。SELECT ... INTO OUTFILE
在服务中不受支持。
功能限制
区域冗余高可用性
只能在服务器创建期间设置区域冗余高可用性配置。 “可突发”计算层级不支持此配置。
网络
创建服务器后,不能更改连接方法。 如果使用“专用访问(虚拟网络集成)”创建服务器,则创建后无法将其更改为“公共访问(允许的 IP 地址)”,反之亦然。
停止/启动操作
只读副本配置(源和副本)不支持那些用于停止和启动服务器的操作。
缩放操作
不支持减少预配的服务器存储。
服务器版本升级
不支持在主要数据库引擎版本之间进行自动迁移。 如果要升级到主要版本,请在使用新引擎版本创建的服务器上使用转储并还原。
还原服务器
使用时间点还原时,新服务器具有的计算和存储配置与其所基于的源服务器相同。 可以在创建服务器后纵向缩减新还原的服务器的计算。
功能比较
在 Azure Database for MySQL 单一服务器中,并非所有可用的功能都在 Azure Database for MySQL 灵活服务器中可用。
有关 Azure Database for MySQL 单一服务器和 Azure Database for MySQL 灵活服务器之间的功能比较的完整列表,请参阅有关如何在 Azure 中选择适当的 MySQL Server 选项的文章。