Limitations in Azure Database for MySQL
APPLIES TO:
Azure Database for MySQL - Single Server
The following sections describe capacity, storage engine support, privilege support, data manipulation statement support, and functional limits in the database service. Also see general limitations applicable to the MySQL database engine.
Server parameters
Note
If you are looking for min/max values for server parameters like max_connections and innodb_buffer_pool_size, this information has moved to the server parameters article.
Azure Database for MySQL supports tuning the values of server parameters. The min and max value of some parameters (ex. max_connections, join_buffer_size, query_cache_size) is determined by the pricing tier and vCores of the server. Refer to server parameters for more information about these limits.
Upon initial deployment, an Azure for MySQL server includes systems tables for time zone information, but these tables are not populated. The time zone tables can be populated by calling the mysql.az_load_timezone stored procedure from a tool like the MySQL command line or MySQL Workbench. Refer to the Azure portal or Azure CLI articles for how to call the stored procedure and set the global or session-level time zones.
Password plugins such as "validate_password" and "caching_sha2_password" are not supported by the service.
Storage engines
MySQL supports many storage engines. On Azure Database for MySQL, the following storage engines are supported and unsupported:
Supported
Unsupported
Privileges & data manipulation support
Many server parameters and settings can inadvertently degrade server performance or negate ACID properties of the MySQL server. To maintain the service integrity and SLA at a product level, this service does not expose multiple roles.
The MySQL service does not allow direct access to the underlying file system. Some data manipulation commands are not supported.
Unsupported
The following are unsupported:
- DBA role: Restricted. Alternatively, you can use the administrator user (created during new server creation), allows you to perform most of DDL and DML statements.
- SUPER privilege: Similarly, SUPER privilege is restricted.
- DEFINER: Requires super privileges to create and is restricted. If importing data using a backup, remove the
CREATE DEFINERcommands manually or by using the--skip-definercommand when performing a mysqlpump. - System databases: The mysql system database is read-only and used to support various PaaS functionality. You cannot make changes to the
mysqlsystem database. SELECT ... INTO OUTFILE: Not supported in the service.LOAD_FILE(file_name): Not supported in the service.
Supported
LOAD DATA INFILEis supported, but the[LOCAL]parameter must be specified and directed to a UNC path (Azure storage mounted through SMB). Additionally, if you are using MySQL client version >= 8.0 you need to include-–local-infile=1parameter in your connection string.
Functional limitations
Scale operations
- Dynamic scaling to and from the Basic pricing tiers is currently not supported.
- Decreasing server storage size is not supported.
Major version upgrades
- Major version upgrade is supported for v5.6 to v5.7 upgrades only. Upgrades to v8.0 is not supported yet.
Point-in-time-restore
- When using the PITR feature, the new server is created with the same configurations as the server it is based on.
- Restoring a deleted server is not supported.
VNet service endpoints
- Support for VNet service endpoints is only for General Purpose and Memory Optimized servers.
Storage size
- Please refer to pricing tiers for the storage size limits per pricing tier.
Current known issues
- MySQL server instance displays the wrong server version after connection is established. To get the correct server instance engine version, use the
select version();command.