Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
Loading...
The following articles list the differences between the system variables available in MariaDB and in MySQL for each of the major MariaDB series that are no longer maintained.
The following is a comparison of variables that either appear only in MariaDB 11.3 or MySQL 8.0, or have different default settings in MariaDB 11.3, and MySQL 8.0. The releases MariaDB 11.3.1 and MySQL 8.0.35, with only default plugins enabled, were used for the comparison. Note that MySQL 8 is an 'evergreen' release, so features may be added or removed in later releases.
For a more complete list of differences, see Incompatibilities and Feature Differences Between MariaDB 11.3 and MySQL 8.0 and Function Differences Between MariaDB 11.3 and MySQL 8.0
Variable
MariaDB 11.3 Default
MySQL 8.0 Default
Notes
activate_all_roles_on_login
-
OFF
Determines whether to automatically activate on login.
admin*
-
*
MySQL admin connections.
0
-
Only available as an option in MySQL.
DEFAULT
-
MariaDB 10.3 introduced new clauses to avoid slow copies in certain instances. This variable allows setting this if no ALGORITHM clause is specified.
100.0000
-
Percentage of rows from the table will sample to collect table statistics.
*
-
The Aria storage engine is only available in MariaDB.
authentication_policy
-
*,,
MySQL authentication policy.
auto_generate_certs
-
ON
Whether to automatically generate SSL key and certificate files.
avoid_temporal_upgrade
-
OFF
Determines whether ALTER TABLE implicitly upgrades temporal columns.
Autosized
Autosized
MariaDB and MySQL have different autosizing algorithms.
OFF
-
When set, split ALTER at binary logging into two statements: START ALTER and COMMIT/ROLLBACK ALTER.
ON
-
Introduced in MariaDB 5.3 for replicating between MariaDB 5.3 and MySQL/MariaDB 5.1.
NULL
-
A system variable as well as an option in MariaDB 11.
0
-
For use in MariaDB's .
100000
-
For use in MariaDB's .
NULL
-
A system variable as well as an option in MariaDB 11.
binlog_encryption
-
OFF
MySQL name for .
binlog_error_action
ABORT_SERVER
MySQL-only variable for controlling what happens when the server cannot write to the binary log.
binlog_expire_logs_auto_purge
-
ON
Enables or disables automatic purging of binary log files.
0
2592000
Sets the binary log expiration period in seconds
16184
-
For setting the size of the file cache for the .
MIXED
ROW
MariaDB and MySQL have differing .
binlog_group_commit_sync_delay
0
MySQL-only variable for controlling the wait time before synchronizing the binary log file to disk.
binlog_group_commit_sync_no_delay_count
0
MySQL-only variable for setting the maximum number of transactions to wait for before aborting the current binlog_group_commit_sync_delay delay.
binlog_gtid_simple_recovery
-
ON
MySQL-only GTID variable. MariaDB's implementation is different.
binlog_max_flush_queue_time
-
0
Specifies a timeout for reading transactions from the flush queue before continuing with group commit and syncing log to disk.
ON
-
For optimized kernel thread scheduling.
binlog_order_commits
-
ON
Determines whether transactions may be committed in parallel.
binlog_rotate_encryption_master_key_at_startup
-
OFF
Specifically for use with MySQL binary key encryption.
NO_LOG
MINIMAL
Determines the amount of table metadata added to the binary log with row-based logging.
binlog_row_value_options
-
(empty)
Permits an alternative binlog format for JSON document updates.
binlog_rows_query_log_events
-
OFF
MySQL-only variable for logging extra information in row-based logging.
binlog_transaction_compression*
-
*
MySQL variables relating to binary log compression.
binlog_transaction_dependency_history_size
-
25000
Maximum number of row hashes kept for looking up transactions that last modified a given row.
binlog_transaction_dependency_tracking
-
COMMIT_ORDER
For determining how to best use the slave's multithreaded applier.
caching_sha2_password*
-
*
For use with MySQL's SHA-256 authentication with caching.
latin1 or utf8
utf8mb4
MySQL 8.0 defaults to the utf8mb4 .
Empty
-
Overrides for character set default collations.
ON
-
Permits disabling constraint checks, for example when loading a table that violates some constraints that you plan to fix later.
check_proxy_users
OFF
MySQL-only variable for controlling whether the server performs proxy user mapping for authentication plugins.
latin1_swedish_ci or utf8_general_ci
utf8mb4_0900_ai_ci
MySQL 8.0 defaults to the utf8mb4 .
100
-
MariaDB supports .
6
-
MariaDB supports .
DEFAULT_STRATEGY
-
MariaDB supports .
OFF
-
MariaDB supports .
connection_memory_chunk_size
-
8192
Chunk size for updates to the Global_connection_memory counter.
connection_memory_limit
-
18446744073709551615
Maximum memory for a single user connection.
create_admin_listener_thread
-
OFF
MySQL-only variable for whether to use a dedicated listening thread for admin network interface connections.
cte_max_recursion_depth
-
1000
When MySQL 8.0 introduced they used a different name. MariaDB's variable is called .
15
-
The Aria storage engine is only available in MariaDB.
4
-
The Aria storage engine is only available in MariaDB.
50000000
-
The Aria storage engine is only available in MariaDB.
10000
-
The Aria storage engine is only available in MariaDB.
OFF
-
Disable system thread alarm calls, for debugging or testing.
default_authentication_plugin
-
caching_sha2_password
MySQL 8 introduced a new authentication plugin.
default_collation_for_utf8mb4
-
utf8mb4_0900_ai_ci
For internal use in MySQL 8 replication.
empty
-
For use with MariaDB's .
empty
-
For handling incompatibilities between MariaDB's and the old regex library.
empty
InnoDB
Default storage engine used for tables created with .
disabled_storage_engines
empty
MySQL-only variable for disabling specific storage engines.
OFF
ON
MariaDB password expiration is off by default, and by default does not disconnect a client when a password has expired.
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
end_markers_in_json
-
OFF
MySQL-only variable for adding end markers to JSON output.
enforce_gtid_consistency
-
OFF
MariaDB and MySQL have different .
none
Forces the use of a particular storage engine for new tables.
0
200
Variable for tuning when the optimizer should switch from using index dives to index statistics for qualifying rows estimation.
OFF
ON
MySQL enables the event scheduler by default.
100
-
Used for determining expensive queries for optimization.
1
-
Introduced in the .
0
-
Introduced in the .
1048576
1024
MariaDB increases the maximum length for a result from 1K to 1M.
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
64
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
gtid_executed
-
empty
MariaDB and MySQL have different .
gtid_executed_compression_period
-
1000
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
gtid_mode
-
OFF
MariaDB and MySQL have different .
gtid_next
-
AUTOMATIC
MariaDB and MySQL have different .
gtid_owned
-
empty
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
gtid_purged
-
empty
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
YES
-
MySQL has removed the function.
MariaDB's version indicates whether YaSSL or openssl was used. MySQL's is a synonym for have_ssl.
YES
-
MySQL has removed the .
have_statement_timeout
-
Whether MySQL's statement execution timeout feature is available.
YES
DISABLED
MySQL has removed symlink support.
histogram_generation_max_mem_size
-
20000000
Added when MySQL 8 introduced . MariaDB uses
0
-
MariaDB introduced .
JSON_HB
-
MariaDB introduced .
0
-
Time in seconds that the server waits for idle read-only transactions.
0
-
Time in seconds that the server waits for idle transactions.
0
-
Time in seconds that the server waits for idle write transactions.
OFF
-
Ignored and removed in MySQL 8.
1000
-
Controls the optimization.
0
-
Set to 1 if you are in a transaction, and 0 if not.
information_schema_stats_expiry
-
86400
Time until MySQL Information Schema cached statistics expire.
10.000000
10
Adaptive flushing is enabled when this low water mark percentage of the redo log capacity is reached. MariaDB's variable is a , MySQL's an .
OFF
ON
Defaulting to OFF is a performance improvement especially for , , , or operations
-
150000
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
innodb_api_*
-
*
Specific to MySQL's memcached, removed in MariaDB 10.2.
1
2
MariaDB has an extra mode, 3, for skipping the rollback of connected transactions. MySQL defaults to row-based replication, so can safely use 2.
-
1
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6 since the original reasons for introducing no longer apply.
innodb_change*
*
The was removed in MariaDB 11.0.
full_crc32
crc32
fullcrc32 permits encryption to be supported over a SPATIAL INDEX, which crc32 does not support.
-
0
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
*
-
Introduced with MariaDB's .
-
5000
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
Full
-
How to report deadlocks.
innodb_dedicated_server
-
OFF
MySQL option that automatically configures various settings if the server is a dedicated InnoDB database server.
1
-
Default encryption key id used for table encryption. See .
innodb_directories
-
(empty)
Used to search for tablespace files when moving or restoring a new location.
OFF
-
Tell InnoDB to stop any writes to disk.
1
-
See MariaDB's .
600
-
MariaDB's fatal semaphore timeout is configurable.
O_DIRECT
fsync
MariaDB InnoDB flushing method by default on Unix systems bypasses the file system cache for improved performance in most cases.
1
0
MySQL 8 by default now assumes the use of an SSD device.
OFF
-
If set to 1 in MariaDB (0 is default) CREATE TABLEs without a primary or unique key where all keyparts are NOT NULL will not be accepted, and will return an error.
OFF
-
MariaDB has support for .
add_drop_reorder
-
See .
-
ON
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6, as there is no reason to allow checksums to be disabled on the redo log.
-
ON
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6 as part of the InnoDB redo log performance improvements.
-
2
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6 as part of the InnoDB redo log performance improvements.
innodb_log_spin_*
-
*
MySQL variables for constraining CPU usage while waiting for flushed redo.
innodb_log_wait_for_flush_spin_hwm
-
*
MySQL variable for constraining CPU usage while waiting for flushed redo.
75
90
MySQL 8 increased the default to 90.
0
10
MySQL 8 increased the default to 10.
10485760
1073741824
MariaDB 10.2 reduced the limit for when an undo tablespace is marked for truncation.
Autosized (2000)
Autosized (4000)
In most systems, autosized based on the setting, which differs between MariaDB and MySQL.
-
1
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6 as the original reasons for splitting the buffer pool have mostly gone away.
OFF
-
MariaDB includes the Facebook prefix index queries optimization.
innodb_print_ddl_logs
-
OFF
MySQL option for writing DDL logs to stderr.
1000
300
Increased to 1000 in MariaDB after benchmarking found this value to help reduce purge lag without having a significant impact on workload throughput.
ON
-
Whether to set tables to read-only.
innodb_redo_log_encrypt
-
OFF
MySQL 8 has also now introduced redo log encryption, but used a different name. The equivalent option in MariaDB is .
-
0
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
-
128
Removed in MariaDB as part of the InnoDB cleanup. It makes sense to always create and use the maximum number of rollback segments.
4
6
MariaDB changed the default from 6 to 4 based on extensive benchmarking.
0
-
MariaDB option to control the calculation of new statistics.
ON
-
Enabling gives a larger sample of pages for larger tables for the purposes of index statistics calculation.
-
1
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
-
0
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
-
10000
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
OFF
-
MariaDB option for shrinking the temporary tablespace.
innodb_undo_log_encrypt
-
OFF
MySQL option for encrypting undo logs residing in separate undo tablespaces.
OFF
ON
MySQL 8 changes the default to ON, marking larger undo logs for truncation.
3
2
Number of tablespace files used for dividing up the undo logs. MySQL 8 has deprecated this setting, and increased the default (and minimum) to 2.
ON
-
are a faster alternative to innodb_doublewrite and MariaDB automatically detects when supporting SSD cards are used.
internal_tmp_disk_storage_engine
-
INNODB
MySQL uses this variable to set the storage engine for on-disk internal temporary tables.
internal_tmp_mem_storage_engine
-
TEMPTABLE
MySQL and MariaDB use different formats for temporary tables. In MariaDB, the performs a similar function.
2097152
-
Maximum size in bytes of the query buffer. See .
2
-
For determining the join algorithms. See
134217728
8388608
Size of the buffer for the index blocks used by MyISAM tables and shared for all threads.
512
-
Number of hash buckets for open and changed files.
0
-
The number of segments in a key cache. See .
keyring_operations
-
ON
Whether MySQL 8's keyring operations are enabled.
-
empty
MariaDB and MySQL have different .
ON
OFF
MySQL no longer supports LOAD DATA LOCAL by default.
86400
31536000
MariaDB has reduced the timeout for acquiring metadata locks.
OFF
ON
MySQL 8 enables the by default.
OFF
-
MariaDB setting for whether or not the can be compressed.
256
-
Minimum length of sql statement (in statement mode) or record (in row mode) that can be compressed. See .
log_bin_use_v1_row_events
-
OFF
MySQL-only variable showing whether or not MySQL's version 2 binary logging format is being used.
sp
-
Disable logging of certain statements to the .
log_error_services
-
log_filter_internal; log_sink_internal
Components to enable for MySQL error logging.
log_error_verbosity
-
3
MySQL variable for setting verbosity of error, warning, and note messages in the error log.
OFF
ON
MySQL 8 has by default enabled of updates a slave receives from a master.
ON
OFF
MariaDB logs slow admin statements to the by default.
admin,call,slave,sp
-
Disable logging of certain statements to the .
admin, filesort, filesort_on_disk, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk
-
For slow query log filtering.
1
-
Limits the number of queries logged to the .
0
-
Previously named (still an alias).
0
-
Previously named (still an alias).
host_name-slow.log
-
Previously named (still an alias).
10.000000
-
Previously named (still an alias).
10
-
Max numbers of warnings printed to slow query log per statement.
ON
OFF
MariaDB logs slow slave statements to the by default.
empty
-
Controls information to be added to the . See also .
log_statements_unsafe_for_binlog
-
ON
MySQL setting for controlling whether binlog warnings are written to the error log.
log_syslog*
platform-dependent
-
MySQL variables with settings for writing to syslog.
24576
-
Size in bytes of the transaction coordinator log, defined in multiples of 4096.
log_throttle_queries_not_using_indexes
-
0
MySQL-only variable for limiting the number of statements without indexes written to the slow query log.
log_timestamps
-
UTC
MySQL-only variable controlling the timezone for certain logging conditions.
2
-
MySQL 8 has replaced with log_error_verbosity.
mandatory_roles
-
(empty)
MySQL variable for assigning to all users.
master_info_repository
-
TABLE
Whether slave logs master status and connection info to a table or a file.
16M
64M
64
1024
Specifies the maximum number of messages stored for display by and statements.
max_execution_time
-
0
MySQL renamed the max_statement_time variable.
64
1024
Used to decide which algorithm to choose when sorting rows. If the total size of the column data, not including columns that are part of the sort, is less than max_length_for_sort_data, then these are added to the sort key. This can speed up the sort as there's no need to re-read the same row again later. Setting the value too high can slow things down as there will be a higher disk activity for doing the sort.
4294967295
-
Maximum number of failed connections attempts before no more are permitted.
max_points_in_geometry
-
65536
Maximum points_per_circle for MySQL's ST_Buffer_Strategy() function.
4294967295
-
Maximum number of iterations when executing recursive queries.
1073741824
0
Can be set by session in MariaDB.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
The most key seeks required when searching with an index, regardless of the actual index cardinality. If this value is set lower than its default and maximum, indexes will tend to be preferred over table scans.
9223372036854775807
-
Amount of memory a single user session is allowed to allocate.
0
-
Maximum time in seconds that a query can execute before being aborted. MySQL used to have a variable of this name before renaming it max_execution_time.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
Read lock requests will be permitted for processing after this many write locks.
262144
-
Size of buffer to use when using multi-range read with range access. See .
1024
-
Block size used for index pages.
BACKUP,QUICK
OFF
MyISAM recovery mode.
134216704
8388608
Size in bytes of the buffer allocated when creating or sorting indexes on a MyISAM table.
mysql_native_password_proxy_users
-
OFF
Whether MySQL's authentication plugin supports proxy users. I
ON
Causes MariaDB to use the MySQL-5.6 low level formats for , and instead of the MariaDB 5.3+ version.
new
-
OFF
Used for backward-compatibility with MySQL 4.1, not present in MariaDB.
mysqlx+*
-
*
MySQL's X plugin related variables.
basic,explain
-
Verbosity level for note-warnings given to the user.
ngram_token_size
-
2
Sets the n-gram token size for MySQL's n-gram full-text parser.
offline_mode
-
OFF
MySQL settting for specifying whether the server should run in offline mode.
Empty string
-
Used for getting MariaDB to emulate behavior from an old version of MySQL or MariaDB. See .
OFF
-
MySQL 8 is no longer compatible with the old pre-MySQL 4.1 form of password hashing.
8
-
If the optimizer needs to enumerate a join prefix of this size or larger, then it will try aggressively prune away the search space.
32000
-
The maximum weight of the SEL_ARG graph.
16000
-
Maximum number of SEL_ARG objects created when optimizing a range.
100
-
Controls number of record samples to check condition selectivity.
A series of flags for controlling the query optimizer. MariaDB has introduced a number of new settings.
optimizer_trace_*
-
*
MySQL has more settings for optimizer tracing.
4
-
Controls which statistics can be used by the optimizer when looking for the best query execution plan.
original_commit_timestamp
-
*
Used by MySQL 8 for .
parser_max_mem_size
-
4294967295 (32-bit) or 18446744073709547520 (64-bit)
MySQL variable for limiting memory available to the parser.
password_*
-
*
Controls reuse of previous passwords in MySQL.
OFF
ON
The is off by default in MariaDB.
Many performance schema variables are autoset in MySQL, and MySQL has a different version, with additional variables.
One less than the server maturity
-
Minimum acceptable plugin maturity.
5
-
Time in seconds between sending progress reports to the client for time-consuming statements.
(empty)
-
Enable for these source networks.
16384
8192
Size in bytes of the extra blocks allocated during query parsing and execution (after query_prealloc_size is used up).
*
-
MySQL has removed the .
24576
8192
Size in bytes of the persistent buffer for query parsing and execution, allocated on connect and freed on disconnect.
range_optimizer_max_mem_size
-
8388608
MySQL-only variable setting a limit on the range optimizer's memory usage.
rbr_exec_mode
-
STRICT
MySQL-only variable for determining the handling of certain key errors.
0
-
Permits restricting the speed at which the slave reads the binlog from the master.
regexp_*
-
*
Memory and time limits for regular expression matching operations.
relay_log_info_repository
-
TABLE
MySQL-only variable determining whether the slave's position in the relay logs is written to a file or table.
ON
-
Tells the slave to reproduce annotate_rows_events received from the master in its own binary log.
empty string
-
See .
empty string
-
See .
replicate
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
Only available as an option in MySQL.
empty string
-
See .
empty string
-
See .
result_metadata
-
FULL
Determine whether the server returns result set metadata for connections where this is optional.
8388608
-
See .
rpl_read_size
-
8192
Minimum data in bytes read from the binary and relay log files.
-
-
MariaDB includes without the need to install a plugin.
rpl_stop_slave_timeout
-
31536000
Controls the time that waits before timing out.
*
-
The S3 storage engine is only available in MariaDB.
schema_definition_cache
-
256
Limits the number of schema definition objects kept in the dictionary object cache.
ON
-
Removed in MySQL.
NO
-
MariaDB-only option permitting the restricting of direct setting of a session timestamp..
server_id_bits
-
server_id
MySQL-only variable for use in MySQL Cluster.
server_uuid
-
UUID
MySQL-only variable containing the UUID.
session_track_gtids
-
OFF
MySQL-only variables for tracking gtid changes. MariaDB and MySQL's gtid implementation is different.
autocommit, character_set_client, character_set_connection, character_set_results, redirect_url, time_zone
time_zone, autocommit, character_set_client, character_set_results, character_set_connection
MariaDB supports .
sha256_password_proxy_users
-
OFF
MySQL-only variable determining whether the sha256_password plugin supports proxy users.
show_create_table_verbosity
-
OFF
Option to cause to display ROW_FORMAT in all cases.
show_old_temporals
-
OFF
MySQL-only variable for determining whether SHOW CREATE TABLE output should include comments for old format temporal columns.
OFF
-
See .
OFF
-
See .
slave_allow_batching
-
OFF
MySQL-only replication variable.
slave_checkpoint_group
-
512
MySQL-only replication variable.
slave_checkpoint_period
-
300
MySQL-only replication variable.
IDEMPOTENT
-
Modes for how replication of DDL events should be executed.
0
-
For configuring .
3600
60
MySQL reduced the timeout to 60s.
131072
-
For configuring .
0
-
Only available as an option in MySQL.
0.000000
-
MariaDB setting to abort a query that has taken more than this in seconds to run on the replica.
optimistic
-
Controls what transactions are applied in parallel when using .
0
-
For configuring .
slave_parallel_type
-
DATABASE
MySQL-only replication variable.
slave_pending_jobs_size_max
-
16777216
MySQL-only replication variable.
slave_preserve_commit_order
-
OFF
MySQL-only replication variable.
slave_rows_search_algorithms
-
INDEX_SCAN, HASH_SCAN
MySQL-only replication variable.
NO
See for a description and use-case for this setting.
1213,1205
-
When an error occurs during a transaction on the slave, replication usually halts. By default, transactions that caused a deadlock or elapsed lock wait timeout will be retried. One can add other errors to the list of errors that should be retried by adding a comma-separated list of error numbers to this variable.
0
-
Interval in seconds for the slave SQL thread to retry a failed transaction due to a deadlock, elapsed lock wait timeout or an error listed in slave_transaction_retry_errors.
2097152
262144
The default sort buffer allocated has been reduced in MySQL.
OFF
-
Adds an implicit IF EXISTS to ALTER, RENAME and DROP of TABLES, VIEWS, FUNCTIONS and PACKAGES
STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_ENGINE_SUBSTITUTION
See .
ssl_fips_mode
-
OFF
Whether FIPS mode is enabled on the server side. Deprecated in MySQL.
ON
-
See .
InnoDB
-
Alias for , removed in MySQL.
ON
-
In MariaDB, when password validation plugins are enabled, reject passwords that cannot be validated (passwords specified as a hash).
stored_program_definition_cache
-
256
Limits the number of stored program definition objects kept in the dictionary object cache.
super_read_only
-
OFF
MySQL variable for prohibiting client updates from users with the SUPER privilege.
0
1
MySQL synchronizes all actions to the binary log before they are committed.
1
-
.frm files have been removed in MySQL.
ERROR
-
MariaDB has
DEFAULT
-
MariaDB has
OFF
-
MariaDB has
400
-1 (autosized)
Number of table definitions that can be cached.
8
16
Maximum number of table cache instances.
tablespace_definition_cache
-
256
Limits the number of tablespace definition objects kept in the dictionary object cache.
0
-
Interval, in seconds, between when successive keep-alive packets are sent if no acknowledgement is received.
0
-
Number of unacknowledged probes to send before considering the connection dead and notifying the application layer.
0
-
Set the TCP_NODELAY option (disable Nagle's algorithm) on socket.
1
-
Timeout, in milliseconds, with no activity until the first TCP keep-alive packet is sent.
temptable_max_ram
-
1GB
Limits the RAM used by MySQL's TempTable storage engine.
Autosized
-1 (autosized)
MariaDB uses an .
0
-
Better precision for the data in the .
0
-
Better precision for the data in the .
60
-
See .
65536
-
See .
1
-
Windows-only. See .
3
-
See .
auto
-
See .
auto
-
See .
Number of processors
16*
See . *Only available in MySQL with a commercial plugin.
500
6*
See . *Only available in MySQL with a commercial plugin.
299008
Varies
See .
18446744073709551615
-
Max size for data for an internal temporary on-disk MyISAM or Aria table.
16777216
-
Alias for .
transaction_allow_batching
-
OFF
Variable for enabling batching of statements within the same transaction in MySQL Cluster.
transaction_write_set_extraction
-
OFF
Unused MySQL-only variable.
REPEATABLE-READ
-
A MariaDB-only variable, replaced with .
OFF
-
A MariaDB-only variable, replaced with .
preferably_for_queries
-
Controls the use of .
OFF
-
Whether to activate MariaDB's implementation, not available in MySQL.
version_compile_zlib
-
*
Version of the zlib library compiled in.
*
-
Version of the used malloc library.
Varies
-
Permits seeing exactly which version of the source was used for a build.
*
-
Version of the used TLS library.
windowing_high_use_precision
-
*
MySQL option allowing safety to be sacrificed for speed in calculations.
*
-
Galera cluster is only available in MariaDB.
Variable
MySQL 8.0
Notes
The following is a comparison of variables that either appear only in MariaDB 5.5, or have different default settings in MariaDB 5.5, and MySQL 5.5. MariaDB and MySQL 5.5.38, with only default plugins enabled, were used for the comparison.
The most notable differences are that MariaDB includes, by default, the storage engine, uses , and has a different . For this reason, a default implementation of MariaDB 5.5 will use more memory than MySQL 5.5. This can be handled with the following rules of thumb:
If you are not using and don't plan to use :
Set to something very low (16K) as it's not used.
Set to what you think you need for handling internal tmp tables that didn't fit in memory.
Normally this is what before you had set for (at least 1M).
If you are using and not planning to use :
Set to what you think you need for handling internal tmp tables that didn't fit in memory.
If you are planning to use , you should set to something that fits a big part of your normal data + overflow temporary tables.
The large number of differences between MySQL's and MariaDB's default innodb* variables (based upon InnoDB/XtraDB differences) are not listed here. Details can be found on the page.
0
-
The Aria storage engine is only available in MariaDB
none
-
The Aria storage engine is only available in MariaDB
0
-
The Aria storage engine is only available in MariaDB
1073741824
-
The Aria storage engine is only available in MariaDB
immediate
-
The Aria storage engine is only available in MariaDB
9223372036853727232
-
The Aria storage engine is only available in MariaDB
ON
-
The Aria storage engine is only available in MariaDB
300
-
The Aria storage engine is only available in MariaDB
134217720
-
The Aria storage engine is only available in MariaDB
100
-
The Aria storage engine is only available in MariaDB
NORMAL
-
The Aria storage engine is only available in MariaDB
1
-
The Aria storage engine is only available in MariaDB
134217728
-
The Aria storage engine is only available in MariaDB
nulls-unequal
-
The Aria storage engine is only available in MariaDB
NEWFILE
-
The Aria storage engine is only available in MariaDB
ON
-
The Aria storage engine is only available in MariaDB
OFF
-
Introduced in for between and MySQL/.
NONE
-
Specifies the type of BINLOG_CHECKSUM_ALG for log events in the .
ON
-
For optimized kernel thread scheduling.
15
-
The Aria storage engine is only available in MariaDB
4
-
The Aria storage engine is only available in MariaDB
50000000
-
The Aria storage engine is only available in MariaDB
10000
-
The Aria storage engine is only available in MariaDB
OFF
-
Disable system thread alarm calls, for debugging or testing
OFF
ON
Controlled by
100
-
Used for determining expensive queries for optimization.
1
-
Introduced in the .
0
-
Introduced in the .
-
Comma-delimited list of directories in the data directory that are not considered as database directories. Only introduced in MySQL 5.6
0
-
Set to 1 if you are in a transaction, and 0 if not.
2097152
-
Maximum size in bytes of the query buffer. See .
2
-
For determining the join algorithms. See .
134217728
8388608
Size of the buffer for the index blocks used by MyISAM tables and shared for all threads.
0
-
The number of segments in a key cache. See .
admin, filesort, filesort_on_disk, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk
-
For slow query log filtering.
1
-
Limits the number of queries logged to the .
''
-
Controls information to be added to the . See also .
OFF
-
Verify binlog checksums when reading events from the binlog on the master.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
The most key seeks required when searching with an index, regardless of the actual index cardinality. If this value is set lower than its default and maximum, indexes will tend to be preferred over table scans.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
Read lock requests will be permitted for processing after this many write locks.
262144
-
Size of buffer to use when using multi-range read with range access. See .
1024
-
Block size used for index pages.
DEFAULT
OFF
MyISAM recovery mode.
new
-
OFF
Used for backward-compatibility with MySQL 4.1, not present in MariaDB
Empty string
-
Used for getting MariaDB to emulate behavior from an old version of MySQL or MariaDB. See .
A series of flags for controlling the query optimizer. MariaDB has introduced a number of new settings.
unknown
-
Minimum acceptable plugin maturity.
5
-
See .
OFF
-
Whether to strip any comments from the query before searching to see if it exists in the .
OFF
-
Tells the slave to reproduce annotate_rows_events received from the master in its own binary log.
empty string
-
See .
empty string
-
See .
replicate
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
8388608
-
See .
OFF
-
See .
ON
-
Verify binlog checksums when the slave SQL thread reads events from the relay log.
60
-
See .
60
-
See .
60
-
Windows-only. See .
3
-
See .
Number of processors
16*
See . *Only available in MySQL with a commercial plugin.
500
6*
See . *Only available in MySQL with a commercial plugin.
294912
196608 or 262144
See .
OFF
-
Whether to activate MariaDB's implementation, not available in MySQL.
Variable
MySQL 5.5
Notes
Variable
MySQL 5.5
Notes
8192
-
The Aria storage engine is only available in MariaDB
30
-
The Aria storage engine is only available in MariaDB
1048576
-
The Aria storage engine is only available in MariaDB
The following is a comparison of variables that either appear only in MariaDB 11.2 or MySQL 8.0, or have different default settings in MariaDB 11.2, and MySQL 8.0. The releases MariaDB 11.2.2 and MySQL 8.0.34, with only default plugins enabled, were used for the comparison. Note that MySQL 8 is an 'evergreen' release, so features may be added or removed in later releases.
For a more complete list of differences, see Incompatibilities and Feature Differences Between MariaDB 11.2 and MySQL 8.0 and Function Differences Between MariaDB 11.2 and MySQL 8.0
Variable
The following is a comparison of variables that either appear only in MariaDB 11.0 or MySQL 8.0, or have different default settings in MariaDB 11.0, and MySQL 8.0. The releases MariaDB 11.0.2 and MySQL 8.0.34, with only default plugins enabled, were used for the comparison. Note that MySQL 8 is an 'evergreen' release, so features may be added or removed in later releases.
For a more complete list of differences, see Incompatibilities and Feature Differences Between MariaDB 11.0 and MySQL 8.0 and Function Differences Between MariaDB 11.0 and MySQL 8.0
Variable
MariaDB 11.2 Default
MySQL 8.0 Default
Notes
activate_all_roles_on_login
-
OFF
Determines whether to automatically activate on login.
admin*
-
*
MySQL admin connections.
0
-
Only available as an option in MySQL.
DEFAULT
-
MariaDB 10.3 introduced new clauses to avoid slow copies in certain instances. This variable allows setting this if no ALGORITHM clause is specified.
100.0000
-
Percentage of rows from the table will sample to collect table statistics.
*
-
The Aria storage engine is only available in MariaDB.
authentication_policy
-
*,,
MySQL authentication policy.
auto_generate_certs
-
ON
Whether to automatically generate SSL key and certificate files.
avoid_temporal_upgrade
-
OFF
Determines whether ALTER TABLE implicitly upgrades temporal columns.
Autosized
Autosized
MariaDB and MySQL have different autosizing algorithms.
OFF
-
When set, split ALTER at binary logging into two statements: START ALTER and COMMIT/ROLLBACK ALTER.
ON
-
Introduced in MariaDB 5.3 for replicating between MariaDB 5.3 and MySQL/MariaDB 5.1.
NULL
-
A system variable as well as an option in MariaDB 11.
0
-
For use in MariaDB's .
100000
-
For use in MariaDB's .
NULL
-
A system variable as well as an option in MariaDB 11.
binlog_encryption
-
OFF
MySQL name for .
binlog_error_action
ABORT_SERVER
MySQL-only variable for controlling what happens when the server cannot write to the binary log.
binlog_expire_logs_auto_purge
-
ON
Enables or disables automatic purging of binary log files.
0
2592000
Sets the binary log expiration period in seconds
16184
-
For setting the size of the file cache for the .
MIXED
ROW
MariaDB and MySQL have differing .
binlog_group_commit_sync_delay
0
MySQL-only variable for controlling the wait time before synchronizing the binary log file to disk.
binlog_group_commit_sync_no_delay_count
0
MySQL-only variable for setting the maximum number of transactions to wait for before aborting the current binlog_group_commit_sync_delay delay.
binlog_gtid_simple_recovery
-
ON
MySQL-only GTID variable. MariaDB's implementation is different.
binlog_max_flush_queue_time
-
0
Specifies a timeout for reading transactions from the flush queue before continuing with group commit and syncing log to disk.
ON
-
For optimized kernel thread scheduling.
binlog_order_commits
-
ON
Determines whether transactions may be committed in parallel.
binlog_rotate_encryption_master_key_at_startup
-
OFF
Specifically for use with MySQL binary key encryption.
NO_LOG
MINIMAL
Determines the amount of table metadata added to the binary log with row-based logging.
binlog_row_value_options
-
(empty)
Permits an alternative binlog format for JSON document updates.
binlog_rows_query_log_events
-
OFF
MySQL-only variable for logging extra information in row-based logging.
binlog_transaction_compression*
-
*
MySQL variables relating to binary log compression.
binlog_transaction_dependency_history_size
-
25000
Maximum number of row hashes kept for looking up transactions that last modified a given row.
binlog_transaction_dependency_tracking
-
COMMIT_ORDER
For determining how to best use the slave's multithreaded applier.
caching_sha2_password*
-
*
For use with MySQL's SHA-256 authentication with caching.
latin1 or utf8
utf8mb4
MySQL 8.0 defaults to the utf8mb4 .
Empty
-
Overrides for character set default collations.
ON
-
Permits disabling constraint checks, for example when loading a table that violates some constraints that you plan to fix later.
check_proxy_users
OFF
MySQL-only variable for controlling whether the server performs proxy user mapping for authentication plugins.
latin1_swedish_ci or utf8_general_ci
utf8mb4_0900_ai_ci
MySQL 8.0 defaults to the utf8mb4 .
100
-
MariaDB supports .
6
-
MariaDB supports .
DEFAULT_STRATEGY
-
MariaDB supports .
OFF
-
MariaDB supports .
connection_memory_chunk_size
-
8192
Chunk size for updates to the Global_connection_memory counter.
connection_memory_limit
-
18446744073709551615
Maximum memory for a single user connection.
create_admin_listener_thread
-
OFF
MySQL-only variable for whether to use a dedicated listening thread for admin network interface connections.
cte_max_recursion_depth
-
1000
When MySQL 8.0 introduced they used a different name. MariaDB's variable is called .
%Y-%m-%d
-
Unused variable removed in MySQL 8.0
%Y-%m-%d
-
Unused variable removed in MySQL 8.0
15
-
The Aria storage engine is only available in MariaDB.
4
-
The Aria storage engine is only available in MariaDB.
50000000
-
The Aria storage engine is only available in MariaDB.
10000
-
The Aria storage engine is only available in MariaDB.
OFF
-
Disable system thread alarm calls, for debugging or testing.
default_authentication_plugin
-
caching_sha2_password
MySQL 8 introduced a new authentication plugin.
default_collation_for_utf8mb4
-
utf8mb4_0900_ai_ci
For internal use in MySQL 8 replication.
empty
-
For use with MariaDB's .
empty
-
For handling incompatibilities between MariaDB's and the old regex library.
empty
InnoDB
Default storage engine used for tables created with .
disabled_storage_engines
empty
MySQL-only variable for disabling specific storage engines.
OFF
ON
MariaDB password expiration is off by default, and by default does not disconnect a client when a password has expired.
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
end_markers_in_json
-
OFF
MySQL-only variable for adding end markers to JSON output.
enforce_gtid_consistency
-
OFF
MariaDB and MySQL have different .
none
Forces the use of a particular storage engine for new tables.
0
200
Variable for tuning when the optimizer should switch from using index dives to index statistics for qualifying rows estimation.
OFF
ON
MySQL enables the event scheduler by default.
100
-
Used for determining expensive queries for optimization.
1
-
Introduced in the .
0
-
Introduced in the .
1048576
1024
MariaDB increases the maximum length for a result from 1K to 1M.
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
64
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
gtid_executed
-
empty
MariaDB and MySQL have different .
gtid_executed_compression_period
-
1000
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
gtid_mode
-
OFF
MariaDB and MySQL have different .
gtid_next
-
AUTOMATIC
MariaDB and MySQL have different .
gtid_owned
-
empty
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
gtid_purged
-
empty
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
YES
-
MySQL has removed the function.
MariaDB's version indicates whether YaSSL or openssl was used. MySQL's is a synonym for have_ssl.
YES
-
MySQL has removed the .
have_statement_timeout
-
Whether MySQL's statement execution timeout feature is available.
YES
DISABLED
MySQL has removed symlink support.
histogram_generation_max_mem_size
-
20000000
Added when MySQL 8 introduced . MariaDB uses
0
-
MariaDB introduced .
JSON_HB
-
MariaDB introduced .
0
-
Time in seconds that the server waits for idle read-only transactions.
0
-
Time in seconds that the server waits for idle transactions.
0
-
Time in seconds that the server waits for idle write transactions.
OFF
-
Ignored and removed in MySQL 8.
1000
-
Controls the optimization.
0
-
Set to 1 if you are in a transaction, and 0 if not.
information_schema_stats_expiry
-
86400
Time until MySQL Information Schema cached statistics expire.
10.000000
10
Adaptive flushing is enabled when this low water mark percentage of the redo log capacity is reached. MariaDB's variable is a , MySQL's an .
OFF
ON
Defaulting to OFF is a performance improvement especially for , , , or operations
-
150000
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
innodb_api_*
-
*
Specific to MySQL's memcached, removed in MariaDB 10.2.
1
2
MariaDB has an extra mode, 3, for skipping the rollback of connected transactions. MySQL defaults to row-based replication, so can safely use 2.
-
1
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6 since the original reasons for introducing no longer apply.
innodb_change*
*
The was removed in MariaDB 11.0.
full_crc32
crc32
fullcrc32 permits encryption to be supported over a SPATIAL INDEX, which crc32 does not support.
-
0
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
*
-
Introduced with MariaDB's .
-
5000
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
Full
-
How to report deadlocks.
innodb_dedicated_server
-
OFF
MySQL option that automatically configures various settings if the server is a dedicated InnoDB database server.
1
-
Default encryption key id used for table encryption. See .
innodb_directories
-
(empty)
Used to search for tablespace files when moving or restoring a new location.
OFF
-
Tell InnoDB to stop any writes to disk.
1
-
See MariaDB's .
600
-
MariaDB's fatal semaphore timeout is configurable.
O_DIRECT
fsync
MariaDB InnoDB flushing method by default on Unix systems bypasses the file system cache for improved performance in most cases.
1
0
MySQL 8 by default now assumes the use of an SSD device.
OFF
-
If set to 1 in MariaDB (0 is default) CREATE TABLEs without a primary or unique key where all keyparts are NOT NULL will not be accepted, and will return an error.
OFF
-
MariaDB has support for .
add_drop_reorder
-
See .
-
ON
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6, as there is no reason to allow checksums to be disabled on the redo log.
-
ON
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6 as part of the InnoDB redo log performance improvements.
-
2
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6 as part of the InnoDB redo log performance improvements.
innodb_log_spin_*
-
*
MySQL variables for constraining CPU usage while waiting for flushed redo.
innodb_log_wait_for_flush_spin_hwm
-
*
MySQL variable for constraining CPU usage while waiting for flushed redo.
75
90
MySQL 8 increased the default to 90.
0
10
MySQL 8 increased the default to 10.
10485760
1073741824
MariaDB 10.2 reduced the limit for when an undo tablespace is marked for truncation.
Autosized (2000)
Autosized (4000)
In most systems, autosized based on the setting, which differs between MariaDB and MySQL.
-
1
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6 as the original reasons for splitting the buffer pool have mostly gone away.
OFF
-
MariaDB includes the Facebook prefix index queries optimization.
innodb_print_ddl_logs
-
OFF
MySQL option for writing DDL logs to stderr.
1000
300
Increased to 1000 in MariaDB after benchmarking found this value to help reduce purge lag without having a significant impact on workload throughput.
ON
-
Whether to set tables to read-only.
innodb_redo_log_encrypt
-
OFF
MySQL 8 has also now introduced redo log encryption, but used a different name. The equivalent option in MariaDB is .
-
0
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
-
128
Removed in MariaDB as part of the InnoDB cleanup. It makes sense to always create and use the maximum number of rollback segments.
4
6
MariaDB changed the default from 6 to 4 based on extensive benchmarking.
0
-
MariaDB option to control the calculation of new statistics.
ON
-
Enabling gives a larger sample of pages for larger tables for the purposes of index statistics calculation.
-
1
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
-
0
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
-
10000
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
innodb_undo_log_encrypt
-
OFF
MySQL option for encrypting undo logs residing in separate undo tablespaces.
OFF
ON
MySQL 8 changes the default to ON, marking larger undo logs for truncation.
3
2
Number of tablespace files used for dividing up the undo logs. MySQL 8 has deprecated this setting, and increased the default (and minimum) to 2.
ON
-
are a faster alternative to innodb_doublewrite and MariaDB automatically detects when supporting SSD cards are used.
internal_tmp_disk_storage_engine
-
INNODB
MySQL uses this variable to set the storage engine for on-disk internal temporary tables.
internal_tmp_mem_storage_engine
-
TEMPTABLE
MySQL and MariaDB use different formats for temporary tables. In MariaDB, the performs a similar function.
2097152
-
Maximum size in bytes of the query buffer. See .
2
-
For determining the join algorithms. See
134217728
8388608
Size of the buffer for the index blocks used by MyISAM tables and shared for all threads.
512
-
Number of hash buckets for open and changed files.
0
-
The number of segments in a key cache. See .
keyring_operations
-
ON
Whether MySQL 8's keyring operations are enabled.
-
empty
MariaDB and MySQL have different .
ON
OFF
MySQL no longer supports LOAD DATA LOCAL by default.
86400
31536000
MariaDB has reduced the timeout for acquiring metadata locks.
OFF
ON
MySQL 8 enables the by default.
OFF
-
MariaDB setting for whether or not the can be compressed.
256
-
Minimum length of sql statement (in statement mode) or record (in row mode) that can be compressed. See .
log_bin_use_v1_row_events
-
OFF
MySQL-only variable showing whether or not MySQL's version 2 binary logging format is being used.
sp
-
Disable logging of certain statements to the .
log_error_services
-
log_filter_internal; log_sink_internal
Components to enable for MySQL error logging.
log_error_verbosity
-
3
MySQL variable for setting verbosity of error, warning, and note messages in the error log.
OFF
ON
MySQL 8 has by default enabled of updates a slave receives from a master.
ON
OFF
MariaDB logs slow admin statements to the by default.
admin,call,slave,sp
-
Disable logging of certain statements to the .
admin, filesort, filesort_on_disk, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk
-
For slow query log filtering.
1
-
Limits the number of queries logged to the .
0
-
Previously named (still an alias).
0
-
Previously named (still an alias).
host_name-slow.log
-
Previously named (still an alias).
10.000000
-
Previously named (still an alias).
10
-
Max numbers of warnings printed to slow query log per statement.
ON
OFF
MariaDB logs slow slave statements to the by default.
empty
-
Controls information to be added to the . See also .
log_statements_unsafe_for_binlog
-
ON
MySQL setting for controlling whether binlog warnings are written to the error log.
log_syslog*
platform-dependent
-
MySQL variables with settings for writing to syslog.
24576
-
Size in bytes of the transaction coordinator log, defined in multiples of 4096.
log_throttle_queries_not_using_indexes
-
0
MySQL-only variable for limiting the number of statements without indexes written to the slow query log.
log_timestamps
-
UTC
MySQL-only variable controlling the timezone for certain logging conditions.
2
-
MySQL 8 has replaced with log_error_verbosity.
mandatory_roles
-
(empty)
MySQL variable for assigning to all users.
master_info_repository
-
TABLE
Whether slave logs master status and connection info to a table or a file.
16M
64M
64
1024
Specifies the maximum number of messages stored for display by and statements.
max_execution_time
-
0
MySQL renamed the max_statement_time variable.
64
1024
Used to decide which algorithm to choose when sorting rows. If the total size of the column data, not including columns that are part of the sort, is less than max_length_for_sort_data, then these are added to the sort key. This can speed up the sort as there's no need to re-read the same row again later. Setting the value too high can slow things down as there will be a higher disk activity for doing the sort.
4294967295
-
Maximum number of failed connections attempts before no more are permitted.
max_points_in_geometry
-
65536
Maximum points_per_circle for MySQL's ST_Buffer_Strategy() function.
4294967295
-
Maximum number of iterations when executing recursive queries.
1073741824
0
Can be set by session in MariaDB.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
The most key seeks required when searching with an index, regardless of the actual index cardinality. If this value is set lower than its default and maximum, indexes will tend to be preferred over table scans.
9223372036854775807
-
Amount of memory a single user session is allowed to allocate.
0
-
Maximum time in seconds that a query can execute before being aborted. MySQL used to have a variable of this name before renaming it max_execution_time.
32
-
Unused variable removed in MySQL.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
Read lock requests will be permitted for processing after this many write locks.
262144
-
Size of buffer to use when using multi-range read with range access. See .
1024
-
Block size used for index pages.
BACKUP,QUICK
OFF
MyISAM recovery mode.
134216704
8388608
Size in bytes of the buffer allocated when creating or sorting indexes on a MyISAM table.
mysql_native_password_proxy_users
-
OFF
Whether MySQL's authentication plugin supports proxy users. I
ON
Causes MariaDB to use the MySQL-5.6 low level formats for , and instead of the MariaDB 5.3+ version.
new
-
OFF
Used for backward-compatibility with MySQL 4.1, not present in MariaDB.
mysqlx+*
-
*
MySQL's X plugin related variables.
basic,explain
-
Verbosity level for note-warnings given to the user.
ngram_token_size
-
2
Sets the n-gram token size for MySQL's n-gram full-text parser.
offline_mode
-
OFF
MySQL settting for specifying whether the server should run in offline mode.
Empty string
-
Used for getting MariaDB to emulate behavior from an old version of MySQL or MariaDB. See .
OFF
-
MySQL 8 is no longer compatible with the old pre-MySQL 4.1 form of password hashing.
8
-
If the optimizer needs to enumerate a join prefix of this size or larger, then it will try aggressively prune away the search space.
32000
-
The maximum weight of the SEL_ARG graph.
16000
-
Maximum number of SEL_ARG objects created when optimizing a range.
100
-
Controls number of record samples to check condition selectivity.
A series of flags for controlling the query optimizer. MariaDB has introduced a number of new settings.
optimizer_trace_*
-
*
MySQL has more settings for optimizer tracing.
4
-
Controls which statistics can be used by the optimizer when looking for the best query execution plan.
original_commit_timestamp
-
*
Used by MySQL 8 for .
parser_max_mem_size
-
4294967295 (32-bit) or 18446744073709547520 (64-bit)
MySQL variable for limiting memory available to the parser.
password_*
-
*
Controls reuse of previous passwords in MySQL.
OFF
ON
The is off by default in MariaDB.
Many performance schema variables are autoset in MySQL, and MySQL has a different version, with additional variables.
One less than the server maturity
-
Minimum acceptable plugin maturity.
5
-
Time in seconds between sending progress reports to the client for time-consuming statements.
(empty)
-
Enable for these source networks.
16384
8192
Size in bytes of the extra blocks allocated during query parsing and execution (after query_prealloc_size is used up).
*
-
MySQL has removed the .
24576
8192
Size in bytes of the persistent buffer for query parsing and execution, allocated on connect and freed on disconnect.
range_optimizer_max_mem_size
-
8388608
MySQL-only variable setting a limit on the range optimizer's memory usage.
rbr_exec_mode
-
STRICT
MySQL-only variable for determining the handling of certain key errors.
0
-
Permits restricting the speed at which the slave reads the binlog from the master.
regexp_*
-
*
Memory and time limits for regular expression matching operations.
relay_log_info_repository
-
TABLE
MySQL-only variable determining whether the slave's position in the relay logs is written to a file or table.
ON
-
Tells the slave to reproduce annotate_rows_events received from the master in its own binary log.
empty string
-
See .
empty string
-
See .
replicate
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
Only available as an option in MySQL.
empty string
-
See .
empty string
-
See .
result_metadata
-
FULL
Determine whether the server returns result set metadata for connections where this is optional.
8388608
-
See .
rpl_read_size
-
8192
Minimum data in bytes read from the binary and relay log files.
-
-
MariaDB includes without the need to install a plugin.
rpl_stop_slave_timeout
-
31536000
Controls the time that waits before timing out.
*
-
The S3 storage engine is only available in MariaDB.
schema_definition_cache
-
256
Limits the number of schema definition objects kept in the dictionary object cache.
ON
-
Removed in MySQL.
NO
-
MariaDB-only option permitting the restricting of direct setting of a session timestamp..
server_id_bits
-
server_id
MySQL-only variable for use in MySQL Cluster.
server_uuid
-
UUID
MySQL-only variable containing the UUID.
session_track_gtids
-
OFF
MySQL-only variables for tracking gtid changes. MariaDB and MySQL's gtid implementation is different.
sha256_password_proxy_users
-
OFF
MySQL-only variable determining whether the sha256_password plugin supports proxy users.
show_create_table_verbosity
-
OFF
Option to cause to display ROW_FORMAT in all cases.
show_old_temporals
-
OFF
MySQL-only variable for determining whether SHOW CREATE TABLE output should include comments for old format temporal columns.
OFF
-
See .
OFF
-
See .
slave_allow_batching
-
OFF
MySQL-only replication variable.
slave_checkpoint_group
-
512
MySQL-only replication variable.
slave_checkpoint_period
-
300
MySQL-only replication variable.
IDEMPOTENT
-
Modes for how replication of DDL events should be executed.
0
-
For configuring .
3600
60
MySQL reduced the timeout to 60s.
131072
-
For configuring .
0
-
Only available as an option in MySQL.
0.000000
-
MariaDB setting to abort a query that has taken more than this in seconds to run on the replica.
optimistic
-
Controls what transactions are applied in parallel when using .
0
-
For configuring .
slave_parallel_type
-
DATABASE
MySQL-only replication variable.
slave_pending_jobs_size_max
-
16777216
MySQL-only replication variable.
slave_preserve_commit_order
-
OFF
MySQL-only replication variable.
slave_rows_search_algorithms
-
INDEX_SCAN, HASH_SCAN
MySQL-only replication variable.
NO
See for a description and use-case for this setting.
1213,1205
-
When an error occurs during a transaction on the slave, replication usually halts. By default, transactions that caused a deadlock or elapsed lock wait timeout will be retried. One can add other errors to the list of errors that should be retried by adding a comma-separated list of error numbers to this variable.
0
-
Interval in seconds for the slave SQL thread to retry a failed transaction due to a deadlock, elapsed lock wait timeout or an error listed in slave_transaction_retry_errors.
2097152
262144
The default sort buffer allocated has been reduced in MySQL.
OFF
-
Adds an implicit IF EXISTS to ALTER, RENAME and DROP of TABLES, VIEWS, FUNCTIONS and PACKAGES
STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_ENGINE_SUBSTITUTION
See .
ssl_fips_mode
-
OFF
Whether FIPS mode is enabled on the server side. Deprecated in MySQL.
ON
-
See .
InnoDB
-
Alias for , removed in MySQL.
ON
-
In MariaDB, when password validation plugins are enabled, reject passwords that cannot be validated (passwords specified as a hash).
stored_program_definition_cache
-
256
Limits the number of stored program definition objects kept in the dictionary object cache.
super_read_only
-
OFF
MySQL variable for prohibiting client updates from users with the SUPER privilege.
0
1
MySQL synchronizes all actions to the binary log before they are committed.
1
-
.frm files have been removed in MySQL.
ERROR
-
MariaDB has
DEFAULT
-
MariaDB has
OFF
-
MariaDB has
400
-1 (autosized)
Number of table definitions that can be cached.
8
16
Maximum number of table cache instances.
tablespace_definition_cache
-
256
Limits the number of tablespace definition objects kept in the dictionary object cache.
0
-
Interval, in seconds, between when successive keep-alive packets are sent if no acknowledgement is received.
0
-
Number of unacknowledged probes to send before considering the connection dead and notifying the application layer.
0
-
Set the TCP_NODELAY option (disable Nagle's algorithm) on socket.
1
-
Timeout, in milliseconds, with no activity until the first TCP keep-alive packet is sent.
temptable_max_ram
-
1GB
Limits the RAM used by MySQL's TempTable storage engine.
Autosized
-1 (autosized)
MariaDB uses an .
0
-
Better precision for the data in the .
0
-
Better precision for the data in the .
60
-
See .
65536
-
See .
1
-
Windows-only. See .
3
-
See .
auto
-
See .
auto
-
See .
Number of processors
16*
See . *Only available in MySQL with a commercial plugin.
500
6*
See . *Only available in MySQL with a commercial plugin.
299008
Varies
See .
%H:%i:%s
-
Removed in MySQL.
18446744073709551615
-
Max size for data for an internal temporary on-disk MyISAM or Aria table.
16777216
-
Alias for .
transaction_allow_batching
-
OFF
Variable for enabling batching of statements within the same transaction in MySQL Cluster.
transaction_write_set_extraction
-
OFF
Unused MySQL-only variable.
REPEATABLE-READ
-
A MariaDB-only variable, replaced with .
OFF
-
A MariaDB-only variable, replaced with .
preferably_for_queries
-
Controls the use of .
OFF
-
Whether to activate MariaDB's implementation, not available in MySQL.
version_compile_zlib
-
*
Version of the zlib library compiled in.
*
-
Version of the used malloc library.
Varies
-
Permits seeing exactly which version of the source was used for a build.
*
-
Version of the used TLS library.
windowing_high_use_precision
-
*
MySQL option allowing safety to be sacrificed for speed in calculations.
*
-
Galera cluster is only available in MariaDB.
Variable
MySQL 8.0
Notes
MariaDB 11.0 Default
MySQL 8.0 Default
Notes
activate_all_roles_on_login
-
OFF
Determines whether to automatically activate on login.
admin*
-
*
MySQL admin connections.
0
-
Only available as an option in MySQL.
DEFAULT
-
MariaDB 10.3 introduced new clauses to avoid slow copies in certain instances. This variable allows setting this if no ALGORITHM clause is specified.
100.0000
-
Percentage of rows from the table will sample to collect table statistics.
*
-
The Aria storage engine is only available in MariaDB.
authentication_policy
-
*,,
MySQL authentication policy.
auto_generate_certs
-
ON
Whether to automatically generate SSL key and certificate files.
avoid_temporal_upgrade
-
OFF
Determines whether ALTER TABLE implicitly upgrades temporal columns.
Autosized
Autosized
MariaDB and MySQL have different autosizing algorithms.
OFF
-
When set, split ALTER at binary logging into two statements: START ALTER and COMMIT/ROLLBACK ALTER.
ON
-
Introduced in MariaDB 5.3 for replicating between MariaDB 5.3 and MySQL/MariaDB 5.1.
0
-
For use in MariaDB's .
100000
-
For use in MariaDB's .
binlog_encryption
-
OFF
MySQL name for .
binlog_error_action
ABORT_SERVER
MySQL-only variable for controlling what happens when the server cannot write to the binary log.
binlog_expire_logs_auto_purge
-
ON
Enables or disables automatic purging of binary log files.
0
2592000
Sets the binary log expiration period in seconds
16184
-
For setting the size of the file cache for the .
MIXED
ROW
MariaDB and MySQL have differing .
binlog_group_commit_sync_delay
0
MySQL-only variable for controlling the wait time before synchronizing the binary log file to disk.
binlog_group_commit_sync_no_delay_count
0
MySQL-only variable for setting the maximum number of transactions to wait for before aborting the current binlog_group_commit_sync_delay delay.
binlog_gtid_simple_recovery
-
ON
MySQL-only GTID variable. MariaDB's implementation is different.
binlog_max_flush_queue_time
-
0
Specifies a timeout for reading transactions from the flush queue before continuing with group commit and syncing log to disk.
ON
-
For optimized kernel thread scheduling.
binlog_order_commits
-
ON
Determines whether transactions may be committed in parallel.
binlog_rotate_encryption_master_key_at_startup
-
OFF
Specifically for use with MySQL binary key encryption.
-
8192
Only available as a system variable in MariaDB 11.2.
NO_LOG
MINIMAL
Determines the amount of table metadata added to the binary log with row-based logging.
binlog_row_value_options
-
(empty)
Permits an alternative binlog format for JSON document updates.
binlog_rows_query_log_events
-
OFF
MySQL-only variable for logging extra information in row-based logging.
binlog_transaction_compression*
-
*
MySQL variables relating to binary log compression.
binlog_transaction_dependency_history_size
-
25000
Maximum number of row hashes kept for looking up transactions that last modified a given row.
binlog_transaction_dependency_tracking
-
COMMIT_ORDER
For determining how to best use the slave's multithreaded applier.
block_encryption_mode
-
aes-128-ecb
MySQL-only variable for controlling the block encryption mode for block-based algorithms.
caching_sha2_password*
-
*
For use with MySQL's SHA-256 authentication with caching.
latin1 or utf8
utf8mb4
MySQL 8.0 defaults to the utf8mb4 .
ON
-
Permits disabling constraint checks, for example when loading a table that violates some constraints that you plan to fix later.
check_proxy_users
OFF
MySQL-only variable for controlling whether the server performs proxy user mapping for authentication plugins.
latin1_swedish_ci or utf8_general_ci
utf8mb4_0900_ai_ci
MySQL 8.0 defaults to the utf8mb4 .
100
-
MariaDB supports .
6
-
MariaDB supports .
DEFAULT_STRATEGY
-
MariaDB supports .
OFF
-
MariaDB supports .
connection_memory_chunk_size
-
8192
Chunk size for updates to the Global_connection_memory counter.
connection_memory_limit
-
18446744073709551615
Maximum memory for a single user connection.
create_admin_listener_thread
-
OFF
MySQL-only variable for whether to use a dedicated listening thread for admin network interface connections.
cte_max_recursion_depth
-
1000
When MySQL 8.0 introduced they used a different name. MariaDB's variable is called .
%Y-%m-%d
-
Unused variable removed in MySQL 8.0
%Y-%m-%d
-
Unused variable removed in MySQL 8.0
15
-
The Aria storage engine is only available in MariaDB.
4
-
The Aria storage engine is only available in MariaDB.
50000000
-
The Aria storage engine is only available in MariaDB.
10000
-
The Aria storage engine is only available in MariaDB.
OFF
-
Disable system thread alarm calls, for debugging or testing.
default_authentication_plugin
-
caching_sha2_password
MySQL 8 introduced a new authentication plugin.
default_collation_for_utf8mb4
-
utf8mb4_0900_ai_ci
For internal use in MySQL 8 replication.
empty
-
For use with MariaDB's .
empty
-
For handling incompatibilities between MariaDB's and the old regex library.
empty
InnoDB
Default storage engine used for tables created with .
disabled_storage_engines
empty
MySQL-only variable for disabling specific storage engines.
OFF
ON
MariaDB password expiration is off by default, and by default does not disconnect a client when a password has expired.
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
end_markers_in_json
-
OFF
MySQL-only variable for adding end markers to JSON output.
enforce_gtid_consistency
-
OFF
MariaDB and MySQL have different .
none
Forces the use of a particular storage engine for new tables.
0
200
Variable for tuning when the optimizer should switch from using index dives to index statistics for qualifying rows estimation.
OFF
ON
MySQL enables the event scheduler by default.
100
-
Used for determining expensive queries for optimization.
1
-
Introduced in the .
0
-
Introduced in the .
1048576
1024
MariaDB increases the maximum length for a result from 1K to 1M.
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
64
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
gtid_executed
-
empty
MariaDB and MySQL have different .
gtid_executed_compression_period
-
1000
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
gtid_mode
-
OFF
MariaDB and MySQL have different .
gtid_next
-
AUTOMATIC
MariaDB and MySQL have different .
gtid_owned
-
empty
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
gtid_purged
-
empty
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
YES
-
MySQL has removed the function.
MariaDB's version indicates whether YaSSL or openssl was used. MySQL's is a synonym for have_ssl.
YES
-
MySQL has removed the .
have_statement_timeout
-
Whether MySQL's statement execution timeout feature is available.
YES
DISABLED
MySQL has removed symlink support.
histogram_generation_max_mem_size
-
20000000
Added when MySQL 8 introduced . MariaDB uses
0
-
MariaDB introduced .
JSON_HB
-
MariaDB introduced .
0
-
Time in seconds that the server waits for idle read-only transactions.
0
-
Time in seconds that the server waits for idle transactions.
0
-
Time in seconds that the server waits for idle write transactions.
OFF
-
Ignored and removed in MySQL 8.
1000
-
Controls the optimization.
0
-
Set to 1 if you are in a transaction, and 0 if not.
information_schema_stats_expiry
-
86400
Time until MySQL Information Schema cached statistics expire.
10.000000
10
Adaptive flushing is enabled when this low water mark percentage of the redo log capacity is reached. MariaDB's variable is a , MySQL's an .
OFF
ON
Defaulting to OFF is a performance improvement especially for , , , or operations
-
150000
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
innodb_api_*
-
*
Specific to MySQL's memcached, removed in MariaDB 10.2.
1
2
MariaDB has an extra mode, 3, for skipping the rollback of connected transactions. MySQL defaults to row-based replication, so can safely use 2.
-
1
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6 since the original reasons for introducing no longer apply.
innodb_change*
*
The was removed in MariaDB 11.0.
full_crc32
crc32
fullcrc32 permits encryption to be supported over a SPATIAL INDEX, which crc32 does not support.
-
0
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
*
-
Introduced with MariaDB's .
-
5000
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
Full
-
How to report deadlocks.
innodb_dedicated_server
-
OFF
MySQL option that automatically configures various settings if the server is a dedicated InnoDB database server.
1
-
Default encryption key id used for table encryption. See .
*
-
MariaDB can .
innodb_directories
-
(empty)
Used to search for tablespace files when moving or restoring a new location.
OFF
-
Tell InnoDB to stop any writes to disk.
1
-
See MariaDB's .
600
-
MariaDB's fatal semaphore timeout is configurable.
O_DIRECT
fsync
MariaDB InnoDB flushing method by default on Unix systems bypasses the file system cache for improved performance in most cases.
1
0
MySQL 8 by default now assumes the use of an SSD device.
OFF
-
If set to 1 in MariaDB (0 is default) CREATE TABLEs without a primary or unique key where all keyparts are NOT NULL will not be accepted, and will return an error.
OFF
-
MariaDB has support for .
add_drop_reorder
-
See .
-
ON
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6, as there is no reason to allow checksums to be disabled on the redo log.
-
ON
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6 as part of the InnoDB redo log performance improvements.
-
2
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6 as part of the InnoDB redo log performance improvements.
innodb_log_spin_*
-
*
MySQL variables for constraining CPU usage while waiting for flushed redo.
innodb_log_wait_for_flush_spin_hwm
-
*
MySQL variable for constraining CPU usage while waiting for flushed redo.
75
90
MySQL 8 increased the default to 90.
0
10
MySQL 8 increased the default to 10.
10485760
1073741824
MariaDB 10.2 reduced the limit for when an undo tablespace is marked for truncation.
Autosized (2000)
Autosized (4000)
In most systems, autosized based on the setting, which differs between MariaDB and MySQL.
-
1
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6 as the original reasons for splitting the buffer pool have mostly gone away.
OFF
-
MariaDB includes the Facebook prefix index queries optimization.
innodb_print_ddl_logs
-
OFF
MySQL option for writing DDL logs to stderr.
ON
-
Whether to set tables to read-only.
innodb_redo_log_encrypt
-
OFF
MySQL 8 has also now introduced redo log encryption, but used a different name. The equivalent option in MariaDB is .
-
0
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
-
128
Removed in MariaDB as part of the InnoDB cleanup. It makes sense to always create and use the maximum number of rollback segments.
4
6
MariaDB changed the default from 6 to 4 based on extensive benchmarking.
0
-
MariaDB option to control the calculation of new statistics.
ON
-
Enabling gives a larger sample of pages for larger tables for the purposes of index statistics calculation.
-
1
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
-
0
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
-
10000
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
innodb_undo_log_encrypt
-
OFF
MySQL option for encrypting undo logs residing in separate undo tablespaces.
OFF
ON
MySQL 8 changes the default to ON, marking larger undo logs for truncation.
3
2
Number of tablespace files used for dividing up the undo logs. MySQL 8 has deprecated this setting, and increased the default (and minimum) to 2.
ON
-
are a faster alternative to innodb_doublewrite and MariaDB automatically detects when supporting SSD cards are used.
internal_tmp_disk_storage_engine
-
INNODB
MySQL uses this variable to set the storage engine for on-disk internal temporary tables.
internal_tmp_mem_storage_engine
-
TEMPTABLE
MySQL and MariaDB use different formats for temporary tables. In MariaDB, the performs a similar function.
2097152
-
Maximum size in bytes of the query buffer. See .
2
-
For determining the join algorithms. See
134217728
8388608
Size of the buffer for the index blocks used by MyISAM tables and shared for all threads.
512
-
Number of hash buckets for open and changed files.
0
-
The number of segments in a key cache. See .
keyring_operations
-
ON
Whether MySQL 8's keyring operations are enabled.
-
empty
MariaDB and MySQL have different .
ON
OFF
MySQL no longer supports LOAD DATA LOCAL by default.
86400
31536000
MariaDB has reduced the timeout for acquiring metadata locks.
OFF
ON
MySQL 8 enables the by default.
OFF
-
MariaDB setting for whether or not the can be compressed.
256
-
Minimum length of sql statement (in statement mode) or record (in row mode) that can be compressed. See .
log_bin_use_v1_row_events
-
OFF
MySQL-only variable showing whether or not MySQL's version 2 binary logging format is being used.
sp
-
Disable logging of certain statements to the .
log_error_services
-
log_filter_internal; log_sink_internal
Components to enable for MySQL error logging.
log_error_verbosity
-
3
MySQL variable for setting verbosity of error, warning, and note messages in the error log.
OFF
ON
MySQL 8 has by default enabled of updates a slave receives from a master.
ON
OFF
MariaDB logs slow admin statements to the by default.
admin,call,slave,sp
-
Disable logging of certain statements to the .
admin, filesort, filesort_on_disk, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk
-
For slow query log filtering.
1
-
Limits the number of queries logged to the .
0
-
Previously named (still an alias).
0
-
Previously named (still an alias).
host_name-slow.log
-
Previously named (still an alias).
10.000000
-
Previously named (still an alias).
ON
OFF
MariaDB logs slow slave statements to the by default.
empty
-
Controls information to be added to the . See also .
log_statements_unsafe_for_binlog
-
ON
MySQL setting for controlling whether binlog warnings are written to the error log.
log_syslog*
platform-dependent
-
MySQL variables with settings for writing to syslog.
24576
-
Size in bytes of the transaction coordinator log, defined in multiples of 4096.
log_throttle_queries_not_using_indexes
-
0
MySQL-only variable for limiting the number of statements without indexes written to the slow query log.
log_timestamps
-
UTC
MySQL-only variable controlling the timezone for certain logging conditions.
2
-
MySQL 8 has replaced with log_error_verbosity.
mandatory_roles
-
(empty)
MySQL variable for assigning to all users.
master_info_repository
-
TABLE
Whether slave logs master status and connection info to a table or a file.
16M
64M
64
1024
Specifies the maximum number of messages stored for display by and statements.
max_execution_time
-
0
MySQL renamed the max_statement_time variable.
64
1024
Used to decide which algorithm to choose when sorting rows. If the total size of the column data, not including columns that are part of the sort, is less than max_length_for_sort_data, then these are added to the sort key. This can speed up the sort as there's no need to re-read the same row again later. Setting the value too high can slow things down as there will be a higher disk activity for doing the sort.
4294967295
-
Maximum number of failed connections attempts before no more are permitted.
max_points_in_geometry
-
65536
Maximum points_per_circle for MySQL's ST_Buffer_Strategy() function.
4294967295
-
Maximum number of iterations when executing recursive queries.
1073741824
0
Can be set by session in MariaDB.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
The most key seeks required when searching with an index, regardless of the actual index cardinality. If this value is set lower than its default and maximum, indexes will tend to be preferred over table scans.
9223372036854775807
-
Amount of memory a single user session is allowed to allocate.
0
-
Maximum time in seconds that a query can execute before being aborted. MySQL used to have a variable of this name before renaming it max_execution_time.
32
-
Unused variable removed in MySQL.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
Read lock requests will be permitted for processing after this many write locks.
262144
-
Size of buffer to use when using multi-range read with range access. See .
1024
-
Block size used for index pages.
BACKUP,QUICK
OFF
MyISAM recovery mode.
134216704
8388608
Size in bytes of the buffer allocated when creating or sorting indexes on a MyISAM table.
mysql_native_password_proxy_users
-
OFF
Whether MySQL's authentication plugin supports proxy users. I
ON
Causes MariaDB to use the MySQL-5.6 low level formats for , and instead of the MariaDB 5.3+ version.
new
-
OFF
Used for backward-compatibility with MySQL 4.1, not present in MariaDB.
mysqlx+*
-
*
MySQL's X plugin related variables.
ngram_token_size
-
2
Sets the n-gram token size for MySQL's n-gram full-text parser.
offline_mode
-
OFF
MySQL settting for specifying whether the server should run in offline mode.
DEFAULT
OFF
An alias for .
Empty string
-
Used for getting MariaDB to emulate behavior from an old version of MySQL or MariaDB. See .
OFF
-
MySQL 8 is no longer compatible with the old pre-MySQL 4.1 form of password hashing.
8
-
If the optimizer needs to enumerate a join prefix of this size or larger, then it will try aggressively prune away the search space.
100
-
Controls number of record samples to check condition selectivity.
A series of flags for controlling the query optimizer. MariaDB has introduced a number of new settings.
optimizer_trace_*
-
*
MySQL has more settings for optimizer tracing.
4
-
Controls which statistics can be used by the optimizer when looking for the best query execution plan.
original_commit_timestamp
-
*
Used by MySQL 8 for .
parser_max_mem_size
-
4294967295 (32-bit) or 18446744073709547520 (64-bit)
MySQL variable for limiting memory available to the parser.
password_*
-
*
Controls reuse of previous passwords in MySQL.
OFF
ON
The is off by default in MariaDB.
Many performance schema variables are autoset in MySQL, and MySQL has a different version, with additional variables.
One less than the server maturity
-
Minimum acceptable plugin maturity.
5
-
Time in seconds between sending progress reports to the client for time-consuming statements.
(empty)
-
Enable for these source networks.
16384
8192
Size in bytes of the extra blocks allocated during query parsing and execution (after query_prealloc_size is used up).
*
-
MySQL has removed the .
24576
8192
Size in bytes of the persistent buffer for query parsing and execution, allocated on connect and freed on disconnect.
range_optimizer_max_mem_size
-
8388608
MySQL-only variable setting a limit on the range optimizer's memory usage.
rbr_exec_mode
-
STRICT
MySQL-only variable for determining the handling of certain key errors.
0
-
Permits restricting the speed at which the slave reads the binlog from the master.
regexp_*
-
*
Memory and time limits for regular expression matching operations.
relay_log_info_repository
-
TABLE
MySQL-only variable determining whether the slave's position in the relay logs is written to a file or table.
ON
-
Tells the slave to reproduce annotate_rows_events received from the master in its own binary log.
empty string
-
See .
empty string
-
See .
replicate
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
Only available as an option in MySQL.
empty string
-
See .
empty string
-
See .
result_metadata
-
FULL
Determine whether the server returns result set metadata for connections where this is optional.
8388608
-
See .
rpl_read_size
-
8192
Minimum data in bytes read from the binary and relay log files.
-
-
MariaDB includes without the need to install a plugin.
rpl_stop_slave_timeout
-
31536000
Controls the time that waits before timing out.
*
-
The S3 storage engine is only available in MariaDB.
schema_definition_cache
-
256
Limits the number of schema definition objects kept in the dictionary object cache.
ON
-
Removed in MySQL.
NO
-
MariaDB-only option permitting the restricting of direct setting of a session timestamp..
server_id_bits
-
server_id
MySQL-only variable for use in MySQL Cluster.
server_uuid
-
UUID
MySQL-only variable containing the UUID.
session_track_gtids
-
OFF
MySQL-only variables for tracking gtid changes. MariaDB and MySQL's gtid implementation is different.
sha256_password_proxy_users
-
OFF
MySQL-only variable determining whether the sha256_password plugin supports proxy users.
show_create_table_verbosity
-
OFF
Option to cause to display ROW_FORMAT in all cases.
show_old_temporals
-
OFF
MySQL-only variable for determining whether SHOW CREATE TABLE output should include comments for old format temporal columns.
OFF
-
See .
OFF
-
See .
slave_allow_batching
-
OFF
MySQL-only replication variable.
slave_checkpoint_group
-
512
MySQL-only replication variable.
slave_checkpoint_period
-
300
MySQL-only replication variable.
IDEMPOTENT
-
Modes for how replication of DDL events should be executed.
0
-
For configuring .
3600
60
MySQL reduced the timeout to 60s.
131072
-
For configuring .
0
-
Only available as an option in MySQL.
0.000000
-
MariaDB setting to abort a query that has taken more than this in seconds to run on the replica.
optimistic
-
Controls what transactions are applied in parallel when using .
0
-
For configuring .
slave_parallel_type
-
DATABASE
MySQL-only replication variable.
slave_pending_jobs_size_max
-
16777216
MySQL-only replication variable.
slave_preserve_commit_order
-
OFF
MySQL-only replication variable.
slave_rows_search_algorithms
-
INDEX_SCAN, HASH_SCAN
MySQL-only replication variable.
NO
See for a description and use-case for this setting.
1213,1205
-
When an error occurs during a transaction on the slave, replication usually halts. By default, transactions that caused a deadlock or elapsed lock wait timeout will be retried. One can add other errors to the list of errors that should be retried by adding a comma-separated list of error numbers to this variable.
0
-
Interval in seconds for the slave SQL thread to retry a failed transaction due to a deadlock, elapsed lock wait timeout or an error listed in slave_transaction_retry_errors.
2097152
262144
The default sort buffer allocated has been reduced in MySQL.
OFF
-
Adds an implicit IF EXISTS to ALTER, RENAME and DROP of TABLES, VIEWS, FUNCTIONS and PACKAGES
STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_ENGINE_SUBSTITUTION
See .
ssl_fips_mode
-
OFF
Whether FIPS mode is enabled on the server side. Deprecated in MySQL.
ON
-
See .
InnoDB
-
Alias for , removed in MySQL.
ON
-
In MariaDB, when password validation plugins are enabled, reject passwords that cannot be validated (passwords specified as a hash).
stored_program_definition_cache
-
256
Limits the number of stored program definition objects kept in the dictionary object cache.
super_read_only
-
OFF
MySQL variable for prohibiting client updates from users with the SUPER privilege.
0
1
MySQL synchronizes all actions to the binary log before they are committed.
1
-
.frm files have been removed in MySQL.
ERROR
-
MariaDB has
DEFAULT
-
MariaDB has
OFF
-
MariaDB has
400
-1 (autosized)
Number of table definitions that can be cached.
8
16
Maximum number of table cache instances.
tablespace_definition_cache
-
256
Limits the number of tablespace definition objects kept in the dictionary object cache.
0
-
Interval, in seconds, between when successive keep-alive packets are sent if no acknowledgement is received.
0
-
Number of unacknowledged probes to send before considering the connection dead and notifying the application layer.
0
-
Set the TCP_NODELAY option (disable Nagle's algorithm) on socket.
1
-
Timeout, in milliseconds, with no activity until the first TCP keep-alive packet is sent.
temptable_max_ram
-
1GB
Limits the RAM used by MySQL's TempTable storage engine.
Autosized
-1 (autosized)
MariaDB uses an .
0
-
Better precision for the data in the .
0
-
Better precision for the data in the .
60
-
See .
65536
-
See .
1
-
Windows-only. See .
3
-
See .
auto
-
See .
auto
-
See .
Number of processors
16*
See . *Only available in MySQL with a commercial plugin.
500
6*
See . *Only available in MySQL with a commercial plugin.
299008
Varies
See .
%H:%i:%s
-
Removed in MySQL.
18446744073709551615
-
Max size for data for an internal temporary on-disk MyISAM or Aria table.
16777216
-
Alias for .
transaction_allow_batching
-
OFF
Variable for enabling batching of statements within the same transaction in MySQL Cluster.
transaction_isolation
-
REPEATABLE-READ
The MariaDB equivalent is .
transaction_read_only
-
OFF
The MariaDB equivalent is .
transaction_write_set_extraction
-
OFF
Unused MySQL-only variable.
REPEATABLE-READ
-
The MySQL equivalent is transaction_isolation.
OFF
-
The MySQL equivalent is transaction_read_only.
preferably_for_queries
-
Controls the use of .
OFF
-
Whether to activate MariaDB's implementation, not available in MySQL.
version_compile_zlib
-
*
Version of the zlib library compiled in.
*
-
Version of the used malloc library.
Varies
-
Permits seeing exactly which version of the source was used for a build.
*
-
Version of the used TLS library.
windowing_high_use_precision
-
*
MySQL option allowing safety to be sacrificed for speed in calculations.
*
-
Galera cluster is only available in MariaDB.
Variable
MySQL 8.0
Notes
The following is a comparison of variables that either appear only in MariaDB 10.0 or MySQL 5.6, or have different default settings in MariaDB 10.0, and MySQL 5.6. MariaDB 10.0.12 and MySQL 5.6.20, with only default plugins enabled, were used for the comparison.
The most notable differences are that MariaDB includes, by default, the storage engine (resulting in extra memory allocation), uses , and has a different . For this reason, a default implementation of MariaDB 10.0 will use more memory than MySQL 5.6. MariaDB 10 and MySQL 5.6 also have different .
MariaDB's extra memory usage can be handled with the following rules of thumb:
If you are not using and don't plan to use :
Set to something very low (16K) as it's not used.
Set to what you think you need for handling internal tmp tables that didn't fit in memory.
Normally this is what before you had set for (at least 1M).
If you are using and not planning to use :
Set to what you think you need for handling internal tmp tables that didn't fit in memory.
If you are planning to use , you should set to something that fits a big part of your normal data + overflow temporary tables.
The large number of differences between MySQL's and MariaDB's default innodb* variables (based upon InnoDB/XtraDB differences) are not listed here. Details can be found on the page.
NONE
CRC32
Specifies the type of BINLOG_CHECKSUM_ALG for log events in the .
0
-
For use in MariaDB's .
100000
-
For use in MariaDB's .
binlog_max_flush_queue_time
-
0
MySQL 5.6-only variable specifying a timeout for reading transactions from the flush queue before continuing with group commit and syncing log to disk.
ON
-
For optimized kernel thread scheduling.
binlog_order_commits
-
ON
MySQL 5.6-only variable for determining whether transactions may be committed in parallel.
binlog_row_image
-
ON
MySQL 5.6-only variable permitting partial logging.
binlog_rows_query_log_events
-
OFF
MySQL 5.6-only variable for logging extra information in row-based logging.
binlogging_impossible_mode
-
IGNORE_ERROR
MySQL 5.6-only variable, determines what happens if a write to binlog fails.
block_encryption_mode
-
aes-128-ecb
MySQL 5.6-only variable for controlling the block encryption mode for block-based algorithms.
core_file
-
OFF
MySQL 5.6-only variable indicating whether a core file will be written in case of a crash.
15
-
The Aria storage engine is only available in MariaDB
4
-
The Aria storage engine is only available in MariaDB
50000000
-
The Aria storage engine is only available in MariaDB
10000
-
The Aria storage engine is only available in MariaDB
OFF
-
Disable system thread alarm calls, for debugging or testing
empty
-
For use with MariaDB's .
empty
-
For handling incompatibilities between MariaDB's and the old regex library.
-
InnoDB
Available from
disconnect_on_expired_password
-
ON
MySQL 5.6 permits passwords to be expired.
end_markers_in_json
-
OFF
MySQL 5.6-only variable for adding end markers to JSON output
enforce_gtid_consistency
-
OFF
MariaDB and MySQL have different .
eq_range_index_dive_limit
-
10
MySQL 5.6-only variable for tuning when the optimizer should switch from using index dives to index statistics for qualifying rows estimation.
100
-
Used for determining expensive queries for optimization.
explicit_defaults_for_timestamp
-
FALSE
MySQL 5.6-only variable for handling TIMESTAMP defaults in a standard way.
1
-
Introduced in the .
0
-
Introduced in the .
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
gtid_executed
-
empty
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
gtid_mode
-
OFF
MariaDB and MySQL have different .
gtid_next
-
AUTOMATIC
MariaDB and MySQL have different .
gtid_owned
-
empty
MariaDB and MySQL have different .
gtid_purged
-
empty
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
MariaDB's version indicates whether YaSSL or openssl was used. MySQL's is a synonym for have_ssl.
0
-
MariaDB introduced .
SINGLE_PREC_HB
-
MariaDB introduced .
128
279 (autosized)
MySQL increments the value based on the size of .
0
-
Set to 1 if you are in a transaction, and 0 if not.
*
*
The large number of differences between MySQL's and MariaDB's default innodb* variables (based upon InnoDB/XtraDB differences) are not listed here. Details can be found on the page.
131072 (128KB)
262144 (256KB)
Minimum size of the buffer used for queries that cannot use an index, and instead perform a full table scan. MariaDB's default is sufficient for most users.
2097152
-
Maximum size in bytes of the query buffer. See .
2
-
For determining the join algorithms. See
134217728
8388608
Size of the buffer for the index blocks used by MyISAM tables and shared for all threads.
0
-
The number of segments in a key cache. See .
-
empty
MariaDB and MySQL have different .
log_bin_basename
-
empty
MySQL-only variable containing the complete path to the binary log file.
log_bin_index
-
empty
MySQL-only variable containing the index file for binary log file names.
log_bin_use_v1_row_events
-
OFF
MySQL-only variable showing whether or not MySQL's version 2 binary logging format is being used.
log_slow_admin_statements
-
OFF
MySQL-only variable determining whether or not to include slow admin statements in the slow query log.
admin, filesort, filesort_on_disk, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk
-
For slow query log filtering.
1
-
Limits the number of queries logged to the .
log_slow_slave_statements
-
OFF
MySQL-only variable determining whether or not to include slow slave statements in the slow query log.
empty
-
Controls information to be added to the . See also .
log_throttle_queries_not_using_indexes
-
0
MySQL-only variable for limiting the number of statements without indexes written to the slow query log.
master_info_repository
-
FILE
MySQL-only variable determining whether the slaves log info to file or table.
1048576
4194304
Maximum size in bytes of a packet or a generated/intermediate string. Increased in MySQL 5.6.6 to 4MB.
1048576
-
Maximum size for parameter values sent with mysql_stmt_send_long_data(). Removed in MySQL 5.6.
1073741824
0
Can be set by session in MariaDB.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
The most key seeks required when searching with an index, regardless of the actual index cardinality. If this value is set lower than its default and maximum, indexes will tend to be preferred over table scans.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
Read lock requests will be permitted for processing after this many write locks.
262144
-
Size of buffer to use when using multi-range read with range access. See .
1024
-
Block size used for index pages.
DEFAULT
OFF
MyISAM recovery mode.
134216704
8388608
Size in bytes of the buffer allocated when creating or sorting indexes on a MyISAM table.
new
-
OFF
Used for backward-compatibility with MySQL 4.1, not present in MariaDB
Empty string
-
Used for getting MariaDB to emulate behavior from an old version of MySQL or MariaDB. See .
100
-
Controls number of record samples to check condition selectivity.
A series of flags for controlling the query optimizer. MariaDB has introduced a number of new settings.
optimizer_trace
-
Off by default
MySQL 5.6-only variable for optimizer tracing.
optimizer_trace_features
-
Off by default
MySQL 5.6-only variable for optimizer tracing.
optimizer_trace_limit
-
1
MySQL 5.6-only variable for optimizer tracing.
optimizer_trace_max_mem_size
-
16384
MySQL 5.6-only variable for optimizer tracing.
optimizer_trace_offset
-
-1
MySQL 5.6-only variable for optimizer tracing.
1
-
Controls which statistics can be used by the optimizer when looking for the best query execution plan.
OFF
ON
The is off by default in MariaDB.
Many performance schema variables are autoset in MySQL.
unknown
-
Minimum acceptable plugin maturity.
5
-
Time in seconds between sending progress reports to the client for time-consuming statements.
0
1048576
MySQL and MariaDB disable the query cache by default in different manners.
OFF
-
Whether to strip any comments from the query before searching to see if it exists in the .
ON
OFF
MySQL and MariaDB disable the query cache by default in different manners.
relay_log_basename
-
empty
MySQL-only variable containing the complete path to the relay log file.
relay_log_info_repository
-
FILE
MySQL-only variable determining whether the slave's position in the relay logs is written to a file or table.
OFF
-
Tells the slave to reproduce annotate_rows_events received from the master in its own binary log.
empty string
-
See .
empty string
-
See .
replicate
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
8388608
-
See .
0
-
Unused, removed in MySQL 5.6.
rpl_stop_slave_timeout
-
31536000
MySQL-only variable for controlling the time that STOP SLAVE waits before timing out.
OFF
ON
MySQL 5.6 prohibits connections from clients using the old (pre-MySQL 4.1) password format.
server_id_bits
-
server_id
MySQL-only variable for use in MySQL Cluster.
server_uuid
-
UUID
MySQL-only variable containing the UUID.
OFF
-
See .
slave_allow_batching
-
OFF
MySQL-only replication variable.
slave_checkpoint_group
-
512
MySQL-only replication variable.
slave_checkpoint_period
-
300
MySQL-only replication variable.
IDEMPOTENT
-
Modes for how replication of DDL events should be executed.
0
-
For configuring .
131072
-
For configuring .
0
-
For configuring .
slave_parallel_workers
-
0
MySQL-only replication variable.
slave_pending_jobs_size_max
-
16777216
MySQL-only replication variable.
slave_rows_search_algorithms
-
TABLE_SCAN, INDEX_SCAN
MySQL-only replication variable.
2097152
262144
The default sort buffer allocated has been reduced in MySQL.
empty
NO_ENGINE_SUBSTITUTION
MySQL 5.6 does not permit tables to be created in the default storage engine if the original is not available. See .
0
10000
MariaDB relies upon the operating system to flush the master.info file to disk.
0
10000
MariaDB relies upon the operating system to flush the relay log to disk.
0
10000
MariaDB relies upon the operating system to flush the relay-log.info file to disk.
400
-1 (autosized)
Number of table definitions that can be cached.
400
-1 (autosized)
Number of open tables for all threads. See .
-
1
Removed in MariaDB as similar results achieved in a different way.
0
-1 (autosized)
MariaDB uses an .
60
-
See .
500
-
See .
1
-
Windows-only. See .
3
-
See .
Number of processors
16*
See . *Only available in MySQL with a commercial plugin.
500
6*
See . *Only available in MySQL with a commercial plugin.
294912
196608 or 262144
See .
transaction_allow_batching
-
OFF
MySQL-only variable for enabling batching of statements within the same transaction in MySQL Cluster.
NEVER
-
Controls the use of .
OFF
-
Whether to activate MariaDB's implementation, not available in MySQL.
bundled_jemalloc
-
Version of the used malloc library.
Variable
MySQL 5.6
Notes
Variable
MySQL 5.6
Notes
*
-
The storage engine is only available in MariaDB.
-
127.0.0.1
MySQL has the value of the bind-address option as a variable.
OFF
-
Introduced in MariaDB 5.3 for replicating between MariaDB 5.3 and MySQL/MariaDB 5.1.
The following is a comparison of variables that either appear only in MariaDB 10.1 or MySQL 5.6, or have different default settings in MariaDB 10.1, and MySQL 5.6. MariaDB 10.1.13 and MySQL 5.6.27, with only default plugins enabled, were used for the comparison.
The most notable differences are that MariaDB includes, by default, the storage engine (resulting in extra memory allocation), Galera Cluster, uses , and has a different . For this reason, a default implementation of MariaDB 10.1 will use more memory than MySQL 5.6. MariaDB 10.1 and MySQL 5.6 also have different .
MariaDB's extra memory usage can be handled with the following rules of thumb:
If you are not using and don't plan to use :
Set to something very low (16K) as it's not used.
Set to what you think you need for handling internal tmp tables that didn't fit in memory.
Normally this is what before you had set for (at least 1M).
If you are using and not planning to use :
Set to what you think you need for handling internal tmp tables that didn't fit in memory.
If you are planning to use , you should set to something that fits a big part of your normal data + overflow temporary tables.
The large number of differences between MySQL's and MariaDB's default innodb* variables (based upon InnoDB/XtraDB differences) are not listed here. Details can be found on the page.
OFF
-
Introduced in for between and MySQL/.
NONE
CRC32
Specifies the type of BINLOG_CHECKSUM_ALG for log events in the .
0
-
For use in MariaDB's .
100000
-
For use in MariaDB's .
binlog_error_action
IGNORE_ERROR
MySQL-only variable for controlling what happens when the server cannot write to the binary log.
binlog_gtid_simple_recovery
-
OFF
MySQL 5.6-only GTID variable. MariaDB's implementation is different.
binlog_max_flush_queue_time
-
0
MySQL 5.6-only variable specifying a timeout for reading transactions from the flush queue before continuing with group commit and syncing log to disk.
ON
-
For optimized kernel thread scheduling.
binlog_order_commits
-
ON
MySQL 5.6-only variable for determining whether transactions may be committed in parallel.
binlog_rows_query_log_events
-
OFF
MySQL 5.6-only variable for logging extra information in row-based logging.
binlogging_impossible_mode
-
IGNORE_ERROR
MySQL 5.6-only variable, determines what happens if a write to binlog fails.
block_encryption_mode
-
aes-128-ecb
MySQL 5.6-only variable for controlling the block encryption mode for block-based algorithms.
core_file
-
OFF
MySQL 5.6-only variable indicating whether a core file will be written in case of a crash.
15
-
The Aria storage engine is only available in MariaDB.
4
-
The Aria storage engine is only available in MariaDB.
50000000
-
The Aria storage engine is only available in MariaDB.
10000
-
The Aria storage engine is only available in MariaDB.
OFF
-
Disable system thread alarm calls, for debugging or testing.
empty
-
For use with MariaDB's .
empty
-
For handling incompatibilities between MariaDB's and the old regex library.
empty
InnoDB
Default storage engine used for tables created with .
disconnect_on_expired_password
-
ON
MySQL 5.6 permits passwords to be expired.
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
end_markers_in_json
-
OFF
MySQL 5.6-only variable for adding end markers to JSON output
enforce_gtid_consistency
-
OFF
MariaDB and MySQL have different .
none
Forces the use of a particular storage engine for new tables.
eq_range_index_dive_limit
-
10
MySQL 5.6-only variable for tuning when the optimizer should switch from using index dives to index statistics for qualifying rows estimation.
100
-
Used for determining expensive queries for optimization.
1
-
Introduced in the .
0
-
Introduced in the .
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
gtid_executed
-
empty
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
gtid_mode
-
OFF
MariaDB and MySQL have different .
gtid_next
-
AUTOMATIC
MariaDB and MySQL have different .
gtid_owned
-
empty
MariaDB and MySQL have different .
gtid_purged
-
empty
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
MariaDB's version indicates whether YaSSL or openssl was used. MySQL's is a synonym for have_ssl.
0
-
MariaDB introduced .
SINGLE_PREC_HB
-
MariaDB introduced .
0
-
Set to 1 if you are in a transaction, and 0 if not.
*
*
The large number of differences between MySQL's and MariaDB's default innodb* variables (based upon InnoDB/XtraDB differences) are not listed here. Details can be found on the page.
2097152
-
Maximum size in bytes of the query buffer. See .
2
-
For determining the join algorithms. See
134217728
8388608
Size of the buffer for the index blocks used by MyISAM tables and shared for all threads.
512
-
Number of hash buckets for open and changed files.
0
-
The number of segments in a key cache. See .
-
empty
MariaDB and MySQL have different .
log_bin_index
-
empty
MySQL-only variable containing the index file for binary log file names.
log_bin_use_v1_row_events
-
OFF
MySQL-only variable showing whether or not MySQL's version 2 binary logging format is being used.
admin, filesort, filesort_on_disk, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk
-
For slow query log filtering.
1
-
Limits the number of queries logged to the .
empty
-
Controls information to be added to the . See also .
24576
-
Size in bytes of the transaction coordinator log, defined in multiples of 4096.
log_throttle_queries_not_using_indexes
-
0
MySQL-only variable for limiting the number of statements without indexes written to the slow query log.
master_info_repository
-
FILE
MySQL-only variable determining whether the slaves log info to file or table.
1048576
4194304
Maximum size in bytes of a packet or a generated/intermediate string. Increased in MySQL 5.6.6 to 4MB.
4194304
-
Maximum size for parameter values sent with mysql_stmt_send_long_data(). Removed in MySQL 5.6.
1073741824
0
Can be set by session in MariaDB.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
The most key seeks required when searching with an index, regardless of the actual index cardinality. If this value is set lower than its default and maximum, indexes will tend to be preferred over table scans.
0
-
Maximum time in seconds that a query can execute before being aborted.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
Read lock requests will be permitted for processing after this many write locks.
262144
-
Size of buffer to use when using multi-range read with range access. See .
1024
-
Block size used for index pages.
DEFAULT
OFF
MyISAM recovery mode.
134216704
8388608
Size in bytes of the buffer allocated when creating or sorting indexes on a MyISAM table.
ON
Causes MariaDB to use the MySQL-5.6 low level formats for , and instead of the + version.
new
-
OFF
Used for backward-compatibility with MySQL 4.1, not present in MariaDB
Empty string
-
Used for getting MariaDB to emulate behavior from an old version of MySQL or MariaDB. See .
100
-
Controls number of record samples to check condition selectivity.
A series of flags for controlling the query optimizer. MariaDB has introduced a number of new settings.
optimizer_trace
-
Off by default
MySQL 5.6-only variable for optimizer tracing.
optimizer_trace_features
-
Off by default
MySQL 5.6-only variable for optimizer tracing.
optimizer_trace_limit
-
1
MySQL 5.6-only variable for optimizer tracing.
optimizer_trace_max_mem_size
-
16384
MySQL 5.6-only variable for optimizer tracing.
optimizer_trace_offset
-
-1
MySQL 5.6-only variable for optimizer tracing.
1
-
Controls which statistics can be used by the optimizer when looking for the best query execution plan.
OFF
ON
The is off by default in MariaDB.
Many performance schema variables are autoset in MySQL.
unknown
-
Minimum acceptable plugin maturity.
5
-
Time in seconds between sending progress reports to the client for time-consuming statements.
16384
8192
Size in bytes of the extra blocks allocated during query parsing and execution (after query_prealloc_size is used up). The MariaDB default was increased to 16384 in 10.1.2.
OFF
-
Whether to strip any comments from the query before searching to see if it exists in the .
24576
8192
Size in bytes of the persistent buffer for query parsing and execution, allocated on connect and freed on disconnect. The MariaDB default was increased to 24576 in 10.1.2.
relay_log_info_repository
-
FILE
MySQL-only variable determining whether the slave's position in the relay logs is written to a file or table.
OFF
-
Tells the slave to reproduce annotate_rows_events received from the master in its own binary log.
empty string
-
See .
empty string
-
See .
replicate
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
8388608
-
See .
rpl_stop_slave_timeout
-
31536000
MySQL-only variable for controlling the time that STOP SLAVE waits before timing out.
OFF
ON
MySQL 5.6 prohibits connections from clients using the old (pre-MySQL 4.1) password format.
server_id_bits
-
server_id
MySQL-only variable for use in MySQL Cluster.
server_uuid
-
UUID
MySQL-only variable containing the UUID.
show_old_temporals
-
OFF
MySQL-only variable for determining whether SHOW CREATE TABLE output should include comments for old format temporal columns.
simplified_binlog_gtid_recovery
-
OFF
MySQL-only variable, deprecated shortly after it appeared.
OFF
-
See .
OFF
-
See .
slave_allow_batching
-
OFF
MySQL-only replication variable.
slave_checkpoint_group
-
512
MySQL-only replication variable.
slave_checkpoint_period
-
300
MySQL-only replication variable.
IDEMPOTENT
-
Modes for how replication of DDL events should be executed.
0
-
For configuring .
131072
-
For configuring .
conservative
-
Controls what transactions are applied in parallel when using .
0
-
For configuring .
slave_parallel_workers
-
0
MySQL-only replication variable.
slave_pending_jobs_size_max
-
16777216
MySQL-only replication variable.
slave_rows_search_algorithms
-
TABLE_SCAN, INDEX_SCAN
MySQL-only replication variable.
NO
See for a description and use-case for this setting.
2097152
262144
The default sort buffer allocated has been reduced in MySQL.
NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
NO_ENGINE_SUBSTITUTION
MariaDB does not automatically create users with . See .
ON
-
In MariaDB, when password validation plugins are enabled, reject passwords that cannot be validated (passwords specified as a hash).
400
-1 (autosized)
Number of table definitions that can be cached.
400
-1 (autosized)
Number of open tables for all threads. See .
-
1
Removed in MariaDB as similar results achieved in a different way.
0
-1 (autosized)
MariaDB uses an .
60
-
See .
1000
-
See .
1
-
Windows-only. See .
3
-
See .
Number of processors
16*
See . *Only available in MySQL with a commercial plugin.
500
6*
See . *Only available in MySQL with a commercial plugin.
295936
196608 or 262144
See .
transaction_allow_batching
-
OFF
MySQL-only variable for enabling batching of statements within the same transaction in MySQL Cluster.
NEVER
-
Controls the use of .
OFF
-
Whether to activate MariaDB's implementation, not available in MySQL.
bundled_jemalloc
-
Version of the used malloc library.
-
is only available in MariaDB.
Variable
MySQL 5.6
Notes
Variable
MySQL 5.6
Notes
*
-
The Aria storage engine is only available in MariaDB.
avoid_temporal_upgrade
-
OFF
MySQL 5.6-only variable for determining whether ALTER TABLE implicitly upgrades temporal columns.
-
127.0.0.1
MySQL has the value of the bind-address option as a variable.
The following is a comparison of variables that either appear only in MariaDB 10.1 or MySQL 5.7, or have different default settings in MariaDB 10.1, and MySQL 5.7. MariaDB 10.1.13 and MySQL 5.7.9, with only default plugins enabled, were used for the comparison.
The most notable differences are that MariaDB includes, by default, the storage engine (resulting in extra memory allocation), Galera Cluster, uses , and has a different . For this reason, a default implementation of MariaDB 10.1 will use more memory than MySQL 5.7. MariaDB 10.1 and MySQL 5.7 also have different .
MariaDB's extra memory usage can be handled with the following rules of thumb:
If you are not using and don't plan to use :
Set to something very low (16K) as it's not used.
Set to what you think you need for handling internal tmp tables that didn't fit in memory.
Normally this is what before you had set for (at least 1M).
If you are using and not planning to use :
Set to what you think you need for handling internal tmp tables that didn't fit in memory.
If you are planning to use , you should set to something that fits a big part of your normal data + overflow temporary tables.
The large number of differences between MySQL's and MariaDB's default innodb* variables (based upon InnoDB/XtraDB differences) are not listed here. Details can be found on the page.
OFF
-
Introduced in for between and MySQL/.
NONE
CRC32
Specifies the type of BINLOG_CHECKSUM_ALG for log events in the .
0
-
For use in MariaDB's .
100000
-
For use in MariaDB's .
binlog_error_action
ABORT_SERVER
MySQL-only variable for controlling what happens when the server cannot write to the binary log.
STATEMENT
ROW
MySQL 5.7 has changed the default binary log format.
binlog_group_commit_sync_delay
0
MySQL-only variable for controlling the wait time before synchronizing the binary log file to disk.
binlog_group_commit_sync_no_delay_count
0
MySQL-only variable for setting the maximum number of transactions to wait for before aborting the current binlog_group_commit_sync_delay delay.
binlog_gtid_simple_recovery
-
ON
MySQL-only GTID variable. MariaDB's implementation is different.
binlog_max_flush_queue_time
-
0
MySQL-only variable specifying a timeout for reading transactions from the flush queue before continuing with group commit and syncing log to disk.
ON
-
For optimized kernel thread scheduling.
binlog_order_commits
-
ON
MySQL-only variable for determining whether transactions may be committed in parallel.
binlog_rows_query_log_events
-
OFF
MySQL-only variable for logging extra information in row-based logging.
block_encryption_mode
-
aes-128-ecb
MySQL-only variable for controlling the block encryption mode for block-based algorithms.
check_proxy_users
OFF
MySQL-only variable for controlling whether the server performs proxy user mapping for authentication plugins.
core_file
-
OFF
MySQL-only variable indicating whether a core file will be written in case of a crash.
15
-
The Aria storage engine is only available in MariaDB.
4
-
The Aria storage engine is only available in MariaDB.
50000000
-
The Aria storage engine is only available in MariaDB.
10000
-
The Aria storage engine is only available in MariaDB.
OFF
-
Disable system thread alarm calls, for debugging or testing.
default_authentication_plugin
mysql_native_password
MySQL's default authentication plugin.
empty
-
For use with MariaDB's .
default_password_lifetime
360
MySQL-only variable determining how long passwords are valid for before expiring.
empty
-
For handling incompatibilities between MariaDB's and the old regex library.
empty
InnoDB
Default storage engine used for tables created with .
disabled_storage_engines
empty
MySQL-only variable for disabling specific storage engines.
disconnect_on_expired_password
-
ON
MySQL permits passwords to be expired.
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
end_markers_in_json
-
OFF
MySQL-only variable for adding end markers to JSON output.
enforce_gtid_consistency
-
OFF
MariaDB and MySQL have different .
none
Forces the use of a particular storage engine for new tables.
eq_range_index_dive_limit
-
200
MySQL-only variable for tuning when the optimizer should switch from using index dives to index statistics for qualifying rows estimation.
100
-
Used for determining expensive queries for optimization.
1
-
Introduced in the .
0
-
Introduced in the .
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
gtid_executed
-
empty
MariaDB and MySQL have different .
gtid_executed_compression_period
-
1000
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
gtid_mode
-
OFF
MariaDB and MySQL have different .
gtid_next
-
AUTOMATIC
MariaDB and MySQL have different .
gtid_owned
-
empty
MariaDB and MySQL have different .
gtid_purged
-
empty
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
MariaDB's version indicates whether YaSSL or openssl was used. MySQL's is a synonym for have_ssl.
have_statement_timeout
-
MySQL's statement execution timeout feature is available.
0
-
MariaDB introduced .
SINGLE_PREC_HB
-
MariaDB introduced .
0
-
Set to 1 if you are in a transaction, and 0 if not.
*
*
The large number of differences between MySQL's and MariaDB's default innodb* variables (based upon InnoDB/XtraDB differences) are not listed here. Details can be found on the page.
internal_tmp_disk_storage_engine
-
INNODB
MySQL uses this variable to set the storage engine for on-disk internal temporary tables.
2097152
-
Maximum size in bytes of the query buffer. See .
2
-
For determining the join algorithms. See .
134217728
8388608
Size of the buffer for the index blocks used by MyISAM tables and shared for all threads.
512
-
Number of hash buckets for open and changed files.
0
-
The number of segments in a key cache. See .
-
empty
MariaDB and MySQL have different .
log_bin_use_v1_row_events
-
OFF
MySQL-only variable showing whether or not MySQL's version 2 binary logging format is being used.
log_builtin_as_identified_by_password
-
OFF
MySQL variable for use with binary logging of user-management statements,
log_error_verbosity
-
3
MySQL variable for setting verbosity of error, warning, and note messages in the error log.
admin, filesort, filesort_on_disk, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk
-
For slow query log filtering.
1
-
Limits the number of queries logged to the .
empty
-
Controls information to be added to the . See also .
log_syslog*
platform-dependent
-
MySQL variables with settings for writing to syslog.
24576
-
Size in bytes of the transaction coordinator log, defined in multiples of 4096.
log_throttle_queries_not_using_indexes
-
0
MySQL-only variable for limiting the number of statements without indexes written to the slow query log.
log_timestamps
-
UTC
MySQL-only variable controlling the timezone for certain logging conditions.
1
2
MySQL's version is deprecated and has a new default.
master_info_repository
-
FILE
MySQL-only variable determining whether the slaves log info to file or table.
max_execution_time
-
0
MySQL renamed the max_statement_time variable.
4194304
-
Maximum size for parameter values sent with mysql_stmt_send_long_data(). Removed in MySQL 5.6.
max_points_in_geometry
-
65536
Maximum points_per_circle for MySQL's ST_Buffer_Strategy() function.
1073741824
0
Can be set by session in MariaDB.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
The most key seeks required when searching with an index, regardless of the actual index cardinality. If this value is set lower than its default and maximum, indexes will tend to be preferred over table scans.
0
-
Maximum time in seconds that a query can execute before being aborted. MySQL used to have a variable of this name before renaming it max_execution_time.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
Read lock requests will be permitted for processing after this many write locks.
262144
-
Size of buffer to use when using multi-range read with range access. See .
1024
-
Block size used for index pages.
DEFAULT
OFF
MyISAM recovery mode.
134216704
8388608
Size in bytes of the buffer allocated when creating or sorting indexes on a MyISAM table.
ON
Causes MariaDB to use the MySQL-5.6 low level formats for , and instead of the + version.
mysql_native_password_proxy_users
-
OFF
Whether MySQL's authentication plugin supports proxy users. I
new
-
OFF
Used for backward-compatibility with MySQL 4.1, not present in MariaDB.
ngram_token_size
-
2
Sets the n-gram token size for MySQL's n-gram full-text parser.
offline_mode
-
OFF
MySQL settting for specifying whether the server should run in offline mode.
Empty string
-
Used for getting MariaDB to emulate behavior from an old version of MySQL or MariaDB. See .
100
-
Controls number of record samples to check condition selectivity.
A series of flags for controlling the query optimizer. MariaDB has introduced a number of new settings.
optimizer_trace
-
Off by default
MySQL-only variable for optimizer tracing.
optimizer_trace_features
-
Off by default
MySQL-only variable for optimizer tracing.
optimizer_trace_limit
-
1
MySQL-only variable for optimizer tracing.
optimizer_trace_max_mem_size
-
16384
MySQL-only variable for optimizer tracing.
optimizer_trace_offset
-
-1
MySQL-only variable for optimizer tracing.
1
-
Controls which statistics can be used by the optimizer when looking for the best query execution plan.
OFF
ON
The is off by default in MariaDB.
Many performance schema variables are autoset in MySQL.
unknown
-
Minimum acceptable plugin maturity.
5
-
Time in seconds between sending progress reports to the client for time-consuming statements.
16384
8192
Size in bytes of the extra blocks allocated during query parsing and execution (after query_prealloc_size is used up). The MariaDB default was increased to 16384 in 10.1.2.
OFF
-
Whether to strip any comments from the query before searching to see if it exists in the .
24576
8192
Size in bytes of the persistent buffer for query parsing and execution, allocated on connect and freed on disconnect. The MariaDB default was increased to 24576 in 10.1.2.
range_optimizer_max_mem_size
-
1536000
MySQL-only variable setting a limit on the range optimizer's memory usage.
rbr_exec_mode
-
STRICT
MySQL-only variable for determining the handling of certain key errors.
relay_log_info_repository
-
FILE
MySQL-only variable determining whether the slave's position in the relay logs is written to a file or table.
OFF
-
Tells the slave to reproduce annotate_rows_events received from the master in its own binary log.
empty string
-
See .
empty string
-
See .
replicate
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
require_secure_transport
-
OFF
MySQL-only variable determining whether client to server connections need to be secure.
8388608
-
See .
rpl_stop_slave_timeout
-
31536000
MySQL-only variable for controlling the time that STOP SLAVE waits before timing out.
server_id_bits
-
server_id
MySQL-only variable for use in MySQL Cluster.
server_uuid
-
UUID
MySQL-only variable containing the UUID.
session_track_*
-
*
MySQL-only variables for tracking changes within a session.
sha256_password_proxy_users
-
OFF
MySQL-only variable determining whether the sha256_password plugin supports proxy users.
show_compatibility_56
-
OFF
MySQL variable for indicating status of certain compatibility traits between MySQL 5.6 and MySQL 5.7.
show_old_temporals
-
OFF
MySQL-only variable for determining whether SHOW CREATE TABLE output should include comments for old format temporal columns.
OFF
-
See .
OFF
-
See .
slave_allow_batching
-
OFF
MySQL-only replication variable.
slave_checkpoint_group
-
512
MySQL-only replication variable.
slave_checkpoint_period
-
300
MySQL-only replication variable.
IDEMPOTENT
-
Modes for how replication of DDL events should be executed.
0
-
For configuring .
3600
60
MySQL 5.7 has reduced the timeout to 60s.
131072
-
For configuring .
conservative
-
Controls what transactions are applied in parallel when using .
0
-
For configuring .
slave_parallel_type
-
DATABASE
MySQL-only replication variable.
slave_parallel_workers
-
0
MySQL-only replication variable.
slave_pending_jobs_size_max
-
16777216
MySQL-only replication variable.
slave_preserve_commit_order
-
OFF
MySQL-only replication variable.
slave_rows_search_algorithms
-
TABLE_SCAN, INDEX_SCAN
MySQL-only replication variable.
NO
See for a description and use-case for this setting.
2097152
262144
The default sort buffer allocated has been reduced in MySQL.
NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
See .
InnoDB
-
Alias for , removed in MySQL.
ON
-
In MariaDB, when password validation plugins are enabled, reject passwords that cannot be validated (passwords specified as a hash).
super_read_only
-
OFF
MySQL variable for prohibiting client updates from users with the SUPER privilege.
0
1
MySQL 5.7 synchronizes all actions to the binary log before they are committed.
400
-1 (autosized)
Number of table definitions that can be cached.
2000
-1 (autosized)
Number of open tables for all threads. See .
-
16
Removed in MariaDB as similar results achieved in a different way.
0
-1 (autosized)
MariaDB uses an .
10
-
Removed in MySQL 5.7.
60
-
See .
1000
-
See .
1
-
Windows-only. See .
3
-
See .
Number of processors
16*
See . *Only available in MySQL with a commercial plugin.
500
6*
See . *Only available in MySQL with a commercial plugin.
295936
196608 or 262144
See .
OFF
-
Removed in MySQL 5.7.
tls_version
-
Varies
MySQL-only variable showing the permitted tls protocols.
transaction_allow_batching
-
OFF
MySQL-only variable for enabling batching of statements within the same transaction in MySQL Cluster.
transaction_write_set_extraction
-
OFF
Unused MySQL-only variable.
NEVER
-
Controls the use of .
OFF
-
Whether to activate MariaDB's implementation, not available in MySQL.
*
-
Version of the used malloc library.
*
-
Version of the used TLS library.
*
-
is only available in MariaDB.
Variable
MySQL 5.7
Notes
Variable
MySQL 5.7
Notes
*
-
The Aria storage engine is only available in MariaDB.
avoid_temporal_upgrade
-
OFF
MySQL-only variable for determining whether ALTER TABLE implicitly upgrades temporal columns.
-
127.0.0.1
MySQL has the value of the bind-address option as a variable.
The following is a comparison of variables that either appear only in MariaDB 10.2 or MySQL 5.6, or have different default settings in MariaDB 10.2, and MySQL 5.6. MariaDB 10.2.19 and MySQL 5.6.27, with only default plugins enabled, were used for the comparison.
The most notable differences are that MariaDB includes, by default, the storage engine (resulting in extra memory allocation), Galera Cluster and has a different . For this reason, a default implementation of MariaDB 10.2 will use more memory than MySQL 5.6. MariaDB 10.2 and MySQL 5.6 also have different .
MariaDB's extra memory usage can be handled with the following rules of thumb:
If you are not using and don't plan to use :
Set to something very low (16K) as it's not used.
Set to what you think you need for handling internal tmp tables that didn't fit in memory.
Normally this is what before you had set for (at least 1M).
If you are using and not planning to use :
Set to what you think you need for handling internal tmp tables that didn't fit in memory.
If you are planning to use , you should set to something that fits a big part of your normal data + overflow temporary tables.
The following is a comparison of variables that either appear only in or MySQL 5.7, or have different default settings in , and MySQL 5.7. and MySQL 5.7.13, with only default plugins enabled, were used for the comparison.
The most notable differences are that MariaDB includes, by default, the storage engine (resulting in extra memory allocation), , and has a different . For this reason, a default implementation of will use more memory than MySQL 5.7. and MySQL 5.7 also have different .
MariaDB's extra memory usage can be handled with the following rules of thumb:
If you are not using and don't plan to use :
OFF
-
Introduced in for between and MySQL/.
NONE
CRC32
Specifies the type of BINLOG_CHECKSUM_ALG for log events in the .
0
-
For use in MariaDB's .
100000
-
For use in MariaDB's .
binlog_error_action
IGNORE_ERROR
MySQL-only variable for controlling what happens when the server cannot write to the binary log.
binlog_gtid_simple_recovery
-
OFF
MySQL 5.6-only GTID variable. MariaDB's implementation is different.
binlog_max_flush_queue_time
-
0
MySQL 5.6-only variable specifying a timeout for reading transactions from the flush queue before continuing with group commit and syncing log to disk.
ON
-
For optimized kernel thread scheduling.
binlog_order_commits
-
ON
MySQL 5.6-only variable for determining whether transactions may be committed in parallel.
binlog_rows_query_log_events
-
OFF
MySQL 5.6-only variable for logging extra information in row-based logging.
binlogging_impossible_mode
-
IGNORE_ERROR
MySQL 5.6-only variable, determines what happens if a write to binlog fails.
block_encryption_mode
-
aes-128-ecb
MySQL 5.6-only variable for controlling the block encryption mode for block-based algorithms.
15
-
The Aria storage engine is only available in MariaDB.
4
-
The Aria storage engine is only available in MariaDB.
50000000
-
The Aria storage engine is only available in MariaDB.
10000
-
The Aria storage engine is only available in MariaDB.
OFF
-
Disable system thread alarm calls, for debugging or testing.
empty
-
For use with MariaDB's .
empty
-
For handling incompatibilities between MariaDB's and the old regex library.
empty
InnoDB
Default storage engine used for tables created with .
disconnect_on_expired_password
-
ON
MySQL 5.6 permits passwords to be expired.
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
end_markers_in_json
-
OFF
MySQL 5.6-only variable for adding end markers to JSON output
enforce_gtid_consistency
-
OFF
MariaDB and MySQL have different .
none
Forces the use of a particular storage engine for new tables.
0
10
Variable for tuning when the optimizer should switch from using index dives to index statistics for qualifying rows estimation.
100
-
Used for determining expensive queries for optimization.
1
-
Introduced in the .
0
-
Introduced in the .
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
gtid_executed
-
empty
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
gtid_mode
-
OFF
MariaDB and MySQL have different .
gtid_next
-
AUTOMATIC
MariaDB and MySQL have different .
gtid_owned
-
empty
MariaDB and MySQL have different .
gtid_purged
-
empty
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
MariaDB's version indicates whether YaSSL or openssl was used. MySQL's is a synonym for have_ssl.
0
-
MariaDB introduced .
SINGLE_PREC_HB
-
MariaDB introduced .
0
-
Set to 1 if you are in a transaction, and 0 if not.
*
*
The list of differences between and MySQL 5.6 Innodb variables is currently incomplete.
ON
-
Whether redo logging should be reduced when natively creating indexes or rebuilding tables
ON
-
Use a backup-safe implementation and crash-safe rename operations inside InnoDB.
2097152
-
Maximum size in bytes of the query buffer. See ..
2
-
For determining the join algorithms. See .
134217728
8388608
Size of the buffer for the index blocks used by MyISAM tables and shared for all threads.
512
-
Number of hash buckets for open and changed files.
0
-
The number of segments in a key cache. See .
-
empty
MariaDB and MySQL have different .
OFF
-
MariaDB setting for whether or not the can be compressed.
256
-
Minimum length of sql statement (in statement mode) or record (in row mode) that can be compressed. See .
log_bin_index
-
empty
MySQL-only variable containing the index file for binary log file names.
log_bin_use_v1_row_events
-
OFF
MySQL-only variable showing whether or not MySQL's version 2 binary logging format is being used.
admin, filesort, filesort_on_disk, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk
-
For slow query log filtering.
1
-
Limits the number of queries logged to the .
empty
-
Controls information to be added to the . See also .
24576
-
Size in bytes of the transaction coordinator log, defined in multiples of 4096.
log_throttle_queries_not_using_indexes
-
0
MySQL-only variable for limiting the number of statements without indexes written to the slow query log.
master_info_repository
-
FILE
MySQL-only variable determining whether the slaves log info to file or table.
1048576
4194304
Maximum size in bytes of a packet or a generated/intermediate string. Increased in MySQL 5.6.6 to 4MB.
4194304
-
Maximum size for parameter values sent with mysql_stmt_send_long_data(). Removed in MySQL 5.6.
4294967295
-
Maximum number of iterations when executing recursive queries.
1073741824
0
Can be set by session in MariaDB.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
The most key seeks required when searching with an index, regardless of the actual index cardinality. If this value is set lower than its default and maximum, indexes will tend to be preferred over table scans.
0
-
Maximum time in seconds that a query can execute before being aborted.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
Read lock requests will be permitted for processing after this many write locks.
262144
-
Size of buffer to use when using multi-range read with range access. See .
1024
-
Block size used for index pages.
DEFAULT
OFF
MyISAM recovery mode.
134216704
8388608
Size in bytes of the buffer allocated when creating or sorting indexes on a MyISAM table.
ON
Causes MariaDB to use the MySQL-5.6 low level formats for , and instead of the + version.
new
-
OFF
Used for backward-compatibility with MySQL 4.1, not present in MariaDB
Empty string
-
Used for getting MariaDB to emulate behavior from an old version of MySQL or MariaDB. See .
100
-
Controls number of record samples to check condition selectivity.
A series of flags for controlling the query optimizer. MariaDB has introduced a number of new settings.
optimizer_trace
-
Off by default
MySQL 5.6-only variable for optimizer tracing.
optimizer_trace_features
-
Off by default
MySQL 5.6-only variable for optimizer tracing.
optimizer_trace_limit
-
1
MySQL 5.6-only variable for optimizer tracing.
optimizer_trace_max_mem_size
-
16384
MySQL 5.6-only variable for optimizer tracing.
optimizer_trace_offset
-
-1
MySQL 5.6-only variable for optimizer tracing.
1
-
Controls which statistics can be used by the optimizer when looking for the best query execution plan.
OFF
ON
The is off by default in MariaDB.
Many performance schema variables are autoset in MySQL.
unknown
-
Minimum acceptable plugin maturity.
5
-
Time in seconds between sending progress reports to the client for time-consuming statements.
16384
8192
Size in bytes of the extra blocks allocated during query parsing and execution (after query_prealloc_size is used up). The MariaDB default was increased to 16384 in 10.1.2.
OFF
-
Whether to strip any comments from the query before searching to see if it exists in the .
24576
8192
Size in bytes of the persistent buffer for query parsing and execution, allocated on connect and freed on disconnect. The MariaDB default was increased to 24576 in 10.1.2.
relay_log_info_repository
-
FILE
MySQL-only variable determining whether the slave's position in the relay logs is written to a file or table.
OFF
-
Tells the slave to reproduce annotate_rows_events received from the master in its own binary log.
empty string
-
See .
empty string
-
See .
replicate
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
8388608
-
See .
rpl_stop_slave_timeout
-
31536000
MySQL-only variable for controlling the time that STOP SLAVE waits before timing out.
OFF
ON
MySQL 5.6 prohibits connections from clients using the old (pre-MySQL 4.1) password format.
server_id_bits
-
server_id
MySQL-only variable for use in MySQL Cluster.
server_uuid
-
UUID
MySQL-only variable containing the UUID.
ON
-
Whether to track changes to the default schema within the current session.
OFF
-
Whether to track changes to the session state.
(empty)
-
Comma-separated list of session system variables for which to track changes.
OFF
-
Whether to track changes to the transaction attributes.
show_old_temporals
-
OFF
MySQL-only variable for determining whether SHOW CREATE TABLE output should include comments for old format temporal columns.
simplified_binlog_gtid_recovery
-
OFF
MySQL-only variable, deprecated shortly after it appeared.
OFF
-
See .
OFF
-
See .
slave_allow_batching
-
OFF
MySQL-only replication variable.
slave_checkpoint_group
-
512
MySQL-only replication variable.
slave_checkpoint_period
-
300
MySQL-only replication variable.
0
-
Permits restricting the speed at which the slave reads the binlog from the master.
IDEMPOTENT
-
Modes for how replication of DDL events should be executed.
0
-
For configuring .
131072
-
For configuring .
conservative
-
Controls what transactions are applied in parallel when using .
0
-
For configuring .
slave_pending_jobs_size_max
-
16777216
MySQL-only replication variable.
slave_rows_search_algorithms
-
TABLE_SCAN, INDEX_SCAN
MySQL-only replication variable.
NO
See for a description and use-case for this setting.
2097152
262144
The default sort buffer allocated has been reduced in MySQL.
NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
NO_ENGINE_SUBSTITUTION
MariaDB does not automatically create users with . See .
ON
-
In MariaDB, when password validation plugins are enabled, reject passwords that cannot be validated (passwords specified as a hash).
400
-1 (autosized)
Number of table definitions that can be cached.
400
-1 (autosized)
Number of open tables for all threads. See .
8
1
Maximum number of table cache instances in MariaDB. This is different to the MySQL version which specifies the number of table cache instances.
0
-1 (autosized)
MariaDB uses an .
60
-
See .
1000
-
See .
1
-
Windows-only. See .
3
-
See .
auto
-
See .
auto
-
See .
Number of processors
16*
See . *Only available in MySQL with a commercial plugin.
500
6*
See . *Only available in MySQL with a commercial plugin.
295936
196608 or 262144
See .
18446744073709551615
-
Max size for data for an internal temporary on-disk MyISAM or Aria table.
16777216
-
Alias for .
transaction_allow_batching
-
OFF
MySQL-only variable for enabling batching of statements within the same transaction in MySQL Cluster.
NEVER
-
Controls the use of .
OFF
-
Whether to activate MariaDB's implementation, not available in MySQL.
bundled_jemalloc
-
Version of the used malloc library.
-
is only available in MariaDB.
Variable
MySQL 5.6
Notes
Variable
MySQL 5.6
Notes
*
-
The Aria storage engine is only available in MariaDB.
avoid_temporal_upgrade
-
OFF
MySQL 5.6-only variable for determining whether ALTER TABLE implicitly upgrades temporal columns.
-
127.0.0.1
MySQL has the value of the bind-address option as a variable.
Set to something very low (16K) as it's not used.
Set to what you think you need for handling internal tmp tables that didn't fit in memory.
Normally this is what before you had set for (at least 1M).
If you are using and not planning to use :
Set to what you think you need for handling internal tmp tables that didn't fit in memory.
If you are planning to use , you should set to something that fits a big part of your normal data + overflow temporary tables.
Variable
MySQL 5.7
Notes
*
-
The Aria storage engine is only available in MariaDB.
avoid_temporal_upgrade
-
OFF
MySQL-only variable for determining whether ALTER TABLE implicitly upgrades temporal columns.
-
127.0.0.1
MySQL has the value of the bind-address option as a variable.
ON
-
Introduced in MariaDB 5.3 for replicating between MariaDB 5.3 and MySQL/MariaDB 5.1.
0
-
For use in MariaDB's .
100000
-
For use in MariaDB's .
binlog_error_action
ABORT_SERVER
MySQL-only variable for controlling what happens when the server cannot write to the binary log.
MIXED
ROW
MariaDB and MySQL have differing .
binlog_group_commit_sync_delay
0
MySQL-only variable for controlling the wait time before synchronizing the binary log file to disk.
binlog_group_commit_sync_no_delay_count
0
MySQL-only variable for setting the maximum number of transactions to wait for before aborting the current binlog_group_commit_sync_delay delay.
binlog_gtid_simple_recovery
-
ON
MySQL-only GTID variable. MariaDB's implementation is different.
binlog_max_flush_queue_time
-
0
MySQL-only variable specifying a timeout for reading transactions from the flush queue before continuing with group commit and syncing log to disk.
ON
-
For optimized kernel thread scheduling.
binlog_order_commits
-
ON
MySQL-only variable for determining whether transactions may be committed in parallel.
binlog_rows_query_log_events
-
OFF
MySQL-only variable for logging extra information in row-based logging.
block_encryption_mode
-
aes-128-ecb
MySQL-only variable for controlling the block encryption mode for block-based algorithms.
ON
-
Permits disabling constraint checks, for example when loading a table that violates some constraints that you plan to fix later.
check_proxy_users
OFF
MySQL-only variable for controlling whether the server performs proxy user mapping for authentication plugins.
15
-
The Aria storage engine is only available in MariaDB.
4
-
The Aria storage engine is only available in MariaDB.
50000000
-
The Aria storage engine is only available in MariaDB.
10000
-
The Aria storage engine is only available in MariaDB.
OFF
-
Disable system thread alarm calls, for debugging or testing.
default_authentication_plugin
mysql_native_password
MySQL's default authentication plugin.
empty
-
For use with MariaDB's .
default_password_lifetime
0
MySQL-only variable determining how long passwords are valid for before expiring.
empty
-
For handling incompatibilities between MariaDB's and the old regex library.
empty
InnoDB
Default storage engine used for tables created with .
disabled_storage_engines
empty
MySQL-only variable for disabling specific storage engines.
disconnect_on_expired_password
-
ON
MySQL permits passwords to be expired.
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
end_markers_in_json
-
OFF
MySQL-only variable for adding end markers to JSON output.
enforce_gtid_consistency
-
OFF
MariaDB and MySQL have different .
none
Forces the use of a particular storage engine for new tables.
0
200
For tuning when the optimizer should switch from using index dives to index statistics for qualifying rows estimation.
100
-
Used for determining expensive queries for optimization.
1
-
Introduced in the .
0
-
Introduced in the .
1048576
1024
MariaDB increases the maximum length for a result from 1K to 1M.
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
gtid_executed
-
empty
MariaDB and MySQL have different .
gtid_executed_compression_period
-
1000
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
gtid_mode
-
OFF
MariaDB and MySQL have different .
gtid_next
-
AUTOMATIC
MariaDB and MySQL have different .
gtid_owned
-
empty
MariaDB and MySQL have different .
gtid_purged
-
empty
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
MariaDB's version indicates whether YaSSL or openssl was used. MySQL's is a synonym for have_ssl.
have_statement_timeout
-
MySQL's statement execution timeout feature is available.
0
-
MariaDB introduced .
SINGLE_PREC_HB
-
MariaDB introduced .
0
-
Set to 1 if you are in a transaction, and 0 if not.
*
*
The list of differences between MariaDB 10.2 and MySQL 5.7 Innodb variables is currently incomplete.
ON
-
Whether redo logging should be reduced when natively creating indexes or rebuilding tables
ON
-
Use a backup-safe implementation and crash-safe rename operations inside InnoDB.
internal_tmp_disk_storage_engine
-
INNODB
MySQL uses this variable to set the storage engine for on-disk internal temporary tables. In MariaDB, the storage engine for on-disk internal temporary tables is not configurable at run-time. Instead, it is set at compile time, and the two options are Aria or MyISAM. If Aria is used, then the value of the system variable will be ON.
2097152
-
Maximum size in bytes of the query buffer. See block-based join algorithms.
2
-
For determining the join algorithms. See block-based join algorithms
134217728
8388608
Size of the buffer for the index blocks used by MyISAM tables and shared for all threads.
512
-
Number of hash buckets for open and changed files.
0
-
The number of segments in a key cache. See .
-
empty
MariaDB and MySQL have different .
86400
31536000
MariaDB has reduced the timeout for acquiring metadata locks.
OFF
-
MariaDB setting for whether or not the can be compressed.
256
-
Minimum length of sql statement (in statement mode) or record (in row mode) that can be compressed. See .
log_bin_use_v1_row_events
-
OFF
MySQL-only variable showing whether or not MySQL's version 2 binary logging format is being used.
log_builtin_as_identified_by_password
-
OFF
MySQL variable for use with binary logging of user-management statements,
log_error_verbosity
-
3
MySQL variable for setting verbosity of error, warning, and note messages in the error log.
ON
OFF
MariaDB logs slow admin statements to the by default.
admin, filesort, filesort_on_disk, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk
-
For slow query log filtering.
1
-
Limits the number of queries logged to the .
ON
OFF
MariaDB logs slow slave statements to the by default.
empty
-
Controls information to be added to the . See also .
log_statements_unsafe_for_binlog
-
ON
MySQL setting for controlling whether binlog warnings are written to the error log.
log_syslog*
platform-dependent
-
MySQL variables with settings for writing to syslog.
24576
-
Size in bytes of the transaction coordinator log, defined in multiples of 4096.
log_throttle_queries_not_using_indexes
-
0
MySQL-only variable for limiting the number of statements without indexes written to the slow query log.
log_timestamps
-
UTC
MySQL-only variable controlling the timezone for certain logging conditions.
master_info_repository
-
FILE
MySQL-only variable determining whether the slaves log info to file or table.
16M
4M
max_execution_time
-
0
MySQL renamed the max_statement_time variable.
16777216
-
Maximum size for parameter values sent with mysql_stmt_send_long_data(). Removed in MySQL 5.6.
max_points_in_geometry
-
65536
Maximum points_per_circle for MySQL's ST_Buffer_Strategy() function.
9223372036854775807
-
Amount of memory a single user session is allowed to allocate.
4294967295
-
Maximum number of iterations when executing recursive queries.
1073741824
0
Can be set by session in MariaDB.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
The most key seeks required when searching with an index, regardless of the actual index cardinality. If this value is set lower than its default and maximum, indexes will tend to be preferred over table scans.
0
-
Maximum time in seconds that a query can execute before being aborted. MySQL used to have a variable of this name before renaming it max_execution_time.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
Read lock requests will be permitted for processing after this many write locks.
262144
-
Size of buffer to use when using multi-range read with range access. See .
1024
-
Block size used for index pages.
BACKUP,QUICK
OFF
MyISAM recovery mode.
134216704
8388608
Size in bytes of the buffer allocated when creating or sorting indexes on a MyISAM table.
ON
Causes MariaDB to use the MySQL-5.6 low level formats for , and instead of the MariaDB 5.3+ version.
mysql_native_password_proxy_users
-
OFF
Whether MySQL's authentication plugin supports proxy users. I
new
-
OFF
Used for backward-compatibility with MySQL 4.1, not present in MariaDB.
ngram_token_size
-
2
Sets the n-gram token size for MySQL's n-gram full-text parser.
offline_mode
-
OFF
MySQL settting for specifying whether the server should run in offline mode.
Empty string
-
Used for getting MariaDB to emulate behavior from an old version of MySQL or MariaDB. See .
100
-
Controls number of record samples to check condition selectivity.
A series of flags for controlling the query optimizer. MariaDB has introduced a number of new settings.
optimizer_trace
-
Off by default
MySQL-only variable for optimizer tracing.
optimizer_trace_features
-
Off by default
MySQL-only variable for optimizer tracing.
optimizer_trace_limit
-
1
MySQL-only variable for optimizer tracing.
optimizer_trace_max_mem_size
-
16384
MySQL-only variable for optimizer tracing.
optimizer_trace_offset
-
-1
MySQL-only variable for optimizer tracing.
1
-
Controls which statistics can be used by the optimizer when looking for the best query execution plan.
parser_max_mem_size
-
4294967295 (32-bit) or 18446744073709547520 (64-bit)
MySQL variable for limiting memory available to the parser.
OFF
ON
The is off by default in MariaDB.
Many performance schema variables are autoset in MySQL.
unknown
-
Minimum acceptable plugin maturity.
5
-
Time in seconds between sending progress reports to the client for time-consuming statements.
16384
8192
Size in bytes of the extra blocks allocated during query parsing and execution (after query_prealloc_size is used up).
OFF
-
Whether to strip any comments from the query before searching to see if it exists in the .
24576
8192
Size in bytes of the persistent buffer for query parsing and execution, allocated on connect and freed on disconnect.
range_optimizer_max_mem_size
-
1536000
MySQL-only variable setting a limit on the range optimizer's memory usage.
rbr_exec_mode
-
STRICT
MySQL-only variable for determining the handling of certain key errors.
0
-
Permits restricting the speed at which the slave reads the binlog from the master.
relay_log_info_repository
-
FILE
MySQL-only variable determining whether the slave's position in the relay logs is written to a file or table.
ON
-
Tells the slave to reproduce annotate_rows_events received from the master in its own binary log.
empty string
-
See .
empty string
-
See .
replicate
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
require_secure_transport
-
OFF
MySQL-only variable determining whether client to server connections need to be secure.
8388608
-
See .
rpl_stop_slave_timeout
-
31536000
MySQL-only variable for controlling the time that STOP SLAVE waits before timing out.
1
0
0 is no longer valid in MariaDB.
server_id_bits
-
server_id
MySQL-only variable for use in MySQL Cluster.
server_uuid
-
UUID
MySQL-only variable containing the UUID.
session_track_gtids
-
OFF
MySQL-only variables for tracking gtid changes. MariaDB and MySQL's gtid implementation is different.
Empty
*
MySQL's version tracks a number of system variable by default.
OFF
*
For tracking changes to the transaction attributes.
sha256_password_proxy_users
-
OFF
MySQL-only variable determining whether the sha256_password plugin supports proxy users.
show_compatibility_56
-
OFF
MySQL variable for indicating status of certain compatibility traits between MySQL 5.6 and MySQL 5.7.
show_old_temporals
-
OFF
MySQL-only variable for determining whether SHOW CREATE TABLE output should include comments for old format temporal columns.
OFF
-
See .
OFF
-
See .
slave_allow_batching
-
OFF
MySQL-only replication variable.
slave_checkpoint_group
-
512
MySQL-only replication variable.
slave_checkpoint_period
-
300
MySQL-only replication variable.
IDEMPOTENT
-
Modes for how replication of DDL events should be executed.
0
-
For configuring .
3600
60
MySQL 5.7 has reduced the timeout to 60s.
131072
-
For configuring .
conservative
-
Controls what transactions are applied in parallel when using .
0
-
For configuring .
slave_parallel_type
-
DATABASE
MySQL-only replication variable.
slave_pending_jobs_size_max
-
16777216
MySQL-only replication variable.
slave_preserve_commit_order
-
OFF
MySQL-only replication variable.
slave_rows_search_algorithms
-
TABLE_SCAN, INDEX_SCAN
MySQL-only replication variable.
NO
See for a description and use-case for this setting.
2097152
262144
The default sort buffer allocated has been reduced in MySQL.
STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
See .
ON
-
See .
InnoDB
-
Alias for , removed in MySQL.
ON
-
In MariaDB, when password validation plugins are enabled, reject passwords that cannot be validated (passwords specified as a hash).
super_read_only
-
OFF
MySQL variable for prohibiting client updates from users with the SUPER privilege.
0
1
MySQL 5.7 synchronizes all actions to the binary log before they are committed.
400
-1 (autosized)
Number of table definitions that can be cached.
8
16
Maximum number of table cache instances.
Autosized
-1 (autosized)
MariaDB uses an .
10
-
Removed in MySQL 5.7.
60
-
See .
65536
-
See .
1
-
Windows-only. See .
3
-
See .
auto
-
See .
auto
-
See .
Number of processors
16*
See . *Only available in MySQL with a commercial plugin.
500
6*
See . *Only available in MySQL with a commercial plugin.
299008
196608 or 262144
See .
OFF
-
Removed in MySQL 5.7.
tls_version
-
Varies
MySQL-only variable showing the permitted tls protocols.
18446744073709551615
-
Max size for data for an internal temporary on-disk MyISAM or Aria table.
16777216
-
Alias for .
transaction_allow_batching
-
OFF
MySQL-only variable for enabling batching of statements within the same transaction in MySQL Cluster.
transaction_write_set_extraction
-
OFF
Unused MySQL-only variable.
NEVER
-
Controls the use of .
OFF
-
Whether to activate MariaDB's implementation, not available in MySQL.
*
-
Version of the used malloc library.
*
-
Version of the used TLS library.
*
-
Galera cluster is only available in MariaDB.
Variable
MySQL 5.7
Notes
The following is a comparison of variables that either appear only in or MySQL 5.7, or have different default settings in , and MySQL 5.7. and MySQL 5.7.13, with only default plugins enabled, were used for the comparison.
The most notable differences are that MariaDB includes, by default, the storage engine (resulting in extra memory allocation), , and has a different . For this reason, a default implementation of will use more memory than MySQL 5.7. and MySQL 5.7 also have different .
MariaDB's extra memory usage can be handled with the following rules of thumb:
If you are not using and don't plan to use :
Set to something very low (16K) as it's not used.
Set to what you think you need for handling internal tmp tables that didn't fit in memory.
Normally this is what before you had set for (at least 1M).
If you are using and not planning to use :
Set to what you think you need for handling internal tmp tables that didn't fit in memory.
If you are planning to use , you should set to something that fits a big part of your normal data + overflow temporary tables.
Variable
Default
MySQL 5.7 Default
Notes
DEFAULT
-
introduces new clauses to avoid slow copies in certain instances. This variable allows setting this if no ALGORITHM clause is specified. .
*
-
The Aria storage engine is only available in MariaDB.
avoid_temporal_upgrade
-
OFF
MySQL-only variable for determining whether ALTER TABLE implicitly upgrades temporal columns.
ON
-
Introduced in MariaDB 5.3 for replicating between MariaDB 5.3 and MySQL/MariaDB 5.1.
0
-
For use in MariaDB's .
100000
-
For use in MariaDB's .
binlog_error_action
ABORT_SERVER
MySQL-only variable for controlling what happens when the server cannot write to the binary log.
16184
-
For setting the size of the file cache for the .
MIXED
ROW
MariaDB and MySQL have differing .
binlog_group_commit_sync_delay
0
MySQL-only variable for controlling the wait time before synchronizing the binary log file to disk.
binlog_group_commit_sync_no_delay_count
0
MySQL-only variable for setting the maximum number of transactions to wait for before aborting the current binlog_group_commit_sync_delay delay.
binlog_gtid_simple_recovery
-
ON
MySQL-only GTID variable. MariaDB's implementation is different.
binlog_max_flush_queue_time
-
0
MySQL-only variable specifying a timeout for reading transactions from the flush queue before continuing with group commit and syncing log to disk.
ON
-
For optimized kernel thread scheduling.
binlog_order_commits
-
ON
MySQL-only variable for determining whether transactions may be committed in parallel.
binlog_rows_query_log_events
-
OFF
MySQL-only variable for logging extra information in row-based logging.
block_encryption_mode
-
aes-128-ecb
MySQL-only variable for controlling the block encryption mode for block-based algorithms.
ON
-
Permits disabling constraint checks, for example when loading a table that violates some constraints that you plan to fix later.
check_proxy_users
OFF
MySQL-only variable for controlling whether the server performs proxy user mapping for authentication plugins.
100
-
MariaDB supports .
6
-
MariaDB supports .
DEFAULT_STRATEGY
-
MariaDB supports .
OFF
-
MariaDB supports .
15
-
The Aria storage engine is only available in MariaDB.
4
-
The Aria storage engine is only available in MariaDB.
50000000
-
The Aria storage engine is only available in MariaDB.
10000
-
The Aria storage engine is only available in MariaDB.
OFF
-
Disable system thread alarm calls, for debugging or testing.
default_authentication_plugin
mysql_native_password
MySQL's default authentication plugin.
empty
-
For use with MariaDB's .
default_password_lifetime
0
MySQL-only variable determining how long passwords are valid for before expiring.
empty
-
For handling incompatibilities between MariaDB's and the old regex library.
empty
InnoDB
Default storage engine used for tables created with .
disabled_storage_engines
empty
MySQL-only variable for disabling specific storage engines.
disconnect_on_expired_password
-
ON
MySQL permits passwords to be expired.
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
end_markers_in_json
-
OFF
MySQL-only variable for adding end markers to JSON output.
enforce_gtid_consistency
-
OFF
MariaDB and MySQL have different .
none
Forces the use of a particular storage engine for new tables.
0
200
Variable for tuning when the optimizer should switch from using index dives to index statistics for qualifying rows estimation.
100
-
Used for determining expensive queries for optimization.
1
-
Introduced in the .
0
-
Introduced in the .
1048576
1024
MariaDB increases the maximum length for a result from 1K to 1M.
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
gtid_executed
-
empty
MariaDB and MySQL have different .
gtid_executed_compression_period
-
1000
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
gtid_mode
-
OFF
MariaDB and MySQL have different .
gtid_next
-
AUTOMATIC
MariaDB and MySQL have different .
gtid_owned
-
empty
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
gtid_purged
-
empty
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
MariaDB's version indicates whether YaSSL or openssl was used. MySQL's is a synonym for have_ssl.
have_statement_timeout
-
MySQL's statement execution timeout feature is available.
0
-
MariaDB introduced .
SINGLE_PREC_HB
-
MariaDB introduced .
0
-
Time in seconds that the server waits for idle read-only transactions.
0
-
Time in seconds that the server waits for idle transactions.
0
-
Time in seconds that the server waits for idle write transactions.
0
-
Set to 1 if you are in a transaction, and 0 if not.
*
*
The list of differences between MariaDB 10.3 and MySQL 5.7 Innodb variables is currently incomplete.
1
1
MariaDB has an extra mode, 3, for skipping the rollback of connected transactions.
ON
-
Whether redo logging should be reduced when natively creating indexes or rebuilding tables
internal_tmp_disk_storage_engine
-
INNODB
MySQL uses this variable to set the storage engine for on-disk internal temporary tables.
2097152
-
Maximum size in bytes of the query buffer. See block-based join algorithms..
2
-
For determining the join algorithms. See block-based join algorithms.
134217728
8388608
Size of the buffer for the index blocks used by MyISAM tables and shared for all threads.
512
-
Number of hash buckets for open and changed files.
0
-
The number of segments in a key cache. See .
-
empty
MariaDB and MySQL have different .
86400
31536000
MariaDB has reduced the timeout for acquiring metadata locks.
OFF
-
MariaDB setting for whether or not the can be compressed.
256
-
Minimum length of sql statement (in statement mode) or record (in row mode) that can be compressed. See .
log_bin_use_v1_row_events
-
OFF
MySQL-only variable showing whether or not MySQL's version 2 binary logging format is being used.
log_builtin_as_identified_by_password
-
OFF
MySQL variable for use with binary logging of user-management statements,
sp
-
Disable logging of certain statements to the .
log_error_verbosity
-
3
MySQL variable for setting verbosity of error, warning, and note messages in the error log.
ON
OFF
MariaDB logs slow admin statements to the by default.
admin, filesort, filesort_on_disk, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk
-
For slow query log filtering.
1
-
Limits the number of queries logged to the .
ON
OFF
MariaDB logs slow slave statements to the by default.
empty
-
Controls information to be added to the . See also .
log_statements_unsafe_for_binlog
-
ON
MySQL setting for controlling whether binlog warnings are written to the error log.
log_syslog*
platform-dependent
-
MySQL variables with settings for writing to syslog.
24576
-
Size in bytes of the transaction coordinator log, defined in multiples of 4096.
log_throttle_queries_not_using_indexes
-
0
MySQL-only variable for limiting the number of statements without indexes written to the slow query log.
log_timestamps
-
UTC
MySQL-only variable controlling the timezone for certain logging conditions.
master_info_repository
-
FILE
MySQL-only variable determining whether the slaves log info to file or table.
16M
4M
max_execution_time
-
0
MySQL renamed the max_statement_time variable.
16777216
-
Maximum size for parameter values sent with mysql_stmt_send_long_data(). Removed in MySQL 5.6.
max_points_in_geometry
-
65536
Maximum points_per_circle for MySQL's ST_Buffer_Strategy() function.
4294967295
-
Maximum number of iterations when executing recursive queries.
1073741824
0
Can be set by session in MariaDB.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
The most key seeks required when searching with an index, regardless of the actual index cardinality. If this value is set lower than its default and maximum, indexes will tend to be preferred over table scans.
9223372036854775807
-
Amount of memory a single user session is allowed to allocate.
0
-
Maximum time in seconds that a query can execute before being aborted. MySQL used to have a variable of this name before renaming it max_execution_time.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
Read lock requests will be permitted for processing after this many write locks.
262144
-
Size of buffer to use when using multi-range read with range access. See .
1024
-
Block size used for index pages.
BACKUP,QUICK
OFF
MyISAM recovery mode.
134216704
8388608
Size in bytes of the buffer allocated when creating or sorting indexes on a MyISAM table.
ON
Causes MariaDB to use the MySQL-5.6 low level formats for , and instead of the MariaDB 5.3+ version.
mysql_native_password_proxy_users
-
OFF
Whether MySQL's authentication plugin supports proxy users. I
new
-
OFF
Used for backward-compatibility with MySQL 4.1, not present in MariaDB.
ngram_token_size
-
2
Sets the n-gram token size for MySQL's n-gram full-text parser.
offline_mode
-
OFF
MySQL settting for specifying whether the server should run in offline mode.
Empty string
-
Used for getting MariaDB to emulate behavior from an old version of MySQL or MariaDB. See .
100
-
Controls number of record samples to check condition selectivity.
A series of flags for controlling the query optimizer. MariaDB has introduced a number of new settings.
optimizer_trace
-
Off by default
MySQL-only variable for optimizer tracing.
optimizer_trace_features
-
Off by default
MySQL-only variable for optimizer tracing.
optimizer_trace_limit
-
1
MySQL-only variable for optimizer tracing.
optimizer_trace_max_mem_size
-
16384
MySQL-only variable for optimizer tracing.
optimizer_trace_offset
-
-1
MySQL-only variable for optimizer tracing.
1
-
Controls which statistics can be used by the optimizer when looking for the best query execution plan.
parser_max_mem_size
-
4294967295 (32-bit) or 18446744073709547520 (64-bit)
MySQL variable for limiting memory available to the parser.
OFF
ON
The is off by default in MariaDB.
Many performance schema variables are autoset in MySQL.
One less than the server maturity
-
Minimum acceptable plugin maturity.
5
-
Time in seconds between sending progress reports to the client for time-consuming statements.
16384
8192
Size in bytes of the extra blocks allocated during query parsing and execution (after query_prealloc_size is used up).
OFF
-
Whether to strip any comments from the query before searching to see if it exists in the .
24576
8192
Size in bytes of the persistent buffer for query parsing and execution, allocated on connect and freed on disconnect.
range_optimizer_max_mem_size
-
1536000
MySQL-only variable setting a limit on the range optimizer's memory usage.
rbr_exec_mode
-
STRICT
MySQL-only variable for determining the handling of certain key errors.
0
-
Permits restricting the speed at which the slave reads the binlog from the master.
relay_log_info_repository
-
FILE
MySQL-only variable determining whether the slave's position in the relay logs is written to a file or table.
ON
-
Tells the slave to reproduce annotate_rows_events received from the master in its own binary log.
empty string
-
See .
empty string
-
See .
replicate
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
require_secure_transport
-
OFF
MySQL-only variable determining whether client to server connections need to be secure.
8388608
-
See .
-
-
MariaDB 10.3 includes without the need to install a plugin.
rpl_stop_slave_timeout
-
31536000
MySQL-only variable for controlling the time that STOP SLAVE waits before timing out.
NO
-
MariaDB-only option permitting the restricting of direct setting of a session timestamp..
1
0
0 is no longer valid in MariaDB.
server_id_bits
-
server_id
MySQL-only variable for use in MySQL Cluster.
server_uuid
-
UUID
MySQL-only variable containing the UUID.
session_track_gtids
-
OFF
MySQL-only variables for tracking gtid changes. MariaDB and MySQL's gtid implementation is different.
OFF
*
For tracking changes to the transaction attributes.
sha256_password_proxy_users
-
OFF
MySQL-only variable determining whether the sha256_password plugin supports proxy users.
show_compatibility_56
-
OFF
MySQL variable for indicating status of certain compatibility traits between MySQL 5.6 and MySQL 5.7.
show_old_temporals
-
OFF
MySQL-only variable for determining whether SHOW CREATE TABLE output should include comments for old format temporal columns.
OFF
-
See .
OFF
-
See .
slave_allow_batching
-
OFF
MySQL-only replication variable.
slave_checkpoint_group
-
512
MySQL-only replication variable.
slave_checkpoint_period
-
300
MySQL-only replication variable.
IDEMPOTENT
-
Modes for how replication of DDL events should be executed.
0
-
For configuring .
3600
60
MySQL 5.7 has reduced the timeout to 60s.
131072
-
For configuring .
conservative
-
Controls what transactions are applied in parallel when using .
0
-
For configuring .
slave_parallel_type
-
DATABASE
MySQL-only replication variable.
slave_pending_jobs_size_max
-
16777216
MySQL-only replication variable.
slave_preserve_commit_order
-
OFF
MySQL-only replication variable.
slave_rows_search_algorithms
-
TABLE_SCAN, INDEX_SCAN
MySQL-only replication variable.
NO
See for a description and use-case for this setting.
1213,1205
-
When an error occurs during a transaction on the slave, replication usually halts. By default, transactions that caused a deadlock or elapsed lock wait timeout will be retried. One can add other errors to the list of errors that should be retried by adding a comma-separated list of error numbers to this variable.
0
-
Interval in seconds for the slave SQL thread to retry a failed transaction due to a deadlock, elapsed lock wait timeout or an error listed in slave_transaction_retry_errors.
2097152
262144
The default sort buffer allocated has been reduced in MySQL.
STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
See .
ON
-
See .
InnoDB
-
Alias for , removed in MySQL.
ON
-
In MariaDB, when password validation plugins are enabled, reject passwords that cannot be validated (passwords specified as a hash).
super_read_only
-
OFF
MySQL variable for prohibiting client updates from users with the SUPER privilege.
0
1
MySQL 5.7 synchronizes all actions to the binary log before they are committed.
ERROR
-
MariaDB has
DEFAULT
-
MariaDB has
400
-1 (autosized)
Number of table definitions that can be cached.
8
16
Maximum number of table cache instances.
0
-
Interval, in seconds, between when successive keep-alive packets are sent if no acknowledgement is received.
0
-
Number of unacknowledged probes to send before considering the connection dead and notifying the application layer.
0
-
Timeout, in milliseconds, with no activity until the first TCP keep-alive packet is sent.
Autosized
-1 (autosized)
MariaDB uses an .
10
-
Removed in MySQL 5.7.
60
-
See .
65536
-
See .
1
-
Windows-only. See .
3
-
See .
auto
-
See .
auto
-
See .
Number of processors
16*
See . *Only available in MySQL with a commercial plugin.
500
6*
See . *Only available in MySQL with a commercial plugin.
299008
196608 or 262144
See .
OFF
-
Removed in MySQL 5.7.
tls_version
-
Varies
MySQL-only variable showing the permitted tls protocols.
18446744073709551615
-
Max size for data for an internal temporary on-disk MyISAM or Aria table.
16777216
-
Alias for .
transaction_allow_batching
-
OFF
MySQL-only variable for enabling batching of statements within the same transaction in MySQL Cluster.
transaction_write_set_extraction
-
OFF
Unused MySQL-only variable.
NEVER
-
Controls the use of .
OFF
-
Whether to activate MariaDB's implementation, not available in MySQL.
*
-
Version of the used malloc library.
Varies
-
Permits seeing exactly which version of the source was used for a build.
*
-
Version of the used TLS library.
*
-
Galera cluster is only available in MariaDB.
Variable
MySQL 5.7
Notes
The following is a comparison of variables that either appear only in MariaDB 11.1 or MySQL 8.0, or have different default settings in MariaDB 11.1, and MySQL 8.0. The releases MariaDB 11.1.2 and MySQL 8.0.34, with only default plugins enabled, were used for the comparison. Note that MySQL 8 is an 'evergreen' release, so features may be added or removed in later releases.
For a more complete list of differences, see Incompatibilities and Feature Differences Between MariaDB 11.1 and MySQL 8.0 and Function Differences Between MariaDB 11.1 and MySQL 8.0
Variable
The following is a comparison of variables that either appear only in or MySQL 8.0, or have different default settings in , and MySQL 8.0. The RC release and the stable MySQL 8.0.11, with only default plugins enabled, were used for the comparison.
For a more complete list of differences, see and
The most notable differences are that MariaDB includes, by default, the storage engine (resulting in extra memory allocation), , and has a different . For this reason, a default implementation of will use more memory than MySQL 8.0. and MySQL 8.0 also have different .
MariaDB's extra memory usage can be handled with the following rules of thumb:
If you are not using and don't plan to use :
The following is a comparison of variables that either appear only in or MySQL 8.0, or have different default settings in , and MySQL 8.0. and MySQL 8.0.11, with only default plugins enabled, were used for the comparison. Note that MySQL 8 is an 'evergreen' release, so features may be added or removed in later releases.
The most notable differences are that MariaDB includes, by default, the storage engine (resulting in extra memory allocation), , and has a different . For this reason, a default implementation of will use more memory than MySQL 8.0. and MySQL 8.0 also have different .
MariaDB's extra memory usage can be handled with the following rules of thumb:
If you are not using and don't plan to use :
Set to something very low (16K) as it's not used.
Set to what you think you need for handling internal tmp tables that didn't fit in memory.
Normally this is what before you had set for (at least 1M).
If you are using and not planning to use :
Set to what you think you need for handling internal tmp tables that didn't fit in memory.
If you are planning to use , you should set to something that fits a big part of your normal data + overflow temporary tables.
Variable
Default
MySQL 8.0 Default
Notes
activate_all_roles_on_login
-
OFF
Determines whether to automatically activate on login.
DEFAULT
-
introduced new clauses to avoid slow copies in certain instances. This variable allows setting this if no ALGORITHM clause is specified.
100.0000
-
Percentage of rows from the table will sample to collect table statistics.
Set to something very low (16K) as it's not used.
Set to what you think you need for handling internal tmp tables that didn't fit in memory.
Normally this is what before you had set for (at least 1M).
If you are using and not planning to use :
Set to what you think you need for handling internal tmp tables that didn't fit in memory.
If you are planning to use , you should set to something that fits a big part of your normal data + overflow temporary tables.
Variable
Default
MySQL 8.0 Default
Notes
activate_all_roles_on_login
-
OFF
Determines whether to automatically activate on login.
DEFAULT
-
introduces new clauses to avoid slow copies in certain instances. This variable allows setting this if no ALGORITHM clause is specified.
*
-
The Aria storage engine is only available in MariaDB.
MariaDB 11.1 Default
MySQL 8.0 Default
Notes
activate_all_roles_on_login
-
OFF
Determines whether to automatically activate on login.
admin*
-
*
MySQL admin connections.
0
-
Only available as an option in MySQL.
DEFAULT
-
MariaDB 10.3 introduced new clauses to avoid slow copies in certain instances. This variable allows setting this if no ALGORITHM clause is specified.
100.0000
-
Percentage of rows from the table will sample to collect table statistics.
*
-
The Aria storage engine is only available in MariaDB.
authentication_policy
-
*,,
MySQL authentication policy.
auto_generate_certs
-
ON
Whether to automatically generate SSL key and certificate files.
avoid_temporal_upgrade
-
OFF
Determines whether ALTER TABLE implicitly upgrades temporal columns.
Autosized
Autosized
MariaDB and MySQL have different autosizing algorithms.
OFF
-
When set, split ALTER at binary logging into two statements: START ALTER and COMMIT/ROLLBACK ALTER.
ON
-
Introduced in MariaDB 5.3 for replicating between MariaDB 5.3 and MySQL/MariaDB 5.1.
0
-
For use in MariaDB's .
100000
-
For use in MariaDB's .
binlog_encryption
-
OFF
MySQL name for .
binlog_error_action
ABORT_SERVER
MySQL-only variable for controlling what happens when the server cannot write to the binary log.
binlog_expire_logs_auto_purge
-
ON
Enables or disables automatic purging of binary log files.
0
2592000
Sets the binary log expiration period in seconds
16184
-
For setting the size of the file cache for the .
MIXED
ROW
MariaDB and MySQL have differing .
binlog_group_commit_sync_delay
0
MySQL-only variable for controlling the wait time before synchronizing the binary log file to disk.
binlog_group_commit_sync_no_delay_count
0
MySQL-only variable for setting the maximum number of transactions to wait for before aborting the current binlog_group_commit_sync_delay delay.
binlog_gtid_simple_recovery
-
ON
MySQL-only GTID variable. MariaDB's implementation is different.
binlog_max_flush_queue_time
-
0
Specifies a timeout for reading transactions from the flush queue before continuing with group commit and syncing log to disk.
ON
-
For optimized kernel thread scheduling.
binlog_order_commits
-
ON
Determines whether transactions may be committed in parallel.
binlog_rotate_encryption_master_key_at_startup
-
OFF
Specifically for use with MySQL binary key encryption.
-
8192
Only available as a system variable in MariaDB 11.2.
NO_LOG
MINIMAL
Determines the amount of table metadata added to the binary log with row-based logging.
binlog_row_value_options
-
(empty)
Permits an alternative binlog format for JSON document updates.
binlog_rows_query_log_events
-
OFF
MySQL-only variable for logging extra information in row-based logging.
binlog_transaction_compression*
-
*
MySQL variables relating to binary log compression.
binlog_transaction_dependency_history_size
-
25000
Maximum number of row hashes kept for looking up transactions that last modified a given row.
binlog_transaction_dependency_tracking
-
COMMIT_ORDER
For determining how to best use the slave's multithreaded applier.
block_encryption_mode
-
aes-128-ecb
MySQL-only variable for controlling the block encryption mode for block-based algorithms.
caching_sha2_password*
-
*
For use with MySQL's SHA-256 authentication with caching.
latin1 or utf8
utf8mb4
MySQL 8.0 defaults to the utf8mb4 .
ON
-
Permits disabling constraint checks, for example when loading a table that violates some constraints that you plan to fix later.
check_proxy_users
OFF
MySQL-only variable for controlling whether the server performs proxy user mapping for authentication plugins.
latin1_swedish_ci or utf8_general_ci
utf8mb4_0900_ai_ci
MySQL 8.0 defaults to the utf8mb4 .
100
-
MariaDB supports .
6
-
MariaDB supports .
DEFAULT_STRATEGY
-
MariaDB supports .
OFF
-
MariaDB supports .
connection_memory_chunk_size
-
8192
Chunk size for updates to the Global_connection_memory counter.
connection_memory_limit
-
18446744073709551615
Maximum memory for a single user connection.
create_admin_listener_thread
-
OFF
MySQL-only variable for whether to use a dedicated listening thread for admin network interface connections.
cte_max_recursion_depth
-
1000
When MySQL 8.0 introduced they used a different name. MariaDB's variable is called .
%Y-%m-%d
-
Unused variable removed in MySQL 8.0
%Y-%m-%d
-
Unused variable removed in MySQL 8.0
15
-
The Aria storage engine is only available in MariaDB.
4
-
The Aria storage engine is only available in MariaDB.
50000000
-
The Aria storage engine is only available in MariaDB.
10000
-
The Aria storage engine is only available in MariaDB.
OFF
-
Disable system thread alarm calls, for debugging or testing.
default_authentication_plugin
-
caching_sha2_password
MySQL 8 introduced a new authentication plugin.
default_collation_for_utf8mb4
-
utf8mb4_0900_ai_ci
For internal use in MySQL 8 replication.
empty
-
For use with MariaDB's .
empty
-
For handling incompatibilities between MariaDB's and the old regex library.
empty
InnoDB
Default storage engine used for tables created with .
disabled_storage_engines
empty
MySQL-only variable for disabling specific storage engines.
OFF
ON
MariaDB password expiration is off by default, and by default does not disconnect a client when a password has expired.
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
end_markers_in_json
-
OFF
MySQL-only variable for adding end markers to JSON output.
enforce_gtid_consistency
-
OFF
MariaDB and MySQL have different .
none
Forces the use of a particular storage engine for new tables.
0
200
Variable for tuning when the optimizer should switch from using index dives to index statistics for qualifying rows estimation.
OFF
ON
MySQL enables the event scheduler by default.
100
-
Used for determining expensive queries for optimization.
1
-
Introduced in the .
0
-
Introduced in the .
1048576
1024
MariaDB increases the maximum length for a result from 1K to 1M.
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
64
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
gtid_executed
-
empty
MariaDB and MySQL have different .
gtid_executed_compression_period
-
1000
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
gtid_mode
-
OFF
MariaDB and MySQL have different .
gtid_next
-
AUTOMATIC
MariaDB and MySQL have different .
gtid_owned
-
empty
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
gtid_purged
-
empty
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
YES
-
MySQL has removed the function.
MariaDB's version indicates whether YaSSL or openssl was used. MySQL's is a synonym for have_ssl.
YES
-
MySQL has removed the .
have_statement_timeout
-
Whether MySQL's statement execution timeout feature is available.
YES
DISABLED
MySQL has removed symlink support.
histogram_generation_max_mem_size
-
20000000
Added when MySQL 8 introduced . MariaDB uses
0
-
MariaDB introduced .
JSON_HB
-
MariaDB introduced .
0
-
Time in seconds that the server waits for idle read-only transactions.
0
-
Time in seconds that the server waits for idle transactions.
0
-
Time in seconds that the server waits for idle write transactions.
OFF
-
Ignored and removed in MySQL 8.
1000
-
Controls the optimization.
0
-
Set to 1 if you are in a transaction, and 0 if not.
information_schema_stats_expiry
-
86400
Time until MySQL Information Schema cached statistics expire.
10.000000
10
Adaptive flushing is enabled when this low water mark percentage of the redo log capacity is reached. MariaDB's variable is a , MySQL's an .
OFF
ON
Defaulting to OFF is a performance improvement especially for , , , or operations
-
150000
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
innodb_api_*
-
*
Specific to MySQL's memcached, removed in MariaDB 10.2.
1
2
MariaDB has an extra mode, 3, for skipping the rollback of connected transactions. MySQL defaults to row-based replication, so can safely use 2.
-
1
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6 since the original reasons for introducing no longer apply.
innodb_change*
*
The was removed in MariaDB 11.0.
full_crc32
crc32
fullcrc32 permits encryption to be supported over a SPATIAL INDEX, which crc32 does not support.
-
0
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
*
-
Introduced with MariaDB's .
-
5000
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
Full
-
How to report deadlocks.
innodb_dedicated_server
-
OFF
MySQL option that automatically configures various settings if the server is a dedicated InnoDB database server.
1
-
Default encryption key id used for table encryption. See .
innodb_directories
-
(empty)
Used to search for tablespace files when moving or restoring a new location.
OFF
-
Tell InnoDB to stop any writes to disk.
1
-
See MariaDB's .
600
-
MariaDB's fatal semaphore timeout is configurable.
O_DIRECT
fsync
MariaDB InnoDB flushing method by default on Unix systems bypasses the file system cache for improved performance in most cases.
1
0
MySQL 8 by default now assumes the use of an SSD device.
OFF
-
If set to 1 in MariaDB (0 is default) CREATE TABLEs without a primary or unique key where all keyparts are NOT NULL will not be accepted, and will return an error.
OFF
-
MariaDB has support for .
add_drop_reorder
-
See .
-
ON
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6, as there is no reason to allow checksums to be disabled on the redo log.
-
ON
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6 as part of the InnoDB redo log performance improvements.
-
2
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6 as part of the InnoDB redo log performance improvements.
innodb_log_spin_*
-
*
MySQL variables for constraining CPU usage while waiting for flushed redo.
innodb_log_wait_for_flush_spin_hwm
-
*
MySQL variable for constraining CPU usage while waiting for flushed redo.
75
90
MySQL 8 increased the default to 90.
0
10
MySQL 8 increased the default to 10.
10485760
1073741824
MariaDB 10.2 reduced the limit for when an undo tablespace is marked for truncation.
Autosized (2000)
Autosized (4000)
In most systems, autosized based on the setting, which differs between MariaDB and MySQL.
-
1
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6 as the original reasons for splitting the buffer pool have mostly gone away.
OFF
-
MariaDB includes the Facebook prefix index queries optimization.
innodb_print_ddl_logs
-
OFF
MySQL option for writing DDL logs to stderr.
ON
-
Whether to set tables to read-only.
innodb_redo_log_encrypt
-
OFF
MySQL 8 has also now introduced redo log encryption, but used a different name. The equivalent option in MariaDB is .
-
0
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
-
128
Removed in MariaDB as part of the InnoDB cleanup. It makes sense to always create and use the maximum number of rollback segments.
4
6
MariaDB changed the default from 6 to 4 based on extensive benchmarking.
0
-
MariaDB option to control the calculation of new statistics.
ON
-
Enabling gives a larger sample of pages for larger tables for the purposes of index statistics calculation.
-
1
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
-
0
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
-
10000
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
innodb_undo_log_encrypt
-
OFF
MySQL option for encrypting undo logs residing in separate undo tablespaces.
OFF
ON
MySQL 8 changes the default to ON, marking larger undo logs for truncation.
3
2
Number of tablespace files used for dividing up the undo logs. MySQL 8 has deprecated this setting, and increased the default (and minimum) to 2.
ON
-
are a faster alternative to innodb_doublewrite and MariaDB automatically detects when supporting SSD cards are used.
internal_tmp_disk_storage_engine
-
INNODB
MySQL uses this variable to set the storage engine for on-disk internal temporary tables.
internal_tmp_mem_storage_engine
-
TEMPTABLE
MySQL and MariaDB use different formats for temporary tables. In MariaDB, the performs a similar function.
2097152
-
Maximum size in bytes of the query buffer. See block-based join algorithms.
2
-
For determining the join algorithms. See block-based join algorithms
134217728
8388608
Size of the buffer for the index blocks used by MyISAM tables and shared for all threads.
512
-
Number of hash buckets for open and changed files.
0
-
The number of segments in a key cache. See .
keyring_operations
-
ON
Whether MySQL 8's keyring operations are enabled.
-
empty
MariaDB and MySQL have different .
ON
OFF
MySQL no longer supports LOAD DATA LOCAL by default.
86400
31536000
MariaDB has reduced the timeout for acquiring metadata locks.
OFF
ON
MySQL 8 enables the by default.
OFF
-
MariaDB setting for whether or not the can be compressed.
256
-
Minimum length of sql statement (in statement mode) or record (in row mode) that can be compressed. See .
log_bin_use_v1_row_events
-
OFF
MySQL-only variable showing whether or not MySQL's version 2 binary logging format is being used.
sp
-
Disable logging of certain statements to the .
log_error_services
-
log_filter_internal; log_sink_internal
Components to enable for MySQL error logging.
log_error_verbosity
-
3
MySQL variable for setting verbosity of error, warning, and note messages in the error log.
OFF
ON
MySQL 8 has by default enabled of updates a slave receives from a master.
ON
OFF
MariaDB logs slow admin statements to the by default.
admin,call,slave,sp
-
Disable logging of certain statements to the .
admin, filesort, filesort_on_disk, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk
-
For slow query log filtering.
1
-
Limits the number of queries logged to the .
0
-
Previously named (still an alias).
0
-
Previously named (still an alias).
host_name-slow.log
-
Previously named (still an alias).
10.000000
-
Previously named (still an alias).
ON
OFF
MariaDB logs slow slave statements to the by default.
empty
-
Controls information to be added to the . See also .
log_statements_unsafe_for_binlog
-
ON
MySQL setting for controlling whether binlog warnings are written to the error log.
log_syslog*
platform-dependent
-
MySQL variables with settings for writing to syslog.
24576
-
Size in bytes of the transaction coordinator log, defined in multiples of 4096.
log_throttle_queries_not_using_indexes
-
0
MySQL-only variable for limiting the number of statements without indexes written to the slow query log.
log_timestamps
-
UTC
MySQL-only variable controlling the timezone for certain logging conditions.
2
-
MySQL 8 has replaced with log_error_verbosity.
mandatory_roles
-
(empty)
MySQL variable for assigning to all users.
master_info_repository
-
TABLE
Whether slave logs master status and connection info to a table or a file.
16M
64M
64
1024
Specifies the maximum number of messages stored for display by and statements.
max_execution_time
-
0
MySQL renamed the max_statement_time variable.
64
1024
Used to decide which algorithm to choose when sorting rows. If the total size of the column data, not including columns that are part of the sort, is less than max_length_for_sort_data, then these are added to the sort key. This can speed up the sort as there's no need to re-read the same row again later. Setting the value too high can slow things down as there will be a higher disk activity for doing the sort.
4294967295
-
Maximum number of failed connections attempts before no more are permitted.
max_points_in_geometry
-
65536
Maximum points_per_circle for MySQL's ST_Buffer_Strategy() function.
4294967295
-
Maximum number of iterations when executing recursive queries.
1073741824
0
Can be set by session in MariaDB.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
The most key seeks required when searching with an index, regardless of the actual index cardinality. If this value is set lower than its default and maximum, indexes will tend to be preferred over table scans.
9223372036854775807
-
Amount of memory a single user session is allowed to allocate.
0
-
Maximum time in seconds that a query can execute before being aborted. MySQL used to have a variable of this name before renaming it max_execution_time.
32
-
Unused variable removed in MySQL.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
Read lock requests will be permitted for processing after this many write locks.
262144
-
Size of buffer to use when using multi-range read with range access. See .
1024
-
Block size used for index pages.
BACKUP,QUICK
OFF
MyISAM recovery mode.
134216704
8388608
Size in bytes of the buffer allocated when creating or sorting indexes on a MyISAM table.
mysql_native_password_proxy_users
-
OFF
Whether MySQL's authentication plugin supports proxy users. I
ON
Causes MariaDB to use the MySQL-5.6 low level formats for , and instead of the MariaDB 5.3+ version.
new
-
OFF
Used for backward-compatibility with MySQL 4.1, not present in MariaDB.
mysqlx+*
-
*
MySQL's X plugin related variables.
ngram_token_size
-
2
Sets the n-gram token size for MySQL's n-gram full-text parser.
offline_mode
-
OFF
MySQL settting for specifying whether the server should run in offline mode.
DEFAULT
OFF
An alias for .
Empty string
-
Used for getting MariaDB to emulate behavior from an old version of MySQL or MariaDB. See .
OFF
-
MySQL 8 is no longer compatible with the old pre-MySQL 4.1 form of password hashing.
8
-
If the optimizer needs to enumerate a join prefix of this size or larger, then it will try aggressively prune away the search space.
100
-
Controls number of record samples to check condition selectivity.
A series of flags for controlling the query optimizer. MariaDB has introduced a number of new settings.
optimizer_trace_*
-
*
MySQL has more settings for optimizer tracing.
4
-
Controls which statistics can be used by the optimizer when looking for the best query execution plan.
original_commit_timestamp
-
*
Used by MySQL 8 for .
parser_max_mem_size
-
4294967295 (32-bit) or 18446744073709547520 (64-bit)
MySQL variable for limiting memory available to the parser.
password_*
-
*
Controls reuse of previous passwords in MySQL.
OFF
ON
The is off by default in MariaDB.
Many performance schema variables are autoset in MySQL, and MySQL has a different version, with additional variables.
One less than the server maturity
-
Minimum acceptable plugin maturity.
5
-
Time in seconds between sending progress reports to the client for time-consuming statements.
(empty)
-
Enable for these source networks.
16384
8192
Size in bytes of the extra blocks allocated during query parsing and execution (after query_prealloc_size is used up).
*
-
MySQL has removed the .
24576
8192
Size in bytes of the persistent buffer for query parsing and execution, allocated on connect and freed on disconnect.
range_optimizer_max_mem_size
-
8388608
MySQL-only variable setting a limit on the range optimizer's memory usage.
rbr_exec_mode
-
STRICT
MySQL-only variable for determining the handling of certain key errors.
0
-
Permits restricting the speed at which the slave reads the binlog from the master.
regexp_*
-
*
Memory and time limits for regular expression matching operations.
relay_log_info_repository
-
TABLE
MySQL-only variable determining whether the slave's position in the relay logs is written to a file or table.
ON
-
Tells the slave to reproduce annotate_rows_events received from the master in its own binary log.
empty string
-
See .
empty string
-
See .
replicate
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
Only available as an option in MySQL.
empty string
-
See .
empty string
-
See .
result_metadata
-
FULL
Determine whether the server returns result set metadata for connections where this is optional.
8388608
-
See .
rpl_read_size
-
8192
Minimum data in bytes read from the binary and relay log files.
-
-
MariaDB includes without the need to install a plugin.
rpl_stop_slave_timeout
-
31536000
Controls the time that waits before timing out.
*
-
The S3 storage engine is only available in MariaDB.
schema_definition_cache
-
256
Limits the number of schema definition objects kept in the dictionary object cache.
ON
-
Removed in MySQL.
NO
-
MariaDB-only option permitting the restricting of direct setting of a session timestamp..
server_id_bits
-
server_id
MySQL-only variable for use in MySQL Cluster.
server_uuid
-
UUID
MySQL-only variable containing the UUID.
session_track_gtids
-
OFF
MySQL-only variables for tracking gtid changes. MariaDB and MySQL's gtid implementation is different.
sha256_password_proxy_users
-
OFF
MySQL-only variable determining whether the sha256_password plugin supports proxy users.
show_create_table_verbosity
-
OFF
Option to cause to display ROW_FORMAT in all cases.
show_old_temporals
-
OFF
MySQL-only variable for determining whether SHOW CREATE TABLE output should include comments for old format temporal columns.
OFF
-
See .
OFF
-
See .
slave_allow_batching
-
OFF
MySQL-only replication variable.
slave_checkpoint_group
-
512
MySQL-only replication variable.
slave_checkpoint_period
-
300
MySQL-only replication variable.
IDEMPOTENT
-
Modes for how replication of DDL events should be executed.
0
-
For configuring .
3600
60
MySQL reduced the timeout to 60s.
131072
-
For configuring .
0
-
Only available as an option in MySQL.
0.000000
-
MariaDB setting to abort a query that has taken more than this in seconds to run on the replica.
optimistic
-
Controls what transactions are applied in parallel when using .
0
-
For configuring .
slave_parallel_type
-
DATABASE
MySQL-only replication variable.
slave_pending_jobs_size_max
-
16777216
MySQL-only replication variable.
slave_preserve_commit_order
-
OFF
MySQL-only replication variable.
slave_rows_search_algorithms
-
INDEX_SCAN, HASH_SCAN
MySQL-only replication variable.
NO
See for a description and use-case for this setting.
1213,1205
-
When an error occurs during a transaction on the slave, replication usually halts. By default, transactions that caused a deadlock or elapsed lock wait timeout will be retried. One can add other errors to the list of errors that should be retried by adding a comma-separated list of error numbers to this variable.
0
-
Interval in seconds for the slave SQL thread to retry a failed transaction due to a deadlock, elapsed lock wait timeout or an error listed in slave_transaction_retry_errors.
2097152
262144
The default sort buffer allocated has been reduced in MySQL.
OFF
-
Adds an implicit IF EXISTS to ALTER, RENAME and DROP of TABLES, VIEWS, FUNCTIONS and PACKAGES
STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_ENGINE_SUBSTITUTION
See .
ssl_fips_mode
-
OFF
Whether FIPS mode is enabled on the server side. Deprecated in MySQL.
ON
-
See .
InnoDB
-
Alias for , removed in MySQL.
ON
-
In MariaDB, when password validation plugins are enabled, reject passwords that cannot be validated (passwords specified as a hash).
stored_program_definition_cache
-
256
Limits the number of stored program definition objects kept in the dictionary object cache.
super_read_only
-
OFF
MySQL variable for prohibiting client updates from users with the SUPER privilege.
0
1
MySQL synchronizes all actions to the binary log before they are committed.
1
-
.frm files have been removed in MySQL.
ERROR
-
MariaDB has
DEFAULT
-
MariaDB has
OFF
-
MariaDB has
400
-1 (autosized)
Number of table definitions that can be cached.
8
16
Maximum number of table cache instances.
tablespace_definition_cache
-
256
Limits the number of tablespace definition objects kept in the dictionary object cache.
0
-
Interval, in seconds, between when successive keep-alive packets are sent if no acknowledgement is received.
0
-
Number of unacknowledged probes to send before considering the connection dead and notifying the application layer.
0
-
Set the TCP_NODELAY option (disable Nagle's algorithm) on socket.
1
-
Timeout, in milliseconds, with no activity until the first TCP keep-alive packet is sent.
temptable_max_ram
-
1GB
Limits the RAM used by MySQL's TempTable storage engine.
Autosized
-1 (autosized)
MariaDB uses an .
0
-
Better precision for the data in the .
0
-
Better precision for the data in the .
60
-
See .
65536
-
See .
1
-
Windows-only. See .
3
-
See .
auto
-
See .
auto
-
See .
Number of processors
16*
See . *Only available in MySQL with a commercial plugin.
500
6*
See . *Only available in MySQL with a commercial plugin.
299008
Varies
See .
%H:%i:%s
-
Removed in MySQL.
18446744073709551615
-
Max size for data for an internal temporary on-disk MyISAM or Aria table.
16777216
-
Alias for .
transaction_allow_batching
-
OFF
Variable for enabling batching of statements within the same transaction in MySQL Cluster.
transaction_write_set_extraction
-
OFF
Unused MySQL-only variable.
REPEATABLE-READ
-
A MariaDB-only variable, replaced with .
OFF
-
A MariaDB-only variable, replaced with .
preferably_for_queries
-
Controls the use of .
OFF
-
Whether to activate MariaDB's implementation, not available in MySQL.
version_compile_zlib
-
*
Version of the zlib library compiled in.
*
-
Version of the used malloc library.
Varies
-
Permits seeing exactly which version of the source was used for a build.
*
-
Version of the used TLS library.
windowing_high_use_precision
-
*
MySQL option allowing safety to be sacrificed for speed in calculations.
*
-
Galera cluster is only available in MariaDB.
Variable
MySQL 8.0
Notes
The following is a comparison of variables that either appear only in MariaDB 10.4 or MySQL 8.0, or have different default settings in MariaDB 10.4 and MySQL 8.0. The stable releases MariaDB 10.4.6 and MySQL 8.0.11, with only default plugins enabled, were used for the comparison. Note that MySQL 8 is an 'evergreen' release, so features may be added or removed in later releases.
For a more complete list of differences, see Incompatibilities and Feature Differences Between MariaDB 10.4 and MySQL 8.0 and Function Differences Between MariaDB 10.4 and MySQL 8.0
The most notable differences are that MariaDB includes, by default, the storage engine (resulting in extra memory allocation), Galera Cluster, and has a different . For this reason, a default implementation of MariaDB 10.4 will use more memory than MySQL 8.0. MariaDB 10.4 and MySQL 8.0 also have different .
MariaDB's extra memory usage can be handled with the following rules of thumb:
If you are not using and don't plan to use :
Set to something very low (16K) as it's not used.
Set to what you think you need for handling internal tmp tables that didn't fit in memory.
Normally this is what before you had set for (at least 1M).
If you are using and not planning to use :
Set to what you think you need for handling internal tmp tables that didn't fit in memory.
If you are planning to use , you should set to something that fits a big part of your normal data + overflow temporary tables.
The following is a comparison of variables that either appear only in or MySQL 8.0, or have different default settings in , and MySQL 8.0. The releases and MySQL 8.0.11, with only default plugins enabled, were used for the comparison. Note that MySQL 8 is an 'evergreen' release, so features may be added or removed in later releases.
For a more complete list of differences, see and
*
-
The Aria storage engine is only available in MariaDB.
auto_generate_certs
-
ON
Whether to automatically generate SSL key and certificate files.
avoid_temporal_upgrade
-
OFF
Determines whether ALTER TABLE implicitly upgrades temporal columns.
Autosized
Autosized
MariaDB and MySQL have different autosizing algorithms.
ON
-
Introduced in for between and MySQL/.
0
-
For use in MariaDB's .
100000
-
For use in MariaDB's .
binlog_error_action
ABORT_SERVER
MySQL-only variable for controlling what happens when the server cannot write to the binary log.
binlog_expire_logs_seconds
-
2592000
Sets the binary log expiration period in seconds
16184
-
For setting the size of the file cache for the .
MIXED
ROW
MariaDB and MySQL have differing .
binlog_group_commit_sync_delay
0
MySQL-only variable for controlling the wait time before synchronizing the binary log file to disk.
binlog_group_commit_sync_no_delay_count
0
MySQL-only variable for setting the maximum number of transactions to wait for before aborting the current binlog_group_commit_sync_delay delay.
binlog_gtid_simple_recovery
-
ON
MySQL-only GTID variable. MariaDB's implementation is different.
binlog_max_flush_queue_time
-
0
Specifies a timeout for reading transactions from the flush queue before continuing with group commit and syncing log to disk.
ON
-
For optimized kernel thread scheduling.
binlog_order_commits
-
ON
Determines whether transactions may be committed in parallel.
binlog_row_metadata
-
MINIMAL
Determines the amount of table metadata added to the binary log with row-based logging.
binlog_row_value_options
-
(empty)
Permits an alternative binlog format for JSON document updates.
binlog_rows_query_log_events
-
OFF
MySQL-only variable for logging extra information in row-based logging.
binlog_transaction_dependency_history_size
-
25000
Maximum number of row hashes kept for looking up transactions that last modified a given row.
binlog_transaction_dependency_tracking
-
COMMIT_ORDER
For determining how to best use the slave's multithreaded applier.
block_encryption_mode
-
aes-128-ecb
MySQL-only variable for controlling the block encryption mode for block-based algorithms.
caching_sha2_password*
-
*
For use with MySQL's SHA-256 authentication with caching.
latin1 or utf8
utf8mb4
MySQL 8.0 defaults to the utf8mb4 .
ON
-
Permits disabling constraint checks, for example when loading a table that violates some constraints that you plan to fix later.
check_proxy_users
OFF
MySQL-only variable for controlling whether the server performs proxy user mapping for authentication plugins.
latin1_swedish_ci or utf8_general_ci
utf8mb4_0900_ai_ci
MySQL 8.0 defaults to the utf8mb4 .
100
-
MariaDB supports .
6
-
MariaDB supports .
DEFAULT_STRATEGY
-
MariaDB supports .
OFF
-
MariaDB supports .
cte_max_recursion_depth
-
1000
When MySQL 8.0 introduced they used a different name. MariaDB's variable is called .
%Y-%m-%d
-
Unused variable removed in MySQL 8.0
%Y-%m-%d
-
Unused variable removed in MySQL 8.0
15
-
The Aria storage engine is only available in MariaDB.
4
-
The Aria storage engine is only available in MariaDB.
50000000
-
The Aria storage engine is only available in MariaDB.
10000
-
The Aria storage engine is only available in MariaDB.
OFF
-
Disable system thread alarm calls, for debugging or testing.
default_authentication_plugin
-
caching_sha2_password
MySQL 8 introduced a new authentication plugin.
default_collation_for_utf8mb4
-
utf8mb4_0900_ai_ci
For internal use in MySQL 8 replication.
empty
-
For use with MariaDB's .
empty
-
For handling incompatibilities between MariaDB's and the old regex library.
empty
InnoDB
Default storage engine used for tables created with .
disabled_storage_engines
empty
MySQL-only variable for disabling specific storage engines.
OFF
ON
MariaDB password expiration is off by default, and by default does not disconnect a client when a password has expired.
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
end_markers_in_json
-
OFF
MySQL-only variable for adding end markers to JSON output.
enforce_gtid_consistency
-
OFF
MariaDB and MySQL have different .
none
Forces the use of a particular storage engine for new tables.
0
200
Variable for tuning when the optimizer should switch from using index dives to index statistics for qualifying rows estimation.
OFF
ON
MySQL enables the event scheduler by default.
100
-
Used for determining expensive queries for optimization.
OFF
ON
MySQL 8 disables the old timestamp behavior.
1
-
Introduced in the .
0
-
Introduced in the .
1048576
1024
MariaDB increases the maximum length for a result from 1K to 1M.
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
64
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
gtid_executed
-
empty
MariaDB and MySQL have different .
gtid_executed_compression_period
-
1000
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
gtid_mode
-
OFF
MariaDB and MySQL have different .
gtid_next
-
AUTOMATIC
MariaDB and MySQL have different .
gtid_owned
-
empty
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
gtid_purged
-
empty
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
YES
-
MySQL has removed the function.
MariaDB's version indicates whether YaSSL or openssl was used. MySQL's is a synonym for have_ssl.
YES
-
MySQL has removed the .
have_statement_timeout
-
Whether MySQL's statement execution timeout feature is available.
YES
DISABLED
MySQL has removed symlink support.
histogram_generation_max_mem_size
-
20000000
Added when MySQL 8 introduced . MariaDB uses
0
-
MariaDB introduced .
SINGLE_PREC_HB
-
MariaDB introduced .
0
-
Time in seconds that the server waits for idle read-only transactions.
0
-
Time in seconds that the server waits for idle transactions.
0
-
Time in seconds that the server waits for idle write transactions.
OFF
-
Ignored and removed in MySQL 8.
1000
-
Controls the optimization.
0
-
Set to 1 if you are in a transaction, and 0 if not.
information_schema_stats_expiry
-
86400
Time until MySQL Information Schema cached statistics expire.
10.000000
10
Adaptive flushing is enabled when this low water mark percentage of the redo log capacity is reached. MariaDB's variable is a , MySQL's an .
innodb_api_*
-
*
Specific to MySQL's memcached, removed in .
1
2
MariaDB has an extra mode, 3, for skipping the rollback of connected transactions. MySQL defaults to row-based replication, so can safely use 2.
*
-
MariaDB has support for .
ON
-
Deprecated option removed in MySQL.
*
-
Introduced with MariaDB's .
innodb_dedicated_server
-
OFF
MySQL option that automatically configures various settings if the server is a dedicated InnoDB database server.
1
-
Default encryption key id used for table encryption. See .
*
-
MariaDB can .
innodb_directories
-
(empty)
Used to search for tablespace files when moving or restoring a new location.
OFF
-
Tell InnoDB to stop any writes to disk.
1
-
See MariaDB's .
600
-
MariaDB's fatal semaphore timeout is configurable.
(empty)
-
has restored this unused, deprecated variable for compatibility reasons.
1
0
MySQL 8 by default now assumes the use of an SSD device.
OFF
-
If set to 1 in MariaDB (0 is default) CREATE TABLEs without a primary or unique key where all keyparts are NOT NULL will not be accepted, and will return an error.
100
-
Up to what percentage of dirty pages in MariaDB should be flushed when InnoDB finds it has spare resources to do so.
OFF
-
MariaDB has support for .
(empty)
-
has restored this unused, deprecated variable for compatibility reasons.
VATS
-
MariaDB has an improved algorithm for deciding which of the waiting transactions should be granted a lock once it has been released.
OFF
-
Deprecated option in MariaDB for disabling gap locking for searches and index scans. Deprecated in MariaDB, use instead.
ON
-
Whether redo logging should be reduced when natively creating indexes or rebuilding tables
innodb_log_spin_*
-
*
MySQL variables for constraining CPU usage while waiting for flushed redo.
innodb_log_wait_for_flush_spin_hwm
-
*
MySQL variable for constraining CPU usage while waiting for flushed redo.
75
90
MySQL 8 increased the default to 90.
0
10
MySQL 8 increased the default to 10.
10485760
1073741824
reduced the limit for when an undo tablespace is marked for truncation.
Autosized (2000)
Autosized (4000)
In most systems, autosized based on the setting, which differs between MariaDB and MySQL.
OFF
-
MariaDB includes the Facebook prefix index queries optimization.
innodb_print_ddl_logs
-
OFF
MySQL option for writing DDL logs to stderr.
innodb_redo_log_encrypt
-
OFF
MySQL 8 has also now introduced redo log encryption, but used a different name. The equivalent option in MariaDB is .
*
-
MariaDB includes options to .
4
6
MariaDB changed the default from 6 to 4 based on extensive benchmarking.
0
-
MariaDB option to control the calculation of new statistics.
8
-
Deprecated MariaDB option for control over index distribution statistics.
ON
-
Enabling gives a larger sample of pages for larger tables for the purposes of index statistics calculation.
innodb_undo_log_encrypt
-
OFF
MySQL option for encrypting undo logs residing in separate undo tablespaces.
OFF
ON
MySQL 8 changes the default to ON, marking larger undo logs for truncation.
128
-
Removed in MySQL 8.
0
2
Number of tablespace files used for dividing up the undo logs. MySQL 8 has deprecated this setting, and increased the default (and minimum) to 2.
ON
-
are a faster alternative to innodb_doublewrite and MariaDB automatically detects when supporting SSD cards are used.
internal_tmp_disk_storage_engine
-
INNODB
MySQL uses this variable to set the storage engine for on-disk internal temporary tables.
internal_tmp_mem_storage_engine
-
TEMPTABLE
MySQL and MariaDB use different formats for temporary tables. In MariaDB, the performs a similar function.
2097152
-
Maximum size in bytes of the query buffer. See ..
2
-
For determining the join algorithms. See .
134217728
8388608
Size of the buffer for the index blocks used by MyISAM tables and shared for all threads.
512
-
Number of hash buckets for open and changed files.
0
-
The number of segments in a key cache. See .
keyring_operations
-
ON
Whether MySQL 8's keyring operations are enabled.
-
empty
MariaDB and MySQL have different .
ON
OFF
MySQL no longer supports LOAD DATA LOCAL by default.
86400
31536000
MariaDB has reduced the timeout for acquiring metadata locks.
OFF
ON
MySQL 8 enables the by default.
OFF
-
MariaDB setting for whether or not the can be compressed.
256
-
Minimum length of sql statement (in statement mode) or record (in row mode) that can be compressed. See .
log_bin_use_v1_row_events
-
OFF
MySQL-only variable showing whether or not MySQL's version 2 binary logging format is being used.
sp
-
Disable logging of certain statements to the .
log_error_services
-
log_filter_internal; log_sink_internal
Components to enable for MySQL error logging.
log_error_verbosity
-
3
MySQL variable for setting verbosity of error, warning, and note messages in the error log.
OFF
ON
MySQL 8 has by default enabled of updates a slave receives from a master.
ON
OFF
MariaDB logs slow admin statements to the by default.
admin,call,slave,sp
-
Disable logging of certain statements to the .
admin, filesort, filesort_on_disk, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk
-
For slow query log filtering.
1
-
Limits the number of queries logged to the .
ON
OFF
MariaDB logs slow slave statements to the by default.
empty
-
Controls information to be added to the . See also .
log_statements_unsafe_for_binlog
-
ON
MySQL setting for controlling whether binlog warnings are written to the error log.
log_syslog*
platform-dependent
-
MySQL variables with settings for writing to syslog.
24576
-
Size in bytes of the transaction coordinator log, defined in multiples of 4096.
log_throttle_queries_not_using_indexes
-
0
MySQL-only variable for limiting the number of statements without indexes written to the slow query log.
log_timestamps
-
UTC
MySQL-only variable controlling the timezone for certain logging conditions.
2
-
MySQL 8 has replaced with log_error_verbosity.
mandatory_roles
-
(empty)
MySQL variable for assigning to all users.
master_info_repository
-
TABLE
Whether slave logs master status and connection info to a table or a file.
16M
64M
64
1024
Specifies the maximum number of messages stored for display by and statements.
max_execution_time
-
0
MySQL renamed the max_statement_time variable.
64
1024
Used to decide which algorithm to choose when sorting rows. If the total size of the column data, not including columns that are part of the sort, is less than max_length_for_sort_data, then these are added to the sort key. This can speed up the sort as there's no need to re-read the same row again later. Setting the value too high can slow things down as there will be a higher disk activity for doing the sort.
16777216
-
Maximum size for parameter values sent with mysql_stmt_send_long_data(). Removed in MySQL 5.6.
4294967295
-
Maximum number of failed connections attempts before no more are permitted.
max_points_in_geometry
-
65536
Maximum points_per_circle for MySQL's ST_Buffer_Strategy() function.
4294967295
-
Maximum number of iterations when executing recursive queries.
1073741824
0
Can be set by session in MariaDB.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
The most key seeks required when searching with an index, regardless of the actual index cardinality. If this value is set lower than its default and maximum, indexes will tend to be preferred over table scans.
9223372036854775807
-
Amount of memory a single user session is allowed to allocate.
0
-
Maximum time in seconds that a query can execute before being aborted. MySQL used to have a variable of this name before renaming it max_execution_time.
32
-
Unused variable removed in MySQL.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
Read lock requests will be permitted for processing after this many write locks.
262144
-
Size of buffer to use when using multi-range read with range access. See .
1024
-
Unused variable removed in MySQL.
1024
-
Block size used for index pages.
BACKUP,QUICK
OFF
MyISAM recovery mode.
134216704
8388608
Size in bytes of the buffer allocated when creating or sorting indexes on a MyISAM table.
mysql_native_password_proxy_users
-
OFF
Whether MySQL's authentication plugin supports proxy users. I
ON
Causes MariaDB to use the MySQL-5.6 low level formats for , and instead of the + version.
new
-
OFF
Used for backward-compatibility with MySQL 4.1, not present in MariaDB.
mysqlx+*
-
*
MySQL's X plugin related variables.
ngram_token_size
-
2
Sets the n-gram token size for MySQL's n-gram full-text parser.
offline_mode
-
OFF
MySQL settting for specifying whether the server should run in offline mode.
DEFAULT
OFF
An alias for .
Empty string
-
Used for getting MariaDB to emulate behavior from an old version of MySQL or MariaDB. See .
OFF
-
MySQL 8 is no longer compatible with the old pre-MySQL 4.1 form of password hashing.
100
-
Controls number of record samples to check condition selectivity.
A series of flags for controlling the query optimizer. MariaDB has introduced a number of new settings.
optimizer_trace_*
-
*
MySQL has more settings for optimizer tracing.
4
-
Controls which statistics can be used by the optimizer when looking for the best query execution plan.
original_commit_timestamp
-
*
Used by MySQL 8 for .
parser_max_mem_size
-
4294967295 (32-bit) or 18446744073709547520 (64-bit)
MySQL variable for limiting memory available to the parser.
password_*
-
*
Controls reuse of previous passwords in MySQL.
OFF
ON
The is off by default in MariaDB.
Many performance schema variables are autoset in MySQL, and MySQL has a different version, with additional variables.
One less than the server maturity
-
Minimum acceptable plugin maturity.
5
-
Time in seconds between sending progress reports to the client for time-consuming statements.
(empty)
-
Enable for these source networks.
16384
8192
Size in bytes of the extra blocks allocated during query parsing and execution (after query_prealloc_size is used up).
*
-
MySQL has removed the .
24576
8192
Size in bytes of the persistent buffer for query parsing and execution, allocated on connect and freed on disconnect.
range_optimizer_max_mem_size
-
8388608
MySQL-only variable setting a limit on the range optimizer's memory usage.
rbr_exec_mode
-
STRICT
MySQL-only variable for determining the handling of certain key errors.
0
-
Permits restricting the speed at which the slave reads the binlog from the master.
regexp_*
-
*
Memory and time limits for regular expression matching operations.
relay_log_info_repository
-
TABLE
MySQL-only variable determining whether the slave's position in the relay logs is written to a file or table.
ON
-
Tells the slave to reproduce annotate_rows_events received from the master in its own binary log.
empty string
-
See .
empty string
-
See .
replicate
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
require_secure_transport
-
OFF
MySQL-only variable determining whether client to server connections need to be secure.
result_metadata
-
FULL
Determine whether the server returns result set metadata for connections where this is optional.
8388608
-
See .
rpl_read_size
-
8192
Minimum data in bytes read from the binary and relay log files.
-
-
MariaDB includes without the need to install a plugin.
rpl_stop_slave_timeout
-
31536000
Controls the time that waits before timing out.
schema_definition_cache
-
256
Limits the number of schema definition objects kept in the dictionary object cache.
ON
-
Removed in MySQL.
NO
-
MariaDB-only option permitting the restricting of direct setting of a session timestamp..
server_id_bits
-
server_id
MySQL-only variable for use in MySQL Cluster.
server_uuid
-
UUID
MySQL-only variable containing the UUID.
session_track_gtids
-
OFF
MySQL-only variables for tracking gtid changes. MariaDB and MySQL's gtid implementation is different.
sha256_password_proxy_users
-
OFF
MySQL-only variable determining whether the sha256_password plugin supports proxy users.
show_create_table_verbosity
-
OFF
Option to cause to display ROW_FORMAT in all cases.
show_old_temporals
-
OFF
MySQL-only variable for determining whether SHOW CREATE TABLE output should include comments for old format temporal columns.
OFF
-
See .
OFF
-
See .
slave_allow_batching
-
OFF
MySQL-only replication variable.
slave_checkpoint_group
-
512
MySQL-only replication variable.
slave_checkpoint_period
-
300
MySQL-only replication variable.
IDEMPOTENT
-
Modes for how replication of DDL events should be executed.
0
-
For configuring .
3600
60
MySQL reduced the timeout to 60s.
131072
-
For configuring .
conservative
-
Controls what transactions are applied in parallel when using .
0
-
For configuring .
slave_parallel_type
-
DATABASE
MySQL-only replication variable.
slave_pending_jobs_size_max
-
16777216
MySQL-only replication variable.
slave_preserve_commit_order
-
OFF
MySQL-only replication variable.
slave_rows_search_algorithms
-
INDEX_SCAN, HASH_SCAN
MySQL-only replication variable.
NO
See for a description and use-case for this setting.
1213,1205
-
When an error occurs during a transaction on the slave, replication usually halts. By default, transactions that caused a deadlock or elapsed lock wait timeout will be retried. One can add other errors to the list of errors that should be retried by adding a comma-separated list of error numbers to this variable.
0
-
Interval in seconds for the slave SQL thread to retry a failed transaction due to a deadlock, elapsed lock wait timeout or an error listed in slave_transaction_retry_errors.
2097152
262144
The default sort buffer allocated has been reduced in MySQL.
STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_ENGINE_SUBSTITUTION
See .
ssl_fips_mode
-
OFF
Whether FIPS mode is enabled on the server side.
ON
-
See .
InnoDB
-
Alias for , removed in MySQL.
ON
-
In MariaDB, when password validation plugins are enabled, reject passwords that cannot be validated (passwords specified as a hash).
stored_program_definition_cache
-
256
Limits the number of stored program definition objects kept in the dictionary object cache.
super_read_only
-
OFF
MySQL variable for prohibiting client updates from users with the SUPER privilege.
0
1
MySQL synchronizes all actions to the binary log before they are committed.
1
-
.frm files have been removed in MySQL.
ERROR
-
MariaDB has
DEFAULT
-
MariaDB has
400
-1 (autosized)
Number of table definitions that can be cached.
8
16
Maximum number of table cache instances.
tablespace_definition_cache
-
256
Limits the number of tablespace definition objects kept in the dictionary object cache.
0
-
Interval, in seconds, between when successive keep-alive packets are sent if no acknowledgement is received.
0
-
Number of unacknowledged probes to send before considering the connection dead and notifying the application layer.
0
-
Set the TCP_NODELAY option (disable Nagle's algorithm) on socket.
1
-
Timeout, in milliseconds, with no activity until the first TCP keep-alive packet is sent.
temptable_max_ram
-
1GB
Limits the RAM used by MySQL's TempTable storage engine.
Autosized
-1 (autosized)
MariaDB uses an .
10
-
Removed in MySQL 5.7.
60
-
See .
65536
-
See .
1
-
Windows-only. See .
3
-
See .
auto
-
See .
auto
-
See .
Number of processors
16*
See . *Only available in MySQL with a commercial plugin.
500
6*
See . *Only available in MySQL with a commercial plugin.
299008
Varies
See .
%H:%i:%s
-
Removed in MySQL.
OFF
-
Removed in MySQL.
18446744073709551615
-
Max size for data for an internal temporary on-disk MyISAM or Aria table.
16777216
-
Alias for .
transaction_allow_batching
-
OFF
Variable for enabling batching of statements within the same transaction in MySQL Cluster.
transaction_isolation
-
REPEATABLE-READ
The MariaDB equivalent is .
transaction_read_only
-
OFF
The MariaDB equivalent is .
transaction_write_set_extraction
-
OFF
Unused MySQL-only variable.
REPEATABLE-READ
-
The MySQL equivalent is transaction_isolation.
OFF
-
The MySQL equivalent is transaction_read_only.
preferably_for_queries
-
Controls the use of .
OFF
-
Whether to activate MariaDB's implementation, not available in MySQL.
version_compile_zlib
-
*
Version of the zlib library compiled in.
*
-
Version of the used malloc library.
Varies
-
Permits seeing exactly which version of the source was used for a build.
*
-
Version of the used TLS library.
windowing_high_use_precision
-
*
MySQL option allowing safety to be sacrificed for speed in calculations.
*
-
is only available in MariaDB.
Variable
MySQL 8.0
Notes
Variable
MariaDB 10.4 Default
MySQL 8.0 Default
Notes
activate_all_roles_on_login
-
OFF
Determines whether to automatically activate on login.
DEFAULT
-
MariaDB 10.3 introduced new clauses to avoid slow copies in certain instances. This variable allows setting this if no ALGORITHM clause is specified.
100.0000
-
Percentage of rows from the table will sample to collect table statistics.
MySQL 8.0 Default
Notes
activate_all_roles_on_login
-
OFF
Determines whether to automatically activate on login.
0
-
Only available as an option in MySQL.
DEFAULT
-
introduced new clauses to avoid slow copies in certain instances. This variable allows setting this if no ALGORITHM clause is specified.
100.0000
-
Percentage of rows from the table will sample to collect table statistics.
*
-
The Aria storage engine is only available in MariaDB.
auto_generate_certs
-
ON
Whether to automatically generate SSL key and certificate files.
avoid_temporal_upgrade
-
OFF
Determines whether ALTER TABLE implicitly upgrades temporal columns.
Autosized
Autosized
MariaDB and MySQL have different autosizing algorithms.
OFF
-
When set, split ALTER at binary logging into two statements: START ALTER and COMMIT/ROLLBACK ALTER.
ON
-
Introduced in for between and MySQL/.
0
-
For use in MariaDB's .
100000
-
For use in MariaDB's .
binlog_error_action
ABORT_SERVER
MySQL-only variable for controlling what happens when the server cannot write to the binary log.
0
2592000
Sets the binary log expiration period in seconds
16184
-
For setting the size of the file cache for the .
MIXED
ROW
MariaDB and MySQL have differing .
binlog_group_commit_sync_delay
0
MySQL-only variable for controlling the wait time before synchronizing the binary log file to disk.
binlog_group_commit_sync_no_delay_count
0
MySQL-only variable for setting the maximum number of transactions to wait for before aborting the current binlog_group_commit_sync_delay delay.
binlog_gtid_simple_recovery
-
ON
MySQL-only GTID variable. MariaDB's implementation is different.
binlog_max_flush_queue_time
-
0
Specifies a timeout for reading transactions from the flush queue before continuing with group commit and syncing log to disk.
ON
-
For optimized kernel thread scheduling.
binlog_order_commits
-
ON
Determines whether transactions may be committed in parallel.
NO_LOG
MINIMAL
Determines the amount of table metadata added to the binary log with row-based logging.
binlog_row_value_options
-
(empty)
Permits an alternative binlog format for JSON document updates.
binlog_rows_query_log_events
-
OFF
MySQL-only variable for logging extra information in row-based logging.
binlog_transaction_dependency_history_size
-
25000
Maximum number of row hashes kept for looking up transactions that last modified a given row.
binlog_transaction_dependency_tracking
-
COMMIT_ORDER
For determining how to best use the slave's multithreaded applier.
block_encryption_mode
-
aes-128-ecb
MySQL-only variable for controlling the block encryption mode for block-based algorithms.
caching_sha2_password*
-
*
For use with MySQL's SHA-256 authentication with caching.
latin1 or utf8
utf8mb4
MySQL 8.0 defaults to the utf8mb4 .
ON
-
Permits disabling constraint checks, for example when loading a table that violates some constraints that you plan to fix later.
check_proxy_users
OFF
MySQL-only variable for controlling whether the server performs proxy user mapping for authentication plugins.
latin1_swedish_ci or utf8_general_ci
utf8mb4_0900_ai_ci
MySQL 8.0 defaults to the utf8mb4 .
100
-
MariaDB supports .
6
-
MariaDB supports .
DEFAULT_STRATEGY
-
MariaDB supports .
OFF
-
MariaDB supports .
cte_max_recursion_depth
-
1000
When MySQL 8.0 introduced they used a different name. MariaDB's variable is called .
%Y-%m-%d
-
Unused variable removed in MySQL 8.0
%Y-%m-%d
-
Unused variable removed in MySQL 8.0
15
-
The Aria storage engine is only available in MariaDB.
4
-
The Aria storage engine is only available in MariaDB.
50000000
-
The Aria storage engine is only available in MariaDB.
10000
-
The Aria storage engine is only available in MariaDB.
OFF
-
Disable system thread alarm calls, for debugging or testing.
default_authentication_plugin
-
caching_sha2_password
MySQL 8 introduced a new authentication plugin.
default_collation_for_utf8mb4
-
utf8mb4_0900_ai_ci
For internal use in MySQL 8 replication.
empty
-
For use with MariaDB's .
empty
-
For handling incompatibilities between MariaDB's and the old regex library.
empty
InnoDB
Default storage engine used for tables created with .
disabled_storage_engines
empty
MySQL-only variable for disabling specific storage engines.
OFF
ON
MariaDB password expiration is off by default, and by default does not disconnect a client when a password has expired.
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
end_markers_in_json
-
OFF
MySQL-only variable for adding end markers to JSON output.
enforce_gtid_consistency
-
OFF
MariaDB and MySQL have different .
none
Forces the use of a particular storage engine for new tables.
0
200
Variable for tuning when the optimizer should switch from using index dives to index statistics for qualifying rows estimation.
OFF
ON
MySQL enables the event scheduler by default.
100
-
Used for determining expensive queries for optimization.
1
-
Introduced in the .
0
-
Introduced in the .
1048576
1024
MariaDB increases the maximum length for a result from 1K to 1M.
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
64
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
gtid_executed
-
empty
MariaDB and MySQL have different .
gtid_executed_compression_period
-
1000
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
gtid_mode
-
OFF
MariaDB and MySQL have different .
gtid_next
-
AUTOMATIC
MariaDB and MySQL have different .
gtid_owned
-
empty
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
gtid_purged
-
empty
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
YES
-
MySQL has removed the function.
MariaDB's version indicates whether YaSSL or openssl was used. MySQL's is a synonym for have_ssl.
YES
-
MySQL has removed the .
have_statement_timeout
-
Whether MySQL's statement execution timeout feature is available.
YES
DISABLED
MySQL has removed symlink support.
histogram_generation_max_mem_size
-
20000000
Added when MySQL 8 introduced . MariaDB uses
0
-
MariaDB introduced .
SINGLE_PREC_HB
-
MariaDB introduced .
0
-
Time in seconds that the server waits for idle read-only transactions.
0
-
Time in seconds that the server waits for idle transactions.
0
-
Time in seconds that the server waits for idle write transactions.
OFF
-
Ignored and removed in MySQL 8.
1000
-
Controls the optimization.
0
-
Set to 1 if you are in a transaction, and 0 if not.
information_schema_stats_expiry
-
86400
Time until MySQL Information Schema cached statistics expire.
10.000000
10
Adaptive flushing is enabled when this low water mark percentage of the redo log capacity is reached. MariaDB's variable is a , MySQL's an .
OFF
ON
Defaulting to OFF is a performance improvement especially for , , , or operations
-
150000
Deprecated and ignored in and removed in .
innodb_api_*
-
*
Specific to MySQL's memcached, removed in .
1
2
MariaDB has an extra mode, 3, for skipping the rollback of connected transactions. MySQL defaults to row-based replication, so can safely use 2.
-
1
Deprecated and ignored in and removed in since the original reasons for introducing no longer apply.
full_crc32
crc32
fullcrc32 permits encryption to be supported over a SPATIAL INDEX, which crc32 does not support.
-
0
Deprecated and ignored in and removed in .
*
-
Introduced with MariaDB's .
-
5000
Deprecated and ignored in and removed in .
Full
-
How to report deadlocks.
innodb_dedicated_server
-
OFF
MySQL option that automatically configures various settings if the server is a dedicated InnoDB database server.
1
-
Default encryption key id used for table encryption. See .
*
-
MariaDB can .
innodb_directories
-
(empty)
Used to search for tablespace files when moving or restoring a new location.
OFF
-
Tell InnoDB to stop any writes to disk.
1
-
See MariaDB's .
600
-
MariaDB's fatal semaphore timeout is configurable.
O_DIRECT
fsync
MariaDB InnoDB flushing method by default on Unix systems bypasses the file system cache for improved performance in most cases.
1
0
MySQL 8 by default now assumes the use of an SSD device.
OFF
-
If set to 1 in MariaDB (0 is default) CREATE TABLEs without a primary or unique key where all keyparts are NOT NULL will not be accepted, and will return an error.
OFF
-
MariaDB has support for .
add_drop_reorder
-
See .
-
ON
Deprecated and ignored in and removed in , as there is no reason to allow checksums to be disabled on the redo log.
-
ON
Deprecated and ignored in and removed in as part of the InnoDB redo log performance improvements.
-
2
Deprecated and ignored in and removed in as part of the InnoDB redo log performance improvements.
innodb_log_spin_*
-
*
MySQL variables for constraining CPU usage while waiting for flushed redo.
innodb_log_wait_for_flush_spin_hwm
-
*
MySQL variable for constraining CPU usage while waiting for flushed redo.
75
90
MySQL 8 increased the default to 90.
0
10
MySQL 8 increased the default to 10.
10485760
1073741824
reduced the limit for when an undo tablespace is marked for truncation.
Autosized (2000)
Autosized (4000)
In most systems, autosized based on the setting, which differs between MariaDB and MySQL.
-
1
Deprecated and ignored in and removed in as the original reasons for splitting the buffer pool have mostly gone away.
OFF
-
MariaDB includes the Facebook prefix index queries optimization.
innodb_print_ddl_logs
-
OFF
MySQL option for writing DDL logs to stderr.
ON
-
Whether to set tables to read-only.
innodb_redo_log_encrypt
-
OFF
MySQL 8 has also now introduced redo log encryption, but used a different name. The equivalent option in MariaDB is .
-
0
Deprecated and ignored in and removed in .
-
128
Removed in MariaDB as part of the InnoDB cleanup. It makes sense to always create and use the maximum number of rollback segments.
4
6
MariaDB changed the default from 6 to 4 based on extensive benchmarking.
0
-
MariaDB option to control the calculation of new statistics.
ON
-
Enabling gives a larger sample of pages for larger tables for the purposes of index statistics calculation.
-
1
Deprecated and ignored in and removed in .
-
10000
Deprecated and ignored in and removed in .
innodb_undo_log_encrypt
-
OFF
MySQL option for encrypting undo logs residing in separate undo tablespaces.
OFF
ON
MySQL 8 changes the default to ON, marking larger undo logs for truncation.
0
2
Number of tablespace files used for dividing up the undo logs. MySQL 8 has deprecated this setting, and increased the default (and minimum) to 2.
ON
-
are a faster alternative to innodb_doublewrite and MariaDB automatically detects when supporting SSD cards are used.
internal_tmp_disk_storage_engine
-
INNODB
MySQL uses this variable to set the storage engine for on-disk internal temporary tables.
internal_tmp_mem_storage_engine
-
TEMPTABLE
MySQL and MariaDB use different formats for temporary tables. In MariaDB, the performs a similar function.
2097152
-
Maximum size in bytes of the query buffer. See .
2
-
For determining the join algorithms. See .
134217728
8388608
Size of the buffer for the index blocks used by MyISAM tables and shared for all threads.
512
-
Number of hash buckets for open and changed files.
0
-
The number of segments in a key cache. See .
keyring_operations
-
ON
Whether MySQL 8's keyring operations are enabled.
-
empty
MariaDB and MySQL have different .
ON
OFF
MySQL no longer supports LOAD DATA LOCAL by default.
86400
31536000
MariaDB has reduced the timeout for acquiring metadata locks.
OFF
ON
MySQL 8 enables the by default.
OFF
-
MariaDB setting for whether or not the can be compressed.
256
-
Minimum length of sql statement (in statement mode) or record (in row mode) that can be compressed. See .
log_bin_use_v1_row_events
-
OFF
MySQL-only variable showing whether or not MySQL's version 2 binary logging format is being used.
sp
-
Disable logging of certain statements to the .
log_error_services
-
log_filter_internal; log_sink_internal
Components to enable for MySQL error logging.
log_error_verbosity
-
3
MySQL variable for setting verbosity of error, warning, and note messages in the error log.
OFF
ON
MySQL 8 has by default enabled of updates a slave receives from a master.
ON
OFF
MariaDB logs slow admin statements to the by default.
admin,call,slave,sp
-
Disable logging of certain statements to the .
admin, filesort, filesort_on_disk, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk
-
For slow query log filtering.
1
-
Limits the number of queries logged to the .
ON
OFF
MariaDB logs slow slave statements to the by default.
empty
-
Controls information to be added to the . See also .
log_statements_unsafe_for_binlog
-
ON
MySQL setting for controlling whether binlog warnings are written to the error log.
log_syslog*
platform-dependent
-
MySQL variables with settings for writing to syslog.
24576
-
Size in bytes of the transaction coordinator log, defined in multiples of 4096.
log_throttle_queries_not_using_indexes
-
0
MySQL-only variable for limiting the number of statements without indexes written to the slow query log.
log_timestamps
-
UTC
MySQL-only variable controlling the timezone for certain logging conditions.
2
-
MySQL 8 has replaced with log_error_verbosity.
mandatory_roles
-
(empty)
MySQL variable for assigning to all users.
master_info_repository
-
TABLE
Whether slave logs master status and connection info to a table or a file.
16M
64M
64
1024
Specifies the maximum number of messages stored for display by and statements.
max_execution_time
-
0
MySQL renamed the max_statement_time variable.
64
1024
Used to decide which algorithm to choose when sorting rows. If the total size of the column data, not including columns that are part of the sort, is less than max_length_for_sort_data, then these are added to the sort key. This can speed up the sort as there's no need to re-read the same row again later. Setting the value too high can slow things down as there will be a higher disk activity for doing the sort.
4294967295
-
Maximum number of failed connections attempts before no more are permitted.
max_points_in_geometry
-
65536
Maximum points_per_circle for MySQL's ST_Buffer_Strategy() function.
4294967295
-
Maximum number of iterations when executing recursive queries.
1073741824
0
Can be set by session in MariaDB.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
The most key seeks required when searching with an index, regardless of the actual index cardinality. If this value is set lower than its default and maximum, indexes will tend to be preferred over table scans.
9223372036854775807
-
Amount of memory a single user session is allowed to allocate.
0
-
Maximum time in seconds that a query can execute before being aborted. MySQL used to have a variable of this name before renaming it max_execution_time.
32
-
Unused variable removed in MySQL.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
Read lock requests will be permitted for processing after this many write locks.
262144
-
Size of buffer to use when using multi-range read with range access. See .
1024
-
Block size used for index pages.
BACKUP,QUICK
OFF
MyISAM recovery mode.
134216704
8388608
Size in bytes of the buffer allocated when creating or sorting indexes on a MyISAM table.
mysql_native_password_proxy_users
-
OFF
Whether MySQL's authentication plugin supports proxy users. I
ON
Causes MariaDB to use the MySQL-5.6 low level formats for , and instead of the + version.
new
-
OFF
Used for backward-compatibility with MySQL 4.1, not present in MariaDB.
mysqlx+*
-
*
MySQL's X plugin related variables.
ngram_token_size
-
2
Sets the n-gram token size for MySQL's n-gram full-text parser.
offline_mode
-
OFF
MySQL settting for specifying whether the server should run in offline mode.
DEFAULT
OFF
An alias for .
Empty string
-
Used for getting MariaDB to emulate behavior from an old version of MySQL or MariaDB. See .
OFF
-
MySQL 8 is no longer compatible with the old pre-MySQL 4.1 form of password hashing.
8
-
If the optimizer needs to enumerate a join prefix of this size or larger, then it will try aggressively prune away the search space.
100
-
Controls number of record samples to check condition selectivity.
A series of flags for controlling the query optimizer. MariaDB has introduced a number of new settings.
optimizer_trace_*
-
*
MySQL has more settings for optimizer tracing.
4
-
Controls which statistics can be used by the optimizer when looking for the best query execution plan.
original_commit_timestamp
-
*
Used by MySQL 8 for .
parser_max_mem_size
-
4294967295 (32-bit) or 18446744073709547520 (64-bit)
MySQL variable for limiting memory available to the parser.
password_*
-
*
Controls reuse of previous passwords in MySQL.
OFF
ON
The is off by default in MariaDB.
Many performance schema variables are autoset in MySQL, and MySQL has a different version, with additional variables.
One less than the server maturity
-
Minimum acceptable plugin maturity.
5
-
Time in seconds between sending progress reports to the client for time-consuming statements.
(empty)
-
Enable for these source networks.
16384
8192
Size in bytes of the extra blocks allocated during query parsing and execution (after query_prealloc_size is used up).
*
-
MySQL has removed the .
24576
8192
Size in bytes of the persistent buffer for query parsing and execution, allocated on connect and freed on disconnect.
range_optimizer_max_mem_size
-
8388608
MySQL-only variable setting a limit on the range optimizer's memory usage.
rbr_exec_mode
-
STRICT
MySQL-only variable for determining the handling of certain key errors.
0
-
Permits restricting the speed at which the slave reads the binlog from the master.
regexp_*
-
*
Memory and time limits for regular expression matching operations.
relay_log_info_repository
-
TABLE
MySQL-only variable determining whether the slave's position in the relay logs is written to a file or table.
ON
-
Tells the slave to reproduce annotate_rows_events received from the master in its own binary log.
empty string
-
See .
empty string
-
See .
replicate
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
result_metadata
-
FULL
Determine whether the server returns result set metadata for connections where this is optional.
8388608
-
See .
rpl_read_size
-
8192
Minimum data in bytes read from the binary and relay log files.
-
-
MariaDB includes without the need to install a plugin.
rpl_stop_slave_timeout
-
31536000
Controls the time that waits before timing out.
*
-
The S3 storage engine is only available in MariaDB.
schema_definition_cache
-
256
Limits the number of schema definition objects kept in the dictionary object cache.
ON
-
Removed in MySQL.
NO
-
MariaDB-only option permitting the restricting of direct setting of a session timestamp..
server_id_bits
-
server_id
MySQL-only variable for use in MySQL Cluster.
server_uuid
-
UUID
MySQL-only variable containing the UUID.
session_track_gtids
-
OFF
MySQL-only variables for tracking gtid changes. MariaDB and MySQL's gtid implementation is different.
sha256_password_proxy_users
-
OFF
MySQL-only variable determining whether the sha256_password plugin supports proxy users.
show_create_table_verbosity
-
OFF
Option to cause to display ROW_FORMAT in all cases.
show_old_temporals
-
OFF
MySQL-only variable for determining whether SHOW CREATE TABLE output should include comments for old format temporal columns.
OFF
-
See .
OFF
-
See .
slave_allow_batching
-
OFF
MySQL-only replication variable.
slave_checkpoint_group
-
512
MySQL-only replication variable.
slave_checkpoint_period
-
300
MySQL-only replication variable.
IDEMPOTENT
-
Modes for how replication of DDL events should be executed.
0
-
For configuring .
3600
60
MySQL reduced the timeout to 60s.
131072
-
For configuring .
0
-
Only available as an option in MySQL.
0.000000
-
MariaDB setting to abort a query that has taken more than this in seconds to run on the replica.
optimistic
-
Controls what transactions are applied in parallel when using .
0
-
For configuring .
slave_parallel_type
-
DATABASE
MySQL-only replication variable.
slave_pending_jobs_size_max
-
16777216
MySQL-only replication variable.
slave_preserve_commit_order
-
OFF
MySQL-only replication variable.
slave_rows_search_algorithms
-
INDEX_SCAN, HASH_SCAN
MySQL-only replication variable.
NO
See for a description and use-case for this setting.
1213,1205
-
When an error occurs during a transaction on the slave, replication usually halts. By default, transactions that caused a deadlock or elapsed lock wait timeout will be retried. One can add other errors to the list of errors that should be retried by adding a comma-separated list of error numbers to this variable.
0
-
Interval in seconds for the slave SQL thread to retry a failed transaction due to a deadlock, elapsed lock wait timeout or an error listed in slave_transaction_retry_errors.
2097152
262144
The default sort buffer allocated has been reduced in MySQL.
OFF
-
Adds an implicit IF EXISTS to ALTER, RENAME and DROP of TABLES, VIEWS, FUNCTIONS and PACKAGES
STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_ENGINE_SUBSTITUTION
See .
ssl_fips_mode
-
OFF
Whether FIPS mode is enabled on the server side.
ON
-
See .
InnoDB
-
Alias for , removed in MySQL.
ON
-
In MariaDB, when password validation plugins are enabled, reject passwords that cannot be validated (passwords specified as a hash).
stored_program_definition_cache
-
256
Limits the number of stored program definition objects kept in the dictionary object cache.
super_read_only
-
OFF
MySQL variable for prohibiting client updates from users with the SUPER privilege.
0
1
MySQL synchronizes all actions to the binary log before they are committed.
1
-
.frm files have been removed in MySQL.
ERROR
-
MariaDB has
DEFAULT
-
MariaDB has
400
-1 (autosized)
Number of table definitions that can be cached.
8
16
Maximum number of table cache instances.
tablespace_definition_cache
-
256
Limits the number of tablespace definition objects kept in the dictionary object cache.
0
-
Interval, in seconds, between when successive keep-alive packets are sent if no acknowledgement is received.
0
-
Number of unacknowledged probes to send before considering the connection dead and notifying the application layer.
0
-
Set the TCP_NODELAY option (disable Nagle's algorithm) on socket.
1
-
Timeout, in milliseconds, with no activity until the first TCP keep-alive packet is sent.
temptable_max_ram
-
1GB
Limits the RAM used by MySQL's TempTable storage engine.
Autosized
-1 (autosized)
MariaDB uses an .
10
-
Removed in MySQL 5.7.
0
-
Better precision for the data in the .
0
-
Better precision for the data in the .
60
-
See .
65536
-
See .
1
-
Windows-only. See .
3
-
See .
auto
-
See .
auto
-
See .
Number of processors
16*
See . *Only available in MySQL with a commercial plugin.
500
6*
See . *Only available in MySQL with a commercial plugin.
299008
Varies
See .
%H:%i:%s
-
Removed in MySQL.
18446744073709551615
-
Max size for data for an internal temporary on-disk MyISAM or Aria table.
16777216
-
Alias for .
transaction_allow_batching
-
OFF
Variable for enabling batching of statements within the same transaction in MySQL Cluster.
transaction_isolation
-
REPEATABLE-READ
The MariaDB equivalent is .
transaction_read_only
-
OFF
The MariaDB equivalent is .
transaction_write_set_extraction
-
OFF
Unused MySQL-only variable.
REPEATABLE-READ
-
The MySQL equivalent is transaction_isolation.
OFF
-
The MySQL equivalent is transaction_read_only.
preferably_for_queries
-
Controls the use of .
OFF
-
Whether to activate MariaDB's implementation, not available in MySQL.
version_compile_zlib
-
*
Version of the zlib library compiled in.
*
-
Version of the used malloc library.
Varies
-
Permits seeing exactly which version of the source was used for a build.
*
-
Version of the used TLS library.
windowing_high_use_precision
-
*
MySQL option allowing safety to be sacrificed for speed in calculations.
*
-
is only available in MariaDB.
Variable
MySQL 8.0
Notes
Variable
Default
*
-
The Aria storage engine is only available in MariaDB.
auto_generate_certs
-
ON
Whether to automatically generate SSL key and certificate files.
avoid_temporal_upgrade
-
OFF
Determines whether ALTER TABLE implicitly upgrades temporal columns.
Autosized
Autosized
MariaDB and MySQL have different autosizing algorithms.
ON
-
Introduced in MariaDB 5.3 for replicating between MariaDB 5.3 and MySQL/MariaDB 5.1.
0
-
For use in MariaDB's .
100000
-
For use in MariaDB's .
binlog_error_action
ABORT_SERVER
MySQL-only variable for controlling what happens when the server cannot write to the binary log.
binlog_expire_logs_seconds
-
2592000
Sets the binary log expiration period in seconds
16184
-
For setting the size of the file cache for the .
MIXED
ROW
MariaDB and MySQL have differing .
binlog_group_commit_sync_delay
0
MySQL-only variable for controlling the wait time before synchronizing the binary log file to disk.
binlog_group_commit_sync_no_delay_count
0
MySQL-only variable for setting the maximum number of transactions to wait for before aborting the current binlog_group_commit_sync_delay delay.
binlog_gtid_simple_recovery
-
ON
MySQL-only GTID variable. MariaDB's implementation is different.
binlog_max_flush_queue_time
-
0
Specifies a timeout for reading transactions from the flush queue before continuing with group commit and syncing log to disk.
ON
-
For optimized kernel thread scheduling.
binlog_order_commits
-
ON
Determines whether transactions may be committed in parallel.
NO_LOG
MINIMAL
Determines the amount of table metadata added to the binary log with row-based logging.
binlog_row_value_options
-
(empty)
Permits an alternative binlog format for JSON document updates.
binlog_rows_query_log_events
-
OFF
MySQL-only variable for logging extra information in row-based logging.
binlog_transaction_dependency_history_size
-
25000
Maximum number of row hashes kept for looking up transactions that last modified a given row.
binlog_transaction_dependency_tracking
-
COMMIT_ORDER
For determining how to best use the slave's multithreaded applier.
block_encryption_mode
-
aes-128-ecb
MySQL-only variable for controlling the block encryption mode for block-based algorithms.
caching_sha2_password*
-
*
For use with MySQL's SHA-256 authentication with caching.
latin1 or utf8
utf8mb4
MySQL 8.0 defaults to the utf8mb4 .
ON
-
Permits disabling constraint checks, for example when loading a table that violates some constraints that you plan to fix later.
check_proxy_users
OFF
MySQL-only variable for controlling whether the server performs proxy user mapping for authentication plugins.
latin1_swedish_ci or utf8_general_ci
utf8mb4_0900_ai_ci
MySQL 8.0 defaults to the utf8mb4 .
100
-
MariaDB supports .
6
-
MariaDB supports .
DEFAULT_STRATEGY
-
MariaDB supports .
OFF
-
MariaDB supports .
cte_max_recursion_depth
-
1000
When MySQL 8.0 introduced they used a different name. MariaDB's variable is called .
%Y-%m-%d
-
Unused variable removed in MySQL 8.0
%Y-%m-%d
-
Unused variable removed in MySQL 8.0
15
-
The Aria storage engine is only available in MariaDB.
4
-
The Aria storage engine is only available in MariaDB.
50000000
-
The Aria storage engine is only available in MariaDB.
10000
-
The Aria storage engine is only available in MariaDB.
OFF
-
Disable system thread alarm calls, for debugging or testing.
default_authentication_plugin
-
caching_sha2_password
MySQL 8 introduced a new authentication plugin.
default_collation_for_utf8mb4
-
utf8mb4_0900_ai_ci
For internal use in MySQL 8 replication.
empty
-
For use with MariaDB's .
empty
-
For handling incompatibilities between MariaDB's and the old regex library.
empty
InnoDB
Default storage engine used for tables created with .
disabled_storage_engines
empty
MySQL-only variable for disabling specific storage engines.
OFF
ON
MariaDB password expiration is off by default, and by default does not disconnect a client when a password has expired.
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
end_markers_in_json
-
OFF
MySQL-only variable for adding end markers to JSON output.
enforce_gtid_consistency
-
OFF
MariaDB and MySQL have different .
none
Forces the use of a particular storage engine for new tables.
0
200
Variable for tuning when the optimizer should switch from using index dives to index statistics for qualifying rows estimation.
OFF
ON
MySQL enables the event scheduler by default.
100
-
Used for determining expensive queries for optimization.
OFF
ON
MySQL 8 disables the old timestamp behavior.
1
-
Introduced in the .
0
-
Introduced in the .
1048576
1024
MariaDB increases the maximum length for a result from 1K to 1M.
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
64
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
gtid_executed
-
empty
MariaDB and MySQL have different .
gtid_executed_compression_period
-
1000
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
gtid_mode
-
OFF
MariaDB and MySQL have different .
gtid_next
-
AUTOMATIC
MariaDB and MySQL have different .
gtid_owned
-
empty
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
gtid_purged
-
empty
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
YES
-
MySQL has removed the function.
MariaDB's version indicates whether YaSSL or openssl was used. MySQL's is a synonym for have_ssl.
YES
-
MySQL has removed the .
have_statement_timeout
-
Whether MySQL's statement execution timeout feature is available.
YES
DISABLED
MySQL has removed symlink support.
histogram_generation_max_mem_size
-
20000000
Added when MySQL 8 introduced . MariaDB uses
0
-
MariaDB introduced .
DOUBLE_PREC_HB
-
MariaDB introduced .
0
-
Time in seconds that the server waits for idle read-only transactions.
0
-
Time in seconds that the server waits for idle transactions.
0
-
Time in seconds that the server waits for idle write transactions.
OFF
-
Ignored and removed in MySQL 8.
1000
-
Controls the optimization.
0
-
Set to 1 if you are in a transaction, and 0 if not.
information_schema_stats_expiry
-
86400
Time until MySQL Information Schema cached statistics expire.
10.000000
10
Adaptive flushing is enabled when this low water mark percentage of the redo log capacity is reached. MariaDB's variable is a , MySQL's an .
OFF
ON
Defaulting to OFF is a performance improvement especially for , , , or operations
innodb_api_*
-
*
Specific to MySQL's memcached, removed in MariaDB 10.2.
1
2
MariaDB has an extra mode, 3, for skipping the rollback of connected transactions. MySQL defaults to row-based replication, so can safely use 2.
*
-
Earlier versions of MariaDB had support for background .
full_crc32
crc32
fullcrc32 permits encryption to be supported over a SPATIAL INDEX, which crc32 does not support.
*
-
Introduced with MariaDB's .
innodb_dedicated_server
-
OFF
MySQL option that automatically configures various settings if the server is a dedicated InnoDB database server.
1
-
Default encryption key id used for table encryption. See .
*
-
MariaDB can .
innodb_directories
-
(empty)
Used to search for tablespace files when moving or restoring a new location.
OFF
-
Tell InnoDB to stop any writes to disk.
1
-
See MariaDB's .
600
-
MariaDB's fatal semaphore timeout is configurable.
(empty)
-
MariaDB 10.4 has restored this unused, deprecated variable for compatibility reasons.
1
0
MySQL 8 by default now assumes the use of an SSD device.
OFF
-
If set to 1 in MariaDB (0 is default) CREATE TABLEs without a primary or unique key where all keyparts are NOT NULL will not be accepted, and will return an error.
100
-
Up to what percentage of dirty pages in MariaDB should be flushed when InnoDB finds it has spare resources to do so.
OFF
-
MariaDB has support for .
add_drop_reorder
-
See .
(empty)
-
MariaDB 10.4 has restored this unused, deprecated variable for compatibility reasons.
VATS
-
MariaDB has an improved algorithm for deciding which of the waiting transactions should be granted a lock once it has been released.
OFF
-
Deprecated and ignored in MariaDB. Previously determined whether redo logging should be reduced when natively creating indexes or rebuilding tables.
innodb_log_spin_*
-
*
MySQL variables for constraining CPU usage while waiting for flushed redo.
innodb_log_wait_for_flush_spin_hwm
-
*
MySQL variable for constraining CPU usage while waiting for flushed redo.
75
90
MySQL 8 increased the default to 90.
0
10
MySQL 8 increased the default to 10.
10485760
1073741824
MariaDB 10.2 reduced the limit for when an undo tablespace is marked for truncation.
Autosized (2000)
Autosized (4000)
In most systems, autosized based on the setting, which differs between MariaDB and MySQL.
OFF
-
MariaDB includes the Facebook prefix index queries optimization.
innodb_print_ddl_logs
-
OFF
MySQL option for writing DDL logs to stderr.
innodb_redo_log_encrypt
-
OFF
MySQL 8 has also now introduced redo log encryption, but used a different name. The equivalent option in MariaDB is .
-
128
Removed in MariaDB as part of the InnoDB cleanup. It makes sense to always create and use the maximum number of rollback segments.
*
-
Earlier version of MariaDB included options to .
4
6
MariaDB changed the default from 6 to 4 based on extensive benchmarking.
0
-
MariaDB option to control the calculation of new statistics.
ON
-
Enabling gives a larger sample of pages for larger tables for the purposes of index statistics calculation.
innodb_undo_log_encrypt
-
OFF
MySQL option for encrypting undo logs residing in separate undo tablespaces.
OFF
ON
MySQL 8 changes the default to ON, marking larger undo logs for truncation.
128
-
Removed in MySQL 8.
0
2
Number of tablespace files used for dividing up the undo logs. MySQL 8 has deprecated this setting, and increased the default (and minimum) to 2.
ON
-
are a faster alternative to innodb_doublewrite and MariaDB automatically detects when supporting SSD cards are used.
internal_tmp_disk_storage_engine
-
INNODB
MySQL uses this variable to set the storage engine for on-disk internal temporary tables.
internal_tmp_mem_storage_engine
-
TEMPTABLE
MySQL and MariaDB use different formats for temporary tables. In MariaDB, the performs a similar function.
2097152
-
Maximum size in bytes of the query buffer. See block-based join algorithms.
2
-
For determining the join algorithms. See block-based join algorithms
134217728
8388608
Size of the buffer for the index blocks used by MyISAM tables and shared for all threads.
512
-
Number of hash buckets for open and changed files.
0
-
The number of segments in a key cache. See .
keyring_operations
-
ON
Whether MySQL 8's keyring operations are enabled.
-
empty
MariaDB and MySQL have different .
ON
OFF
MySQL no longer supports LOAD DATA LOCAL by default.
86400
31536000
MariaDB has reduced the timeout for acquiring metadata locks.
OFF
ON
MySQL 8 enables the by default.
OFF
-
MariaDB setting for whether or not the can be compressed.
256
-
Minimum length of sql statement (in statement mode) or record (in row mode) that can be compressed. See .
log_bin_use_v1_row_events
-
OFF
MySQL-only variable showing whether or not MySQL's version 2 binary logging format is being used.
sp
-
Disable logging of certain statements to the .
log_error_services
-
log_filter_internal; log_sink_internal
Components to enable for MySQL error logging.
log_error_verbosity
-
3
MySQL variable for setting verbosity of error, warning, and note messages in the error log.
OFF
ON
MySQL 8 has by default enabled of updates a slave receives from a master.
ON
OFF
MariaDB logs slow admin statements to the by default.
admin,call,slave,sp
-
Disable logging of certain statements to the .
admin, filesort, filesort_on_disk, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk
-
For slow query log filtering.
1
-
Limits the number of queries logged to the .
ON
OFF
MariaDB logs slow slave statements to the by default.
empty
-
Controls information to be added to the . See also .
log_statements_unsafe_for_binlog
-
ON
MySQL setting for controlling whether binlog warnings are written to the error log.
log_syslog*
platform-dependent
-
MySQL variables with settings for writing to syslog.
24576
-
Size in bytes of the transaction coordinator log, defined in multiples of 4096.
log_throttle_queries_not_using_indexes
-
0
MySQL-only variable for limiting the number of statements without indexes written to the slow query log.
log_timestamps
-
UTC
MySQL-only variable controlling the timezone for certain logging conditions.
2
-
MySQL 8 has replaced with log_error_verbosity.
mandatory_roles
-
(empty)
MySQL variable for assigning to all users.
master_info_repository
-
TABLE
Whether slave logs master status and connection info to a table or a file.
16M
64M
64
1024
Specifies the maximum number of messages stored for display by and statements.
max_execution_time
-
0
MySQL renamed the max_statement_time variable.
64
1024
Used to decide which algorithm to choose when sorting rows. If the total size of the column data, not including columns that are part of the sort, is less than max_length_for_sort_data, then these are added to the sort key. This can speed up the sort as there's no need to re-read the same row again later. Setting the value too high can slow things down as there will be a higher disk activity for doing the sort.
4294967295
-
Maximum number of failed connections attempts before no more are permitted.
max_points_in_geometry
-
65536
Maximum points_per_circle for MySQL's ST_Buffer_Strategy() function.
4294967295
-
Maximum number of iterations when executing recursive queries.
1073741824
0
Can be set by session in MariaDB.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
The most key seeks required when searching with an index, regardless of the actual index cardinality. If this value is set lower than its default and maximum, indexes will tend to be preferred over table scans.
9223372036854775807
-
Amount of memory a single user session is allowed to allocate.
0
-
Maximum time in seconds that a query can execute before being aborted. MySQL used to have a variable of this name before renaming it max_execution_time.
32
-
Unused variable removed in MySQL.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
Read lock requests will be permitted for processing after this many write locks.
262144
-
Size of buffer to use when using multi-range read with range access. See .
1024
-
Block size used for index pages.
BACKUP,QUICK
OFF
MyISAM recovery mode.
134216704
8388608
Size in bytes of the buffer allocated when creating or sorting indexes on a MyISAM table.
mysql_native_password_proxy_users
-
OFF
Whether MySQL's authentication plugin supports proxy users. I
ON
Causes MariaDB to use the MySQL-5.6 low level formats for , and instead of the MariaDB 5.3+ version.
new
-
OFF
Used for backward-compatibility with MySQL 4.1, not present in MariaDB.
mysqlx+*
-
*
MySQL's X plugin related variables.
ngram_token_size
-
2
Sets the n-gram token size for MySQL's n-gram full-text parser.
offline_mode
-
OFF
MySQL settting for specifying whether the server should run in offline mode.
DEFAULT
OFF
An alias for .
Empty string
-
Used for getting MariaDB to emulate behavior from an old version of MySQL or MariaDB. See .
OFF
-
MySQL 8 is no longer compatible with the old pre-MySQL 4.1 form of password hashing.
100
-
Controls number of record samples to check condition selectivity.
A series of flags for controlling the query optimizer. MariaDB has introduced a number of new settings.
optimizer_trace_*
-
*
MySQL has more settings for optimizer tracing.
4
-
Controls which statistics can be used by the optimizer when looking for the best query execution plan.
original_commit_timestamp
-
*
Used by MySQL 8 for .
parser_max_mem_size
-
4294967295 (32-bit) or 18446744073709547520 (64-bit)
MySQL variable for limiting memory available to the parser.
password_*
-
*
Controls reuse of previous passwords in MySQL.
OFF
ON
The is off by default in MariaDB.
Many performance schema variables are autoset in MySQL, and MySQL has a different version, with additional variables.
One less than the server maturity
-
Minimum acceptable plugin maturity.
5
-
Time in seconds between sending progress reports to the client for time-consuming statements.
(empty)
-
Enable for these source networks.
16384
8192
Size in bytes of the extra blocks allocated during query parsing and execution (after query_prealloc_size is used up).
*
-
MySQL has removed the .
24576
8192
Size in bytes of the persistent buffer for query parsing and execution, allocated on connect and freed on disconnect.
range_optimizer_max_mem_size
-
8388608
MySQL-only variable setting a limit on the range optimizer's memory usage.
rbr_exec_mode
-
STRICT
MySQL-only variable for determining the handling of certain key errors.
0
-
Permits restricting the speed at which the slave reads the binlog from the master.
regexp_*
-
*
Memory and time limits for regular expression matching operations.
relay_log_info_repository
-
TABLE
MySQL-only variable determining whether the slave's position in the relay logs is written to a file or table.
ON
-
Tells the slave to reproduce annotate_rows_events received from the master in its own binary log.
empty string
-
See .
empty string
-
See .
replicate
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
result_metadata
-
FULL
Determine whether the server returns result set metadata for connections where this is optional.
8388608
-
See .
rpl_read_size
-
8192
Minimum data in bytes read from the binary and relay log files.
-
-
MariaDB includes without the need to install a plugin.
rpl_stop_slave_timeout
-
31536000
Controls the time that waits before timing out.
*
-
The S3 storage engine is only available in MariaDB.
schema_definition_cache
-
256
Limits the number of schema definition objects kept in the dictionary object cache.
ON
-
Removed in MySQL.
NO
-
MariaDB-only option permitting the restricting of direct setting of a session timestamp..
server_id_bits
-
server_id
MySQL-only variable for use in MySQL Cluster.
server_uuid
-
UUID
MySQL-only variable containing the UUID.
session_track_gtids
-
OFF
MySQL-only variables for tracking gtid changes. MariaDB and MySQL's gtid implementation is different.
sha256_password_proxy_users
-
OFF
MySQL-only variable determining whether the sha256_password plugin supports proxy users.
show_create_table_verbosity
-
OFF
Option to cause to display ROW_FORMAT in all cases.
show_old_temporals
-
OFF
MySQL-only variable for determining whether SHOW CREATE TABLE output should include comments for old format temporal columns.
OFF
-
See .
OFF
-
See .
slave_allow_batching
-
OFF
MySQL-only replication variable.
slave_checkpoint_group
-
512
MySQL-only replication variable.
slave_checkpoint_period
-
300
MySQL-only replication variable.
IDEMPOTENT
-
Modes for how replication of DDL events should be executed.
0
-
For configuring .
3600
60
MySQL reduced the timeout to 60s.
131072
-
For configuring .
optimistic
-
Controls what transactions are applied in parallel when using .
0
-
For configuring .
slave_parallel_type
-
DATABASE
MySQL-only replication variable.
slave_pending_jobs_size_max
-
16777216
MySQL-only replication variable.
slave_preserve_commit_order
-
OFF
MySQL-only replication variable.
slave_rows_search_algorithms
-
INDEX_SCAN, HASH_SCAN
MySQL-only replication variable.
NO
See for a description and use-case for this setting.
1213,1205
-
When an error occurs during a transaction on the slave, replication usually halts. By default, transactions that caused a deadlock or elapsed lock wait timeout will be retried. One can add other errors to the list of errors that should be retried by adding a comma-separated list of error numbers to this variable.
0
-
Interval in seconds for the slave SQL thread to retry a failed transaction due to a deadlock, elapsed lock wait timeout or an error listed in slave_transaction_retry_errors.
2097152
262144
The default sort buffer allocated has been reduced in MySQL.
OFF
-
Adds an implicit IF EXISTS to ALTER, RENAME and DROP of TABLES, VIEWS, FUNCTIONS and PACKAGES
STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_ENGINE_SUBSTITUTION
See .
ssl_fips_mode
-
OFF
Whether FIPS mode is enabled on the server side.
ON
-
See .
InnoDB
-
Alias for , removed in MySQL.
ON
-
In MariaDB, when password validation plugins are enabled, reject passwords that cannot be validated (passwords specified as a hash).
stored_program_definition_cache
-
256
Limits the number of stored program definition objects kept in the dictionary object cache.
super_read_only
-
OFF
MySQL variable for prohibiting client updates from users with the SUPER privilege.
0
1
MySQL synchronizes all actions to the binary log before they are committed.
1
-
.frm files have been removed in MySQL.
ERROR
-
MariaDB has
DEFAULT
-
MariaDB has
400
-1 (autosized)
Number of table definitions that can be cached.
8
16
Maximum number of table cache instances.
tablespace_definition_cache
-
256
Limits the number of tablespace definition objects kept in the dictionary object cache.
0
-
Interval, in seconds, between when successive keep-alive packets are sent if no acknowledgement is received.
0
-
Number of unacknowledged probes to send before considering the connection dead and notifying the application layer.
0
-
Set the TCP_NODELAY option (disable Nagle's algorithm) on socket.
1
-
Timeout, in milliseconds, with no activity until the first TCP keep-alive packet is sent.
temptable_max_ram
-
1GB
Limits the RAM used by MySQL's TempTable storage engine.
Autosized
-1 (autosized)
MariaDB uses an .
0
-
Better precision for the data in the .
0
-
Better precision for the data in the .
60
-
See .
65536
-
See .
1
-
Windows-only. See .
3
-
See .
auto
-
See .
auto
-
See .
Number of processors
16*
See . *Only available in MySQL with a commercial plugin.
500
6*
See . *Only available in MySQL with a commercial plugin.
299008
Varies
See .
%H:%i:%s
-
Removed in MySQL.
18446744073709551615
-
Max size for data for an internal temporary on-disk MyISAM or Aria table.
16777216
-
Alias for .
transaction_allow_batching
-
OFF
Variable for enabling batching of statements within the same transaction in MySQL Cluster.
transaction_isolation
-
REPEATABLE-READ
The MariaDB equivalent is .
transaction_read_only
-
OFF
The MariaDB equivalent is .
transaction_write_set_extraction
-
OFF
Unused MySQL-only variable.
REPEATABLE-READ
-
The MySQL equivalent is transaction_isolation.
OFF
-
The MySQL equivalent is transaction_read_only.
preferably_for_queries
-
Controls the use of .
OFF
-
Whether to activate MariaDB's implementation, not available in MySQL.
version_compile_zlib
-
*
Version of the zlib library compiled in.
*
-
Version of the used malloc library.
Varies
-
Permits seeing exactly which version of the source was used for a build.
*
-
Version of the used TLS library.
windowing_high_use_precision
-
*
MySQL option allowing safety to be sacrificed for speed in calculations.
*
-
Galera cluster is only available in MariaDB.
Variable
MySQL 8.0
Notes
auto_generate_certs
-
ON
Whether to automatically generate SSL key and certificate files.
avoid_temporal_upgrade
-
OFF
Determines whether ALTER TABLE implicitly upgrades temporal columns.
Autosized
Autosized
MariaDB and MySQL have different autosizing algorithms.
ON
-
Introduced in MariaDB 5.3 for replicating between MariaDB 5.3 and MySQL/MariaDB 5.1.
0
-
For use in MariaDB's .
100000
-
For use in MariaDB's .
binlog_error_action
ABORT_SERVER
MySQL-only variable for controlling what happens when the server cannot write to the binary log.
binlog_expire_logs_seconds
-
2592000
Sets the binary log expiration period in seconds
16184
-
For setting the size of the file cache for the .
MIXED
ROW
MariaDB and MySQL have differing .
binlog_group_commit_sync_delay
0
MySQL-only variable for controlling the wait time before synchronizing the binary log file to disk.
binlog_group_commit_sync_no_delay_count
0
MySQL-only variable for setting the maximum number of transactions to wait for before aborting the current binlog_group_commit_sync_delay delay.
binlog_gtid_simple_recovery
-
ON
MySQL-only GTID variable. MariaDB's implementation is different.
binlog_max_flush_queue_time
-
0
Specifies a timeout for reading transactions from the flush queue before continuing with group commit and syncing log to disk.
ON
-
For optimized kernel thread scheduling.
binlog_order_commits
-
ON
Determines whether transactions may be committed in parallel.
binlog_row_metadata
-
MINIMAL
Determines the amount of table metadata added to the binary log with row-based logging.
binlog_row_value_options
-
(empty)
Permits an alternative binlog format for JSON document updates.
binlog_rows_query_log_events
-
OFF
MySQL-only variable for logging extra information in row-based logging.
binlog_transaction_dependency_history_size
-
25000
Maximum number of row hashes kept for looking up transactions that last modified a given row.
binlog_transaction_dependency_tracking
-
COMMIT_ORDER
For determining how to best use the slave's multithreaded applier.
block_encryption_mode
-
aes-128-ecb
MySQL-only variable for controlling the block encryption mode for block-based algorithms.
caching_sha2_password*
-
*
For use with MySQL's SHA-256 authentication with caching.
latin1 or utf8
utf8mb4
MySQL 8.0 defaults to the utf8mb4 .
ON
-
Permits disabling constraint checks, for example when loading a table that violates some constraints that you plan to fix later.
check_proxy_users
OFF
MySQL-only variable for controlling whether the server performs proxy user mapping for authentication plugins.
latin1_swedish_ci or utf8_general_ci
utf8mb4_0900_ai_ci
MySQL 8.0 defaults to the utf8mb4 .
100
-
MariaDB supports .
6
-
MariaDB supports .
DEFAULT_STRATEGY
-
MariaDB supports .
OFF
-
MariaDB supports .
cte_max_recursion_depth
-
1000
When MySQL 8.0 introduced they used a different name. MariaDB's variable is called .
%Y-%m-%d
-
Unused variable removed in MySQL 8.0
%Y-%m-%d
-
Unused variable removed in MySQL 8.0
15
-
The Aria storage engine is only available in MariaDB.
4
-
The Aria storage engine is only available in MariaDB.
50000000
-
The Aria storage engine is only available in MariaDB.
10000
-
The Aria storage engine is only available in MariaDB.
OFF
-
Disable system thread alarm calls, for debugging or testing.
default_authentication_plugin
-
caching_sha2_password
MySQL 8 introduced a new authentication plugin.
default_collation_for_utf8mb4
-
utf8mb4_0900_ai_ci
For internal use in MySQL 8 replication.
empty
-
For use with MariaDB's .
default_password_lifetime
0
MySQL-only variable determining how long passwords are valid for before expiring.
empty
-
For handling incompatibilities between MariaDB's and the old regex library.
empty
InnoDB
Default storage engine used for tables created with .
disabled_storage_engines
empty
MySQL-only variable for disabling specific storage engines.
disconnect_on_expired_password
-
ON
MySQL permits passwords to be expired.
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
end_markers_in_json
-
OFF
MySQL-only variable for adding end markers to JSON output.
enforce_gtid_consistency
-
OFF
MariaDB and MySQL have different .
none
Forces the use of a particular storage engine for new tables.
0
200
Variable for tuning when the optimizer should switch from using index dives to index statistics for qualifying rows estimation.
OFF
ON
MySQL enables the event scheduler by default.
100
-
Used for determining expensive queries for optimization.
OFF
ON
MySQL 8 disables the old timestamp behavior.
1
-
Introduced in the .
0
-
Introduced in the .
1048576
1024
MariaDB increases the maximum length for a result from 1K to 1M.
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
gtid_executed
-
empty
MariaDB and MySQL have different .
gtid_executed_compression_period
-
1000
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
gtid_mode
-
OFF
MariaDB and MySQL have different .
gtid_next
-
AUTOMATIC
MariaDB and MySQL have different .
gtid_owned
-
empty
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
gtid_purged
-
empty
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
YES
-
MySQL has removed the function.
MariaDB's version indicates whether YaSSL or openssl was used. MySQL's is a synonym for have_ssl.
YES
-
MySQL has removed the .
have_statement_timeout
-
Whether MySQL's statement execution timeout feature is available.
YES
DISABLED
MySQL has removed symlink support.
histogram_generation_max_mem_size
-
20000000
Added when MySQL 8 introduced . MariaDB uses
0
-
MariaDB introduced .
SINGLE_PREC_HB
-
MariaDB introduced .
0
-
Time in seconds that the server waits for idle read-only transactions.
0
-
Time in seconds that the server waits for idle transactions.
0
-
Time in seconds that the server waits for idle write transactions.
OFF
-
Ignored and removed in MySQL 8.
0
-
Set to 1 if you are in a transaction, and 0 if not.
information_schema_stats_expiry
-
86400
Time until MySQL Information Schema cached statistics expire.
10.000000
10
Adaptive flushing is enabled when this low water mark percentage of the redo log capacity is reached. MariaDB's variable is a , MySQL's an .
innodb_api_*
-
*
Specific to MySQL's memcached, removed in MariaDB 10.2.
1
2
MariaDB has an extra mode, 3, for skipping the rollback of connected transactions. MySQL defaults to row-based replication, so can safely use 2.
*
-
MariaDB has support for .
ON
-
Deprecated option removed in MySQL.
*
-
Introduced with MariaDB's .
innodb_dedicated_server
-
OFF
MySQL option that automatically configures various settings if the server is a dedicated InnoDB database server.
1
-
Default encryption key id used for table encryption. See .
*
-
MariaDB can .
innodb_directories
-
(empty)
Used to search for tablespace files when moving or restoring a new location.
OFF
-
Tell InnoDB to stop any writes to disk.
1
-
See MariaDB's .
600
-
MariaDB's fatal semaphore timeout is configurable.
1
0
MySQL 8 by default now assumes the use of an SSD device.
OFF
-
If set to 1 in MariaDB (0 is default) CREATE TABLEs without a primary or unique key where all keyparts are NOT NULL will not be accepted, and will return an error.
100
-
Up to what percentage of dirty pages in MariaDB should be flushed when InnoDB finds it has spare resources to do so.
OFF
-
MariaDB has support for .
VATS
-
MariaDB has an improved algorithm for deciding which of the waiting transactions should be granted a lock once it has been released.
OFF
-
Deprecated option in MariaDB for disabling gap locking for searches and index scans. Deprecated in MariaDB, use instead.
ON
-
Whether redo logging should be reduced when natively creating indexes or rebuilding tables
innodb_log_spin_*
-
*
MySQL variables for constraining CPU usage while waiting for flushed redo.
innodb_log_wait_for_flush_spin_hwm
-
*
MySQL variable for constraining CPU usage while waiting for flushed redo.
75
90
MySQL 8 increased the default to 90.
0
10
MySQL 8 increased the default to 10.
10485760
1073741824
MariaDB 10.2 reduced the limit for when an undo tablespace is marked for truncation.
Autosized (2000)
Autosized (4000)
In most systems, autosized based on the setting, which differs between MariaDB and MySQL.
OFF
-
MariaDB includes the Facebook prefix index queries optimization.
innodb_print_ddl_logs
-
OFF
MySQL option for writing DDL logs to stderr.
innodb_redo_log_encrypt
-
OFF
MySQL 8 has also now introduced redo log encryption, but used a different name. The equivalent option in MariaDB is .
*
-
MariaDB includes options to .
4
6
MariaDB changed the default from 6 to 4 based on extensive benchmarking.
0
-
MariaDB option to control the calculation of new statistics.
8
-
Deprecated MariaDB option for control over index distribution statistics.
ON
-
Enabling gives a larger sample of pages for larger tables for the purposes of index statistics calculation.
innodb_undo_log_encrypt
-
OFF
MySQL option for encrypting undo logs residing in separate undo tablespaces.
OFF
ON
MySQL 8 changes the default to ON, marking larger undo logs for truncation.
128
-
Removed in MySQL 8.
0
2
Number of tablespace files used for dividing up the undo logs. MySQL 8 has deprecated this setting, and increased the default (and minimum) to 2.
ON
-
are a faster alternative to innodb_doublewrite and MariaDB automatically detects when supporting SSD cards are used.
internal_tmp_disk_storage_engine
-
INNODB
MySQL uses this variable to set the storage engine for on-disk internal temporary tables.
internal_tmp_mem_storage_engine
-
TEMPTABLE
MySQL and MariaDB use different formats for temporary tables. In MariaDB, the performs a similar function.
2097152
-
Maximum size in bytes of the query buffer. See block-based join algorithms.
2
-
For determining the join algorithms. See block-based join algorithms.
134217728
8388608
Size of the buffer for the index blocks used by MyISAM tables and shared for all threads.
512
-
Number of hash buckets for open and changed files.
0
-
The number of segments in a key cache. See .
keyring_operations
-
ON
Whether MySQL 8's keyring operations are enabled.
-
empty
MariaDB and MySQL have different .
ON
OFF
MySQL no longer supports LOAD DATA LOCAL by default.
86400
31536000
MariaDB has reduced the timeout for acquiring metadata locks.
OFF
ON
MySQL 8 enables the by default.
OFF
-
MariaDB setting for whether or not the can be compressed.
256
-
Minimum length of sql statement (in statement mode) or record (in row mode) that can be compressed. See .
log_bin_use_v1_row_events
-
OFF
MySQL-only variable showing whether or not MySQL's version 2 binary logging format is being used.
sp
-
Disable logging of certain statements to the .
log_error_services
-
log_filter_internal; log_sink_internal
Components to enable for MySQL error logging.
log_error_verbosity
-
3
MySQL variable for setting verbosity of error, warning, and note messages in the error log.
OFF
ON
MySQL 8 has by default enabled of updates a slave receives from a master.
ON
OFF
MariaDB logs slow admin statements to the by default.
admin,call,slave,sp
-
Disable logging of certain statements to the .
admin, filesort, filesort_on_disk, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk
-
For slow query log filtering.
1
-
Limits the number of queries logged to the .
ON
OFF
MariaDB logs slow slave statements to the by default.
empty
-
Controls information to be added to the . See also .
log_statements_unsafe_for_binlog
-
ON
MySQL setting for controlling whether binlog warnings are written to the error log.
log_syslog*
platform-dependent
-
MySQL variables with settings for writing to syslog.
24576
-
Size in bytes of the transaction coordinator log, defined in multiples of 4096.
log_throttle_queries_not_using_indexes
-
0
MySQL-only variable for limiting the number of statements without indexes written to the slow query log.
log_timestamps
-
UTC
MySQL-only variable controlling the timezone for certain logging conditions.
2
-
MySQL 8 has replaced with log_error_verbosity.
mandatory_roles
-
(empty)
MySQL variable for assigning to all users.
master_info_repository
-
TABLE
Whether slave logs master status and connection info to a table or a file.
16M
64M
64
1024
Specifies the maximum number of messages stored for display by and statements.
max_execution_time
-
0
MySQL renamed the max_statement_time variable.
64
1024
Used to decide which algorithm to choose when sorting rows. If the total size of the column data, not including columns that are part of the sort, is less than max_length_for_sort_data, then these are added to the sort key. This can speed up the sort as there's no need to re-read the same row again later. Setting the value too high can slow things down as there will be a higher disk activity for doing the sort.
16777216
-
Maximum size for parameter values sent with mysql_stmt_send_long_data(). Removed in MySQL 5.6.
max_points_in_geometry
-
65536
Maximum points_per_circle for MySQL's ST_Buffer_Strategy() function.
4294967295
-
Maximum number of iterations when executing recursive queries.
1073741824
0
Can be set by session in MariaDB.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
The most key seeks required when searching with an index, regardless of the actual index cardinality. If this value is set lower than its default and maximum, indexes will tend to be preferred over table scans.
9223372036854775807
-
Amount of memory a single user session is allowed to allocate.
0
-
Maximum time in seconds that a query can execute before being aborted. MySQL used to have a variable of this name before renaming it max_execution_time.
32
-
Unused variable removed in MySQL.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
Read lock requests will be permitted for processing after this many write locks.
262144
-
Size of buffer to use when using multi-range read with range access. See .
1024
-
Unused variable removed in MySQL.
1024
-
Block size used for index pages.
BACKUP,QUICK
OFF
MyISAM recovery mode.
134216704
8388608
Size in bytes of the buffer allocated when creating or sorting indexes on a MyISAM table.
mysql_native_password_proxy_users
-
OFF
Whether MySQL's authentication plugin supports proxy users. I
ON
Causes MariaDB to use the MySQL-5.6 low level formats for , and instead of the MariaDB 5.3+ version.
new
-
OFF
Used for backward-compatibility with MySQL 4.1, not present in MariaDB.
mysqlx+*
-
*
MySQL's X plugin related variables.
ngram_token_size
-
2
Sets the n-gram token size for MySQL's n-gram full-text parser.
offline_mode
-
OFF
MySQL settting for specifying whether the server should run in offline mode.
DEFAULT
OFF
From MariaDB 10.3, an alias for .
Empty string
-
Used for getting MariaDB to emulate behavior from an old version of MySQL or MariaDB. See .
OFF
-
MySQL 8 is no longer compatible with the old pre-MySQL 4.1 form of password hashing.
100
-
Controls number of record samples to check condition selectivity.
A series of flags for controlling the query optimizer. MariaDB has introduced a number of new settings.
optimizer_trace_*
-
O*
MySQL-only variables for optimizer tracing.
1
-
Controls which statistics can be used by the optimizer when looking for the best query execution plan.
original_commit_timestamp
-
*
Used by MySQL 8 for .
parser_max_mem_size
-
4294967295 (32-bit) or 18446744073709547520 (64-bit)
MySQL variable for limiting memory available to the parser.
password_*
-
*
Controls reuse of previous passwords in MySQL.
OFF
ON
The is off by default in MariaDB.
Many performance schema variables are autoset in MySQL, and MySQL has a different version, with additional variables.
One less than the server maturity
-
Minimum acceptable plugin maturity.
5
-
Time in seconds between sending progress reports to the client for time-consuming statements.
(empty)
-
Enable for these source networks.
16384
8192
Size in bytes of the extra blocks allocated during query parsing and execution (after query_prealloc_size is used up).
*
-
MySQL has removed the .
24576
8192
Size in bytes of the persistent buffer for query parsing and execution, allocated on connect and freed on disconnect.
range_optimizer_max_mem_size
-
8388608
MySQL-only variable setting a limit on the range optimizer's memory usage.
rbr_exec_mode
-
STRICT
MySQL-only variable for determining the handling of certain key errors.
0
-
Permits restricting the speed at which the slave reads the binlog from the master.
regexp_*
-
*
Memory and time limits for regular expression matching operations.
relay_log_info_repository
-
TABLE
MySQL-only variable determining whether the slave's position in the relay logs is written to a file or table.
ON
-
Tells the slave to reproduce annotate_rows_events received from the master in its own binary log.
empty string
-
See .
empty string
-
See .
replicate
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
require_secure_transport
-
OFF
MySQL-only variable determining whether client to server connections need to be secure.
result_metadata
-
FULL
Determine whether the server returns result set metadata for connections where this is optional.
8388608
-
See .
rpl_read_size
-
8192
Minimum data in bytes read from the binary and relay log files.
-
-
MariaDB 10.3 includes without the need to install a plugin.
rpl_stop_slave_timeout
-
31536000
Controls the time that waits before timing out.
schema_definition_cache
-
256
Limits the number of schema definition objects kept in the dictionary object cache.
ON
-
Removed in MySQL.
NO
-
MariaDB-only option permitting the restricting of direct setting of a session timestamp..
server_id_bits
-
server_id
MySQL-only variable for use in MySQL Cluster.
server_uuid
-
UUID
MySQL-only variable containing the UUID.
session_track_gtids
-
OFF
MySQL-only variables for tracking gtid changes. MariaDB and MySQL's gtid implementation is different.
sha256_password_proxy_users
-
OFF
MySQL-only variable determining whether the sha256_password plugin supports proxy users.
show_create_table_verbosity
-
OFF
Option to cause to display ROW_FORMAT in all cases.
show_old_temporals
-
OFF
MySQL-only variable for determining whether SHOW CREATE TABLE output should include comments for old format temporal columns.
OFF
-
See .
OFF
-
See .
slave_allow_batching
-
OFF
MySQL-only replication variable.
slave_checkpoint_group
-
512
MySQL-only replication variable.
slave_checkpoint_period
-
300
MySQL-only replication variable.
IDEMPOTENT
-
Modes for how replication of DDL events should be executed.
0
-
For configuring .
3600
60
MySQL reduced the timeout to 60s.
131072
-
For configuring .
conservative
-
Controls what transactions are applied in parallel when using .
0
-
For configuring .
slave_parallel_type
-
DATABASE
MySQL-only replication variable.
slave_pending_jobs_size_max
-
16777216
MySQL-only replication variable.
slave_preserve_commit_order
-
OFF
MySQL-only replication variable.
slave_rows_search_algorithms
-
INDEX_SCAN, HASH_SCAN
MySQL-only replication variable.
NO
See for a description and use-case for this setting.
1213,1205
-
When an error occurs during a transaction on the slave, replication usually halts. By default, transactions that caused a deadlock or elapsed lock wait timeout will be retried. One can add other errors to the list of errors that should be retried by adding a comma-separated list of error numbers to this variable.
0
-
Interval in seconds for the slave SQL thread to retry a failed transaction due to a deadlock, elapsed lock wait timeout or an error listed in slave_transaction_retry_errors.
2097152
262144
The default sort buffer allocated has been reduced in MySQL.
STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_ENGINE_SUBSTITUTION
See .
ssl_fips_mode
-
OFF
Whether FIPS mode is enabled on the server side.
ON
-
See .
InnoDB
-
Alias for , removed in MySQL.
ON
-
In MariaDB, when password validation plugins are enabled, reject passwords that cannot be validated (passwords specified as a hash).
stored_program_definition_cache
-
256
Limits the number of stored program definition objects kept in the dictionary object cache.
super_read_only
-
OFF
MySQL variable for prohibiting client updates from users with the SUPER privilege.
0
1
MySQL synchronizes all actions to the binary log before they are committed.
1
-
.frm files have been removed in MySQL.
ERROR
-
MariaDB has
DEFAULT
-
MariaDB has
400
-1 (autosized)
Number of table definitions that can be cached.
8
16
Maximum number of table cache instances.
tablespace_definition_cache
-
256
Limits the number of tablespace definition objects kept in the dictionary object cache.
0
-
Interval, in seconds, between when successive keep-alive packets are sent if no acknowledgement is received.
0
-
Number of unacknowledged probes to send before considering the connection dead and notifying the application layer.
0
-
Timeout, in milliseconds, with no activity until the first TCP keep-alive packet is sent.
temptable_max_ram
-
1GB
Limits the RAM used by MySQL's TempTable storage engine.
Autosized
-1 (autosized)
MariaDB uses an .
10
-
Removed in MySQL 5.7.
60
-
See .
65536
-
See .
1
-
Windows-only. See .
3
-
See .
auto
-
See .
auto
-
See .
Number of processors
16*
See . *Only available in MySQL with a commercial plugin.
500
6*
See . *Only available in MySQL with a commercial plugin.
299008
Varies
See .
%H:%i:%s
-
Removed in MySQL.
OFF
-
Removed in MySQL.
tls_version
-
Varies
MySQL-only variable showing the permitted tls protocols.
18446744073709551615
-
Max size for data for an internal temporary on-disk MyISAM or Aria table.
16777216
-
Alias for .
transaction_allow_batching
-
OFF
Variable for enabling batching of statements within the same transaction in MySQL Cluster.
transaction_isolation
-
REPEATABLE-READ
The MariaDB equivalent is .
transaction_read_only
-
OFF
The MariaDB equivalent is .
transaction_write_set_extraction
-
OFF
Unused MySQL-only variable.
REPEATABLE-READ
-
The MySQL equivalent is transaction_isolation.
OFF
-
The MySQL equivalent is transaction_read_only.
NEVER
-
Controls the use of .
OFF
-
Whether to activate MariaDB's implementation, not available in MySQL.
version_compile_zlib
-
*
Version of the zlib library compiled in.
*
-
Version of the used malloc library.
Varies
-
Permits seeing exactly which version of the source was used for a build.
*
-
Version of the used TLS library.
windowing_high_use_precision
-
*
MySQL option allowing safety to be sacrificed for speed in calculations.
*
-
Galera cluster is only available in MariaDB.
Variable
MySQL 8.0
Notes
The following is a comparison of variables that either appear only in MariaDB 10.9 or MySQL 8.0, or have different default settings in MariaDB 10.9, and MySQL 8.0. The releases MariaDB 10.9.1 and MySQL 8.0.11, with only default plugins enabled, were used for the comparison. Note that MySQL 8 is an 'evergreen' release, so features may be added or removed in later releases.
For a more complete list of differences, see Incompatibilities and Feature Differences Between MariaDB 10.9 and MySQL 8.0 and Function Differences Between MariaDB 10.9 and MySQL 8.0
Variable
The following is a comparison of variables that either appear only in or MySQL 8.0, or have different default settings in , and MySQL 8.0. The releases and MySQL 8.0.11, with only default plugins enabled, were used for the comparison. Note that MySQL 8 is an 'evergreen' release, so features may be added or removed in later releases.
activate_all_roles_on_login
-
OFF
Determines whether to automatically activate on login.
DEFAULT
-
introduced new clauses to avoid slow copies in certain instances. This variable allows setting this if no ALGORITHM clause is specified.
100.0000
-
Percentage of rows from the table will sample to collect table statistics.
*
-
The Aria storage engine is only available in MariaDB.
auto_generate_certs
-
ON
Whether to automatically generate SSL key and certificate files.
avoid_temporal_upgrade
-
OFF
Determines whether ALTER TABLE implicitly upgrades temporal columns.
Autosized
Autosized
MariaDB and MySQL have different autosizing algorithms.
OFF
-
When set, split ALTER at binary logging into two statements: START ALTER and COMMIT/ROLLBACK ALTER.
ON
-
Introduced in for between and MySQL/.
0
-
For use in MariaDB's .
100000
-
For use in MariaDB's .
binlog_error_action
ABORT_SERVER
MySQL-only variable for controlling what happens when the server cannot write to the binary log.
0
2592000
Sets the binary log expiration period in seconds
16184
-
For setting the size of the file cache for the .
MIXED
ROW
MariaDB and MySQL have differing .
binlog_group_commit_sync_delay
0
MySQL-only variable for controlling the wait time before synchronizing the binary log file to disk.
binlog_group_commit_sync_no_delay_count
0
MySQL-only variable for setting the maximum number of transactions to wait for before aborting the current binlog_group_commit_sync_delay delay.
binlog_gtid_simple_recovery
-
ON
MySQL-only GTID variable. MariaDB's implementation is different.
binlog_max_flush_queue_time
-
0
Specifies a timeout for reading transactions from the flush queue before continuing with group commit and syncing log to disk.
ON
-
For optimized kernel thread scheduling.
binlog_order_commits
-
ON
Determines whether transactions may be committed in parallel.
NO_LOG
MINIMAL
Determines the amount of table metadata added to the binary log with row-based logging.
binlog_row_value_options
-
(empty)
Permits an alternative binlog format for JSON document updates.
binlog_rows_query_log_events
-
OFF
MySQL-only variable for logging extra information in row-based logging.
binlog_transaction_dependency_history_size
-
25000
Maximum number of row hashes kept for looking up transactions that last modified a given row.
binlog_transaction_dependency_tracking
-
COMMIT_ORDER
For determining how to best use the slave's multithreaded applier.
block_encryption_mode
-
aes-128-ecb
MySQL-only variable for controlling the block encryption mode for block-based algorithms.
caching_sha2_password*
-
*
For use with MySQL's SHA-256 authentication with caching.
latin1 or utf8
utf8mb4
MySQL 8.0 defaults to the utf8mb4 .
ON
-
Permits disabling constraint checks, for example when loading a table that violates some constraints that you plan to fix later.
check_proxy_users
OFF
MySQL-only variable for controlling whether the server performs proxy user mapping for authentication plugins.
latin1_swedish_ci or utf8_general_ci
utf8mb4_0900_ai_ci
MySQL 8.0 defaults to the utf8mb4 .
100
-
MariaDB supports .
6
-
MariaDB supports .
DEFAULT_STRATEGY
-
MariaDB supports .
OFF
-
MariaDB supports .
cte_max_recursion_depth
-
1000
When MySQL 8.0 introduced they used a different name. MariaDB's variable is called .
%Y-%m-%d
-
Unused variable removed in MySQL 8.0
%Y-%m-%d
-
Unused variable removed in MySQL 8.0
15
-
The Aria storage engine is only available in MariaDB.
4
-
The Aria storage engine is only available in MariaDB.
50000000
-
The Aria storage engine is only available in MariaDB.
10000
-
The Aria storage engine is only available in MariaDB.
OFF
-
Disable system thread alarm calls, for debugging or testing.
default_authentication_plugin
-
caching_sha2_password
MySQL 8 introduced a new authentication plugin.
default_collation_for_utf8mb4
-
utf8mb4_0900_ai_ci
For internal use in MySQL 8 replication.
empty
-
For use with MariaDB's .
empty
-
For handling incompatibilities between MariaDB's and the old regex library.
empty
InnoDB
Default storage engine used for tables created with .
disabled_storage_engines
empty
MySQL-only variable for disabling specific storage engines.
OFF
ON
MariaDB password expiration is off by default, and by default does not disconnect a client when a password has expired.
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
end_markers_in_json
-
OFF
MySQL-only variable for adding end markers to JSON output.
enforce_gtid_consistency
-
OFF
MariaDB and MySQL have different .
none
Forces the use of a particular storage engine for new tables.
0
200
Variable for tuning when the optimizer should switch from using index dives to index statistics for qualifying rows estimation.
OFF
ON
MySQL enables the event scheduler by default.
100
-
Used for determining expensive queries for optimization.
OFF
ON
MySQL 8 disables the old timestamp behavior.
1
-
Introduced in the .
0
-
Introduced in the .
1048576
1024
MariaDB increases the maximum length for a result from 1K to 1M.
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
64
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
gtid_executed
-
empty
MariaDB and MySQL have different .
gtid_executed_compression_period
-
1000
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
gtid_mode
-
OFF
MariaDB and MySQL have different .
gtid_next
-
AUTOMATIC
MariaDB and MySQL have different .
gtid_owned
-
empty
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
gtid_purged
-
empty
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
YES
-
MySQL has removed the function.
MariaDB's version indicates whether YaSSL or openssl was used. MySQL's is a synonym for have_ssl.
YES
-
MySQL has removed the .
have_statement_timeout
-
Whether MySQL's statement execution timeout feature is available.
YES
DISABLED
MySQL has removed symlink support.
histogram_generation_max_mem_size
-
20000000
Added when MySQL 8 introduced . MariaDB uses
0
-
MariaDB introduced .
DOUBLE_PREC_HB
-
MariaDB introduced .
0
-
Time in seconds that the server waits for idle read-only transactions.
0
-
Time in seconds that the server waits for idle transactions.
0
-
Time in seconds that the server waits for idle write transactions.
OFF
-
Ignored and removed in MySQL 8.
1000
-
Controls the optimization.
0
-
Set to 1 if you are in a transaction, and 0 if not.
information_schema_stats_expiry
-
86400
Time until MySQL Information Schema cached statistics expire.
10.000000
10
Adaptive flushing is enabled when this low water mark percentage of the redo log capacity is reached. MariaDB's variable is a , MySQL's an .
OFF
ON
Defaulting to OFF is a performance improvement especially for , , , or operations
-
150000
Deprecated and ignored in and removed in .
innodb_api_*
-
*
Specific to MySQL's memcached, removed in .
1
2
MariaDB has an extra mode, 3, for skipping the rollback of connected transactions. MySQL defaults to row-based replication, so can safely use 2.
-
1
Deprecated and ignored in and removed in since the original reasons for introducing no longer apply.
full_crc32
crc32
fullcrc32 permits encryption to be supported over a SPATIAL INDEX, which crc32 does not support.
-
0
Deprecated and ignored in and removed in .
*
-
Introduced with MariaDB's .
-
5000
Deprecated and ignored in and removed in .
Full
-
How to report deadlocks.
innodb_dedicated_server
-
OFF
MySQL option that automatically configures various settings if the server is a dedicated InnoDB database server.
1
-
Default encryption key id used for table encryption. See .
*
-
MariaDB can .
innodb_directories
-
(empty)
Used to search for tablespace files when moving or restoring a new location.
OFF
-
Tell InnoDB to stop any writes to disk.
1
-
See MariaDB's .
600
-
MariaDB's fatal semaphore timeout is configurable.
O_DIRECT
fsync
MariaDB InnoDB flushing method by default on Unix systems bypasses the file system cache for improved performance in most cases.
1
0
MySQL 8 by default now assumes the use of an SSD device.
OFF
-
If set to 1 in MariaDB (0 is default) CREATE TABLEs without a primary or unique key where all keyparts are NOT NULL will not be accepted, and will return an error.
OFF
-
MariaDB has support for .
add_drop_reorder
-
See .
-
ON
Deprecated and ignored in and removed in , as there is no reason to allow checksums to be disabled on the redo log.
-
ON
Deprecated and ignored in and removed in as part of the InnoDB redo log performance improvements.
-
2
Deprecated and ignored in and removed in as part of the InnoDB redo log performance improvements.
innodb_log_spin_*
-
*
MySQL variables for constraining CPU usage while waiting for flushed redo.
innodb_log_wait_for_flush_spin_hwm
-
*
MySQL variable for constraining CPU usage while waiting for flushed redo.
75
90
MySQL 8 increased the default to 90.
0
10
MySQL 8 increased the default to 10.
10485760
1073741824
reduced the limit for when an undo tablespace is marked for truncation.
Autosized (2000)
Autosized (4000)
In most systems, autosized based on the setting, which differs between MariaDB and MySQL.
-
1
Deprecated and ignored in and removed in as the original reasons for splitting the buffer pool have mostly gone away.
OFF
-
MariaDB includes the Facebook prefix index queries optimization.
innodb_print_ddl_logs
-
OFF
MySQL option for writing DDL logs to stderr.
ON
-
Whether to set tables to read-only.
innodb_redo_log_encrypt
-
OFF
MySQL 8 has also now introduced redo log encryption, but used a different name. The equivalent option in MariaDB is .
-
0
Deprecated and ignored in and removed in .
-
128
Removed in MariaDB as part of the InnoDB cleanup. It makes sense to always create and use the maximum number of rollback segments.
4
6
MariaDB changed the default from 6 to 4 based on extensive benchmarking.
0
-
MariaDB option to control the calculation of new statistics.
ON
-
Enabling gives a larger sample of pages for larger tables for the purposes of index statistics calculation.
-
1
Deprecated and ignored in and removed in .
-
0
Deprecated and ignored in and removed in .
-
10000
Deprecated and ignored in and removed in .
innodb_undo_log_encrypt
-
OFF
MySQL option for encrypting undo logs residing in separate undo tablespaces.
OFF
ON
MySQL 8 changes the default to ON, marking larger undo logs for truncation.
0
2
Number of tablespace files used for dividing up the undo logs. MySQL 8 has deprecated this setting, and increased the default (and minimum) to 2.
ON
-
are a faster alternative to innodb_doublewrite and MariaDB automatically detects when supporting SSD cards are used.
internal_tmp_disk_storage_engine
-
INNODB
MySQL uses this variable to set the storage engine for on-disk internal temporary tables.
internal_tmp_mem_storage_engine
-
TEMPTABLE
MySQL and MariaDB use different formats for temporary tables. In MariaDB, the performs a similar function.
2097152
-
Maximum size in bytes of the query buffer. See ..
2
-
For determining the join algorithms. See .
134217728
8388608
Size of the buffer for the index blocks used by MyISAM tables and shared for all threads.
512
-
Number of hash buckets for open and changed files.
0
-
The number of segments in a key cache. See .
keyring_operations
-
ON
Whether MySQL 8's keyring operations are enabled.
-
empty
MariaDB and MySQL have different .
ON
OFF
MySQL no longer supports LOAD DATA LOCAL by default.
86400
31536000
MariaDB has reduced the timeout for acquiring metadata locks.
OFF
ON
MySQL 8 enables the by default.
OFF
-
MariaDB setting for whether or not the can be compressed.
256
-
Minimum length of sql statement (in statement mode) or record (in row mode) that can be compressed. See .
log_bin_use_v1_row_events
-
OFF
MySQL-only variable showing whether or not MySQL's version 2 binary logging format is being used.
sp
-
Disable logging of certain statements to the .
log_error_services
-
log_filter_internal; log_sink_internal
Components to enable for MySQL error logging.
log_error_verbosity
-
3
MySQL variable for setting verbosity of error, warning, and note messages in the error log.
OFF
ON
MySQL 8 has by default enabled of updates a slave receives from a master.
ON
OFF
MariaDB logs slow admin statements to the by default.
admin,call,slave,sp
-
Disable logging of certain statements to the .
admin, filesort, filesort_on_disk, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk
-
For slow query log filtering.
1
-
Limits the number of queries logged to the .
ON
OFF
MariaDB logs slow slave statements to the by default.
empty
-
Controls information to be added to the . See also .
log_statements_unsafe_for_binlog
-
ON
MySQL setting for controlling whether binlog warnings are written to the error log.
log_syslog*
platform-dependent
-
MySQL variables with settings for writing to syslog.
24576
-
Size in bytes of the transaction coordinator log, defined in multiples of 4096.
log_throttle_queries_not_using_indexes
-
0
MySQL-only variable for limiting the number of statements without indexes written to the slow query log.
log_timestamps
-
UTC
MySQL-only variable controlling the timezone for certain logging conditions.
2
-
MySQL 8 has replaced with log_error_verbosity.
mandatory_roles
-
(empty)
MySQL variable for assigning to all users.
master_info_repository
-
TABLE
Whether slave logs master status and connection info to a table or a file.
16M
64M
64
1024
Specifies the maximum number of messages stored for display by and statements.
max_execution_time
-
0
MySQL renamed the max_statement_time variable.
64
1024
Used to decide which algorithm to choose when sorting rows. If the total size of the column data, not including columns that are part of the sort, is less than max_length_for_sort_data, then these are added to the sort key. This can speed up the sort as there's no need to re-read the same row again later. Setting the value too high can slow things down as there will be a higher disk activity for doing the sort.
4294967295
-
Maximum number of failed connections attempts before no more are permitted.
max_points_in_geometry
-
65536
Maximum points_per_circle for MySQL's ST_Buffer_Strategy() function.
4294967295
-
Maximum number of iterations when executing recursive queries.
1073741824
0
Can be set by session in MariaDB.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
The most key seeks required when searching with an index, regardless of the actual index cardinality. If this value is set lower than its default and maximum, indexes will tend to be preferred over table scans.
9223372036854775807
-
Amount of memory a single user session is allowed to allocate.
0
-
Maximum time in seconds that a query can execute before being aborted. MySQL used to have a variable of this name before renaming it max_execution_time.
32
-
Unused variable removed in MySQL.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
Read lock requests will be permitted for processing after this many write locks.
262144
-
Size of buffer to use when using multi-range read with range access. See .
1024
-
Block size used for index pages.
BACKUP,QUICK
OFF
MyISAM recovery mode.
134216704
8388608
Size in bytes of the buffer allocated when creating or sorting indexes on a MyISAM table.
mysql_native_password_proxy_users
-
OFF
Whether MySQL's authentication plugin supports proxy users. I
ON
Causes MariaDB to use the MySQL-5.6 low level formats for , and instead of the + version.
new
-
OFF
Used for backward-compatibility with MySQL 4.1, not present in MariaDB.
mysqlx+*
-
*
MySQL's X plugin related variables.
ngram_token_size
-
2
Sets the n-gram token size for MySQL's n-gram full-text parser.
offline_mode
-
OFF
MySQL settting for specifying whether the server should run in offline mode.
DEFAULT
OFF
An alias for .
Empty string
-
Used for getting MariaDB to emulate behavior from an old version of MySQL or MariaDB. See .
OFF
-
MySQL 8 is no longer compatible with the old pre-MySQL 4.1 form of password hashing.
100
-
Controls number of record samples to check condition selectivity.
A series of flags for controlling the query optimizer. MariaDB has introduced a number of new settings.
optimizer_trace_*
-
*
MySQL has more settings for optimizer tracing.
4
-
Controls which statistics can be used by the optimizer when looking for the best query execution plan.
original_commit_timestamp
-
*
Used by MySQL 8 for .
parser_max_mem_size
-
4294967295 (32-bit) or 18446744073709547520 (64-bit)
MySQL variable for limiting memory available to the parser.
password_*
-
*
Controls reuse of previous passwords in MySQL.
OFF
ON
The is off by default in MariaDB.
Many performance schema variables are autoset in MySQL, and MySQL has a different version, with additional variables.
One less than the server maturity
-
Minimum acceptable plugin maturity.
5
-
Time in seconds between sending progress reports to the client for time-consuming statements.
(empty)
-
Enable for these source networks.
16384
8192
Size in bytes of the extra blocks allocated during query parsing and execution (after query_prealloc_size is used up).
*
-
MySQL has removed the .
24576
8192
Size in bytes of the persistent buffer for query parsing and execution, allocated on connect and freed on disconnect.
range_optimizer_max_mem_size
-
8388608
MySQL-only variable setting a limit on the range optimizer's memory usage.
rbr_exec_mode
-
STRICT
MySQL-only variable for determining the handling of certain key errors.
0
-
Permits restricting the speed at which the slave reads the binlog from the master.
regexp_*
-
*
Memory and time limits for regular expression matching operations.
relay_log_info_repository
-
TABLE
MySQL-only variable determining whether the slave's position in the relay logs is written to a file or table.
ON
-
Tells the slave to reproduce annotate_rows_events received from the master in its own binary log.
empty string
-
See .
empty string
-
See .
replicate
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
result_metadata
-
FULL
Determine whether the server returns result set metadata for connections where this is optional.
8388608
-
See .
rpl_read_size
-
8192
Minimum data in bytes read from the binary and relay log files.
-
-
MariaDB includes without the need to install a plugin.
rpl_stop_slave_timeout
-
31536000
Controls the time that waits before timing out.
*
-
The S3 storage engine is only available in MariaDB.
schema_definition_cache
-
256
Limits the number of schema definition objects kept in the dictionary object cache.
ON
-
Removed in MySQL.
NO
-
MariaDB-only option permitting the restricting of direct setting of a session timestamp..
server_id_bits
-
server_id
MySQL-only variable for use in MySQL Cluster.
server_uuid
-
UUID
MySQL-only variable containing the UUID.
session_track_gtids
-
OFF
MySQL-only variables for tracking gtid changes. MariaDB and MySQL's gtid implementation is different.
sha256_password_proxy_users
-
OFF
MySQL-only variable determining whether the sha256_password plugin supports proxy users.
show_create_table_verbosity
-
OFF
Option to cause to display ROW_FORMAT in all cases.
show_old_temporals
-
OFF
MySQL-only variable for determining whether SHOW CREATE TABLE output should include comments for old format temporal columns.
OFF
-
See .
OFF
-
See .
slave_allow_batching
-
OFF
MySQL-only replication variable.
slave_checkpoint_group
-
512
MySQL-only replication variable.
slave_checkpoint_period
-
300
MySQL-only replication variable.
IDEMPOTENT
-
Modes for how replication of DDL events should be executed.
0
-
For configuring .
3600
60
MySQL reduced the timeout to 60s.
131072
-
For configuring .
optimistic
-
Controls what transactions are applied in parallel when using .
0
-
For configuring .
slave_parallel_type
-
DATABASE
MySQL-only replication variable.
slave_pending_jobs_size_max
-
16777216
MySQL-only replication variable.
slave_preserve_commit_order
-
OFF
MySQL-only replication variable.
slave_rows_search_algorithms
-
INDEX_SCAN, HASH_SCAN
MySQL-only replication variable.
NO
See for a description and use-case for this setting.
1213,1205
-
When an error occurs during a transaction on the slave, replication usually halts. By default, transactions that caused a deadlock or elapsed lock wait timeout will be retried. One can add other errors to the list of errors that should be retried by adding a comma-separated list of error numbers to this variable.
0
-
Interval in seconds for the slave SQL thread to retry a failed transaction due to a deadlock, elapsed lock wait timeout or an error listed in slave_transaction_retry_errors.
2097152
262144
The default sort buffer allocated has been reduced in MySQL.
OFF
-
Adds an implicit IF EXISTS to ALTER, RENAME and DROP of TABLES, VIEWS, FUNCTIONS and PACKAGES
STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_ENGINE_SUBSTITUTION
See .
ssl_fips_mode
-
OFF
Whether FIPS mode is enabled on the server side.
ON
-
See .
InnoDB
-
Alias for , removed in MySQL.
ON
-
In MariaDB, when password validation plugins are enabled, reject passwords that cannot be validated (passwords specified as a hash).
stored_program_definition_cache
-
256
Limits the number of stored program definition objects kept in the dictionary object cache.
super_read_only
-
OFF
MySQL variable for prohibiting client updates from users with the SUPER privilege.
0
1
MySQL synchronizes all actions to the binary log before they are committed.
1
-
.frm files have been removed in MySQL.
ERROR
-
MariaDB has
DEFAULT
-
MariaDB has
400
-1 (autosized)
Number of table definitions that can be cached.
8
16
Maximum number of table cache instances.
tablespace_definition_cache
-
256
Limits the number of tablespace definition objects kept in the dictionary object cache.
0
-
Interval, in seconds, between when successive keep-alive packets are sent if no acknowledgement is received.
0
-
Number of unacknowledged probes to send before considering the connection dead and notifying the application layer.
0
-
Set the TCP_NODELAY option (disable Nagle's algorithm) on socket.
1
-
Timeout, in milliseconds, with no activity until the first TCP keep-alive packet is sent.
temptable_max_ram
-
1GB
Limits the RAM used by MySQL's TempTable storage engine.
Autosized
-1 (autosized)
MariaDB uses an .
0
-
Better precision for the data in the .
0
-
Better precision for the data in the .
60
-
See .
65536
-
See .
1
-
Windows-only. See .
3
-
See .
auto
-
See .
auto
-
See .
Number of processors
16*
See . *Only available in MySQL with a commercial plugin.
500
6*
See . *Only available in MySQL with a commercial plugin.
299008
Varies
See .
%H:%i:%s
-
Removed in MySQL.
18446744073709551615
-
Max size for data for an internal temporary on-disk MyISAM or Aria table.
16777216
-
Alias for .
transaction_allow_batching
-
OFF
Variable for enabling batching of statements within the same transaction in MySQL Cluster.
transaction_isolation
-
REPEATABLE-READ
The MariaDB equivalent is .
transaction_read_only
-
OFF
The MariaDB equivalent is .
transaction_write_set_extraction
-
OFF
Unused MySQL-only variable.
REPEATABLE-READ
-
The MySQL equivalent is transaction_isolation.
OFF
-
The MySQL equivalent is transaction_read_only.
preferably_for_queries
-
Controls the use of .
OFF
-
Whether to activate MariaDB's implementation, not available in MySQL.
version_compile_zlib
-
*
Version of the zlib library compiled in.
*
-
Version of the used malloc library.
Varies
-
Permits seeing exactly which version of the source was used for a build.
*
-
Version of the used TLS library.
windowing_high_use_precision
-
*
MySQL option allowing safety to be sacrificed for speed in calculations.
*
-
is only available in MariaDB.
Variable
MySQL 8.0
Notes
Variable
MariaDB 10.8 Default
MySQL 8.0 Default
Notes
MariaDB 10.9 Default
MySQL 8.0 Default
Notes
activate_all_roles_on_login
-
OFF
Determines whether to automatically activate on login.
DEFAULT
-
MariaDB 10.3 introduced new clauses to avoid slow copies in certain instances. This variable allows setting this if no ALGORITHM clause is specified.
100.0000
-
Percentage of rows from the table will sample to collect table statistics.
*
-
The Aria storage engine is only available in MariaDB.
auto_generate_certs
-
ON
Whether to automatically generate SSL key and certificate files.
avoid_temporal_upgrade
-
OFF
Determines whether ALTER TABLE implicitly upgrades temporal columns.
Autosized
Autosized
MariaDB and MySQL have different autosizing algorithms.
OFF
-
When set, split ALTER at binary logging into two statements: START ALTER and COMMIT/ROLLBACK ALTER.
ON
-
Introduced in MariaDB 5.3 for replicating between MariaDB 5.3 and MySQL/MariaDB 5.1.
0
-
For use in MariaDB's .
100000
-
For use in MariaDB's .
binlog_error_action
ABORT_SERVER
MySQL-only variable for controlling what happens when the server cannot write to the binary log.
0
2592000
Sets the binary log expiration period in seconds
16184
-
For setting the size of the file cache for the .
MIXED
ROW
MariaDB and MySQL have differing .
binlog_group_commit_sync_delay
0
MySQL-only variable for controlling the wait time before synchronizing the binary log file to disk.
binlog_group_commit_sync_no_delay_count
0
MySQL-only variable for setting the maximum number of transactions to wait for before aborting the current binlog_group_commit_sync_delay delay.
binlog_gtid_simple_recovery
-
ON
MySQL-only GTID variable. MariaDB's implementation is different.
binlog_max_flush_queue_time
-
0
Specifies a timeout for reading transactions from the flush queue before continuing with group commit and syncing log to disk.
ON
-
For optimized kernel thread scheduling.
binlog_order_commits
-
ON
Determines whether transactions may be committed in parallel.
NO_LOG
MINIMAL
Determines the amount of table metadata added to the binary log with row-based logging.
binlog_row_value_options
-
(empty)
Permits an alternative binlog format for JSON document updates.
binlog_rows_query_log_events
-
OFF
MySQL-only variable for logging extra information in row-based logging.
binlog_transaction_dependency_history_size
-
25000
Maximum number of row hashes kept for looking up transactions that last modified a given row.
binlog_transaction_dependency_tracking
-
COMMIT_ORDER
For determining how to best use the slave's multithreaded applier.
block_encryption_mode
-
aes-128-ecb
MySQL-only variable for controlling the block encryption mode for block-based algorithms.
caching_sha2_password*
-
*
For use with MySQL's SHA-256 authentication with caching.
latin1 or utf8
utf8mb4
MySQL 8.0 defaults to the utf8mb4 .
ON
-
Permits disabling constraint checks, for example when loading a table that violates some constraints that you plan to fix later.
check_proxy_users
OFF
MySQL-only variable for controlling whether the server performs proxy user mapping for authentication plugins.
latin1_swedish_ci or utf8_general_ci
utf8mb4_0900_ai_ci
MySQL 8.0 defaults to the utf8mb4 .
100
-
MariaDB supports .
6
-
MariaDB supports .
DEFAULT_STRATEGY
-
MariaDB supports .
OFF
-
MariaDB supports .
cte_max_recursion_depth
-
1000
When MySQL 8.0 introduced they used a different name. MariaDB's variable is called .
%Y-%m-%d
-
Unused variable removed in MySQL 8.0
%Y-%m-%d
-
Unused variable removed in MySQL 8.0
15
-
The Aria storage engine is only available in MariaDB.
4
-
The Aria storage engine is only available in MariaDB.
50000000
-
The Aria storage engine is only available in MariaDB.
10000
-
The Aria storage engine is only available in MariaDB.
OFF
-
Disable system thread alarm calls, for debugging or testing.
default_authentication_plugin
-
caching_sha2_password
MySQL 8 introduced a new authentication plugin.
default_collation_for_utf8mb4
-
utf8mb4_0900_ai_ci
For internal use in MySQL 8 replication.
empty
-
For use with MariaDB's .
empty
-
For handling incompatibilities between MariaDB's and the old regex library.
empty
InnoDB
Default storage engine used for tables created with .
disabled_storage_engines
empty
MySQL-only variable for disabling specific storage engines.
OFF
ON
MariaDB password expiration is off by default, and by default does not disconnect a client when a password has expired.
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
end_markers_in_json
-
OFF
MySQL-only variable for adding end markers to JSON output.
enforce_gtid_consistency
-
OFF
MariaDB and MySQL have different .
none
Forces the use of a particular storage engine for new tables.
0
200
Variable for tuning when the optimizer should switch from using index dives to index statistics for qualifying rows estimation.
OFF
ON
MySQL enables the event scheduler by default.
100
-
Used for determining expensive queries for optimization.
OFF
ON
MySQL 8 disables the old timestamp behavior.
1
-
Introduced in the .
0
-
Introduced in the .
1048576
1024
MariaDB increases the maximum length for a result from 1K to 1M.
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
64
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
gtid_executed
-
empty
MariaDB and MySQL have different .
gtid_executed_compression_period
-
1000
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
gtid_mode
-
OFF
MariaDB and MySQL have different .
gtid_next
-
AUTOMATIC
MariaDB and MySQL have different .
gtid_owned
-
empty
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
gtid_purged
-
empty
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
YES
-
MySQL has removed the function.
MariaDB's version indicates whether YaSSL or openssl was used. MySQL's is a synonym for have_ssl.
YES
-
MySQL has removed the .
have_statement_timeout
-
Whether MySQL's statement execution timeout feature is available.
YES
DISABLED
MySQL has removed symlink support.
histogram_generation_max_mem_size
-
20000000
Added when MySQL 8 introduced . MariaDB uses
0
-
MariaDB introduced .
DOUBLE_PREC_HB
-
MariaDB introduced .
0
-
Time in seconds that the server waits for idle read-only transactions.
0
-
Time in seconds that the server waits for idle transactions.
0
-
Time in seconds that the server waits for idle write transactions.
OFF
-
Ignored and removed in MySQL 8.
1000
-
Controls the optimization.
0
-
Set to 1 if you are in a transaction, and 0 if not.
information_schema_stats_expiry
-
86400
Time until MySQL Information Schema cached statistics expire.
10.000000
10
Adaptive flushing is enabled when this low water mark percentage of the redo log capacity is reached. MariaDB's variable is a , MySQL's an .
OFF
ON
Defaulting to OFF is a performance improvement especially for , , , or operations
-
150000
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
innodb_api_*
-
*
Specific to MySQL's memcached, removed in MariaDB 10.2.
1
2
MariaDB has an extra mode, 3, for skipping the rollback of connected transactions. MySQL defaults to row-based replication, so can safely use 2.
-
1
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6 since the original reasons for introducing no longer apply.
full_crc32
crc32
fullcrc32 permits encryption to be supported over a SPATIAL INDEX, which crc32 does not support.
-
0
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
*
-
Introduced with MariaDB's .
-
5000
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
Full
-
How to report deadlocks.
innodb_dedicated_server
-
OFF
MySQL option that automatically configures various settings if the server is a dedicated InnoDB database server.
1
-
Default encryption key id used for table encryption. See .
*
-
MariaDB can .
innodb_directories
-
(empty)
Used to search for tablespace files when moving or restoring a new location.
OFF
-
Tell InnoDB to stop any writes to disk.
1
-
See MariaDB's .
600
-
MariaDB's fatal semaphore timeout is configurable.
O_DIRECT
fsync
MariaDB InnoDB flushing method by default on Unix systems bypasses the file system cache for improved performance in most cases.
1
0
MySQL 8 by default now assumes the use of an SSD device.
OFF
-
If set to 1 in MariaDB (0 is default) CREATE TABLEs without a primary or unique key where all keyparts are NOT NULL will not be accepted, and will return an error.
OFF
-
MariaDB has support for .
add_drop_reorder
-
See .
-
ON
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6, as there is no reason to allow checksums to be disabled on the redo log.
-
ON
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6 as part of the InnoDB redo log performance improvements.
-
2
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6 as part of the InnoDB redo log performance improvements.
innodb_log_spin_*
-
*
MySQL variables for constraining CPU usage while waiting for flushed redo.
innodb_log_wait_for_flush_spin_hwm
-
*
MySQL variable for constraining CPU usage while waiting for flushed redo.
75
90
MySQL 8 increased the default to 90.
0
10
MySQL 8 increased the default to 10.
10485760
1073741824
MariaDB 10.2 reduced the limit for when an undo tablespace is marked for truncation.
Autosized (2000)
Autosized (4000)
In most systems, autosized based on the setting, which differs between MariaDB and MySQL.
-
1
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6 as the original reasons for splitting the buffer pool have mostly gone away.
OFF
-
MariaDB includes the Facebook prefix index queries optimization.
innodb_print_ddl_logs
-
OFF
MySQL option for writing DDL logs to stderr.
ON
-
Whether to set tables to read-only.
innodb_redo_log_encrypt
-
OFF
MySQL 8 has also now introduced redo log encryption, but used a different name. The equivalent option in MariaDB is .
-
0
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
-
128
Removed in MariaDB as part of the InnoDB cleanup. It makes sense to always create and use the maximum number of rollback segments.
4
6
MariaDB changed the default from 6 to 4 based on extensive benchmarking.
0
-
MariaDB option to control the calculation of new statistics.
ON
-
Enabling gives a larger sample of pages for larger tables for the purposes of index statistics calculation.
-
1
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
-
0
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
-
10000
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
innodb_undo_log_encrypt
-
OFF
MySQL option for encrypting undo logs residing in separate undo tablespaces.
OFF
ON
MySQL 8 changes the default to ON, marking larger undo logs for truncation.
0
2
Number of tablespace files used for dividing up the undo logs. MySQL 8 has deprecated this setting, and increased the default (and minimum) to 2.
ON
-
are a faster alternative to innodb_doublewrite and MariaDB automatically detects when supporting SSD cards are used.
internal_tmp_disk_storage_engine
-
INNODB
MySQL uses this variable to set the storage engine for on-disk internal temporary tables.
internal_tmp_mem_storage_engine
-
TEMPTABLE
MySQL and MariaDB use different formats for temporary tables. In MariaDB, the performs a similar function.
2097152
-
Maximum size in bytes of the query buffer. See block-based join algorithms.
2
-
For determining the join algorithms. See block-based join algorithms
134217728
8388608
Size of the buffer for the index blocks used by MyISAM tables and shared for all threads.
512
-
Number of hash buckets for open and changed files.
0
-
The number of segments in a key cache. See .
keyring_operations
-
ON
Whether MySQL 8's keyring operations are enabled.
-
empty
MariaDB and MySQL have different .
ON
OFF
MySQL no longer supports LOAD DATA LOCAL by default.
86400
31536000
MariaDB has reduced the timeout for acquiring metadata locks.
OFF
ON
MySQL 8 enables the by default.
OFF
-
MariaDB setting for whether or not the can be compressed.
256
-
Minimum length of sql statement (in statement mode) or record (in row mode) that can be compressed. See .
log_bin_use_v1_row_events
-
OFF
MySQL-only variable showing whether or not MySQL's version 2 binary logging format is being used.
sp
-
Disable logging of certain statements to the .
log_error_services
-
log_filter_internal; log_sink_internal
Components to enable for MySQL error logging.
log_error_verbosity
-
3
MySQL variable for setting verbosity of error, warning, and note messages in the error log.
OFF
ON
MySQL 8 has by default enabled of updates a slave receives from a master.
ON
OFF
MariaDB logs slow admin statements to the by default.
admin,call,slave,sp
-
Disable logging of certain statements to the .
admin, filesort, filesort_on_disk, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk
-
For slow query log filtering.
1
-
Limits the number of queries logged to the .
ON
OFF
MariaDB logs slow slave statements to the by default.
empty
-
Controls information to be added to the . See also .
log_statements_unsafe_for_binlog
-
ON
MySQL setting for controlling whether binlog warnings are written to the error log.
log_syslog*
platform-dependent
-
MySQL variables with settings for writing to syslog.
24576
-
Size in bytes of the transaction coordinator log, defined in multiples of 4096.
log_throttle_queries_not_using_indexes
-
0
MySQL-only variable for limiting the number of statements without indexes written to the slow query log.
log_timestamps
-
UTC
MySQL-only variable controlling the timezone for certain logging conditions.
2
-
MySQL 8 has replaced with log_error_verbosity.
mandatory_roles
-
(empty)
MySQL variable for assigning to all users.
master_info_repository
-
TABLE
Whether slave logs master status and connection info to a table or a file.
16M
64M
64
1024
Specifies the maximum number of messages stored for display by and statements.
max_execution_time
-
0
MySQL renamed the max_statement_time variable.
64
1024
Used to decide which algorithm to choose when sorting rows. If the total size of the column data, not including columns that are part of the sort, is less than max_length_for_sort_data, then these are added to the sort key. This can speed up the sort as there's no need to re-read the same row again later. Setting the value too high can slow things down as there will be a higher disk activity for doing the sort.
4294967295
-
Maximum number of failed connections attempts before no more are permitted.
max_points_in_geometry
-
65536
Maximum points_per_circle for MySQL's ST_Buffer_Strategy() function.
4294967295
-
Maximum number of iterations when executing recursive queries.
1073741824
0
Can be set by session in MariaDB.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
The most key seeks required when searching with an index, regardless of the actual index cardinality. If this value is set lower than its default and maximum, indexes will tend to be preferred over table scans.
9223372036854775807
-
Amount of memory a single user session is allowed to allocate.
0
-
Maximum time in seconds that a query can execute before being aborted. MySQL used to have a variable of this name before renaming it max_execution_time.
32
-
Unused variable removed in MySQL.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
Read lock requests will be permitted for processing after this many write locks.
262144
-
Size of buffer to use when using multi-range read with range access. See .
1024
-
Block size used for index pages.
BACKUP,QUICK
OFF
MyISAM recovery mode.
134216704
8388608
Size in bytes of the buffer allocated when creating or sorting indexes on a MyISAM table.
mysql_native_password_proxy_users
-
OFF
Whether MySQL's authentication plugin supports proxy users. I
ON
Causes MariaDB to use the MySQL-5.6 low level formats for , and instead of the MariaDB 5.3+ version.
new
-
OFF
Used for backward-compatibility with MySQL 4.1, not present in MariaDB.
mysqlx+*
-
*
MySQL's X plugin related variables.
ngram_token_size
-
2
Sets the n-gram token size for MySQL's n-gram full-text parser.
offline_mode
-
OFF
MySQL settting for specifying whether the server should run in offline mode.
DEFAULT
OFF
An alias for .
Empty string
-
Used for getting MariaDB to emulate behavior from an old version of MySQL or MariaDB. See .
OFF
-
MySQL 8 is no longer compatible with the old pre-MySQL 4.1 form of password hashing.
100
-
Controls number of record samples to check condition selectivity.
A series of flags for controlling the query optimizer. MariaDB has introduced a number of new settings.
optimizer_trace_*
-
*
MySQL has more settings for optimizer tracing.
4
-
Controls which statistics can be used by the optimizer when looking for the best query execution plan.
original_commit_timestamp
-
*
Used by MySQL 8 for .
parser_max_mem_size
-
4294967295 (32-bit) or 18446744073709547520 (64-bit)
MySQL variable for limiting memory available to the parser.
password_*
-
*
Controls reuse of previous passwords in MySQL.
OFF
ON
The is off by default in MariaDB.
Many performance schema variables are autoset in MySQL, and MySQL has a different version, with additional variables.
One less than the server maturity
-
Minimum acceptable plugin maturity.
5
-
Time in seconds between sending progress reports to the client for time-consuming statements.
(empty)
-
Enable for these source networks.
16384
8192
Size in bytes of the extra blocks allocated during query parsing and execution (after query_prealloc_size is used up).
*
-
MySQL has removed the .
24576
8192
Size in bytes of the persistent buffer for query parsing and execution, allocated on connect and freed on disconnect.
range_optimizer_max_mem_size
-
8388608
MySQL-only variable setting a limit on the range optimizer's memory usage.
rbr_exec_mode
-
STRICT
MySQL-only variable for determining the handling of certain key errors.
0
-
Permits restricting the speed at which the slave reads the binlog from the master.
regexp_*
-
*
Memory and time limits for regular expression matching operations.
relay_log_info_repository
-
TABLE
MySQL-only variable determining whether the slave's position in the relay logs is written to a file or table.
ON
-
Tells the slave to reproduce annotate_rows_events received from the master in its own binary log.
empty string
-
See .
empty string
-
See .
replicate
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
result_metadata
-
FULL
Determine whether the server returns result set metadata for connections where this is optional.
8388608
-
See .
rpl_read_size
-
8192
Minimum data in bytes read from the binary and relay log files.
-
-
MariaDB includes without the need to install a plugin.
rpl_stop_slave_timeout
-
31536000
Controls the time that waits before timing out.
*
-
The S3 storage engine is only available in MariaDB.
schema_definition_cache
-
256
Limits the number of schema definition objects kept in the dictionary object cache.
ON
-
Removed in MySQL.
NO
-
MariaDB-only option permitting the restricting of direct setting of a session timestamp..
server_id_bits
-
server_id
MySQL-only variable for use in MySQL Cluster.
server_uuid
-
UUID
MySQL-only variable containing the UUID.
session_track_gtids
-
OFF
MySQL-only variables for tracking gtid changes. MariaDB and MySQL's gtid implementation is different.
sha256_password_proxy_users
-
OFF
MySQL-only variable determining whether the sha256_password plugin supports proxy users.
show_create_table_verbosity
-
OFF
Option to cause to display ROW_FORMAT in all cases.
show_old_temporals
-
OFF
MySQL-only variable for determining whether SHOW CREATE TABLE output should include comments for old format temporal columns.
OFF
-
See .
OFF
-
See .
slave_allow_batching
-
OFF
MySQL-only replication variable.
slave_checkpoint_group
-
512
MySQL-only replication variable.
slave_checkpoint_period
-
300
MySQL-only replication variable.
IDEMPOTENT
-
Modes for how replication of DDL events should be executed.
0
-
For configuring .
3600
60
MySQL reduced the timeout to 60s.
131072
-
For configuring .
optimistic
-
Controls what transactions are applied in parallel when using .
0
-
For configuring .
slave_parallel_type
-
DATABASE
MySQL-only replication variable.
slave_pending_jobs_size_max
-
16777216
MySQL-only replication variable.
slave_preserve_commit_order
-
OFF
MySQL-only replication variable.
slave_rows_search_algorithms
-
INDEX_SCAN, HASH_SCAN
MySQL-only replication variable.
NO
See for a description and use-case for this setting.
1213,1205
-
When an error occurs during a transaction on the slave, replication usually halts. By default, transactions that caused a deadlock or elapsed lock wait timeout will be retried. One can add other errors to the list of errors that should be retried by adding a comma-separated list of error numbers to this variable.
0
-
Interval in seconds for the slave SQL thread to retry a failed transaction due to a deadlock, elapsed lock wait timeout or an error listed in slave_transaction_retry_errors.
2097152
262144
The default sort buffer allocated has been reduced in MySQL.
OFF
-
Adds an implicit IF EXISTS to ALTER, RENAME and DROP of TABLES, VIEWS, FUNCTIONS and PACKAGES
STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_ENGINE_SUBSTITUTION
See .
ssl_fips_mode
-
OFF
Whether FIPS mode is enabled on the server side.
ON
-
See .
InnoDB
-
Alias for , removed in MySQL.
ON
-
In MariaDB, when password validation plugins are enabled, reject passwords that cannot be validated (passwords specified as a hash).
stored_program_definition_cache
-
256
Limits the number of stored program definition objects kept in the dictionary object cache.
super_read_only
-
OFF
MySQL variable for prohibiting client updates from users with the SUPER privilege.
0
1
MySQL synchronizes all actions to the binary log before they are committed.
1
-
.frm files have been removed in MySQL.
ERROR
-
MariaDB has
DEFAULT
-
MariaDB has
400
-1 (autosized)
Number of table definitions that can be cached.
8
16
Maximum number of table cache instances.
tablespace_definition_cache
-
256
Limits the number of tablespace definition objects kept in the dictionary object cache.
0
-
Interval, in seconds, between when successive keep-alive packets are sent if no acknowledgement is received.
0
-
Number of unacknowledged probes to send before considering the connection dead and notifying the application layer.
0
-
Set the TCP_NODELAY option (disable Nagle's algorithm) on socket.
1
-
Timeout, in milliseconds, with no activity until the first TCP keep-alive packet is sent.
temptable_max_ram
-
1GB
Limits the RAM used by MySQL's TempTable storage engine.
Autosized
-1 (autosized)
MariaDB uses an .
0
-
Better precision for the data in the .
0
-
Better precision for the data in the .
60
-
See .
65536
-
See .
1
-
Windows-only. See .
3
-
See .
auto
-
See .
auto
-
See .
Number of processors
16*
See . *Only available in MySQL with a commercial plugin.
500
6*
See . *Only available in MySQL with a commercial plugin.
299008
Varies
See .
%H:%i:%s
-
Removed in MySQL.
18446744073709551615
-
Max size for data for an internal temporary on-disk MyISAM or Aria table.
16777216
-
Alias for .
transaction_allow_batching
-
OFF
Variable for enabling batching of statements within the same transaction in MySQL Cluster.
transaction_isolation
-
REPEATABLE-READ
The MariaDB equivalent is .
transaction_read_only
-
OFF
The MariaDB equivalent is .
transaction_write_set_extraction
-
OFF
Unused MySQL-only variable.
REPEATABLE-READ
-
The MySQL equivalent is transaction_isolation.
OFF
-
The MySQL equivalent is transaction_read_only.
preferably_for_queries
-
Controls the use of .
OFF
-
Whether to activate MariaDB's implementation, not available in MySQL.
version_compile_zlib
-
*
Version of the zlib library compiled in.
*
-
Version of the used malloc library.
Varies
-
Permits seeing exactly which version of the source was used for a build.
*
-
Version of the used TLS library.
windowing_high_use_precision
-
*
MySQL option allowing safety to be sacrificed for speed in calculations.
*
-
Galera cluster is only available in MariaDB.
Variable
MySQL 8.0
Notes
The following is a comparison of variables that either appear only in MariaDB 10.7 or MySQL 8.0, or have different default settings in MariaDB 10.7, and MySQL 8.0. The releases MariaDB 10.7.0 and MySQL 8.0.11, with only default plugins enabled, were used for the comparison. Note that MySQL 8 is an 'evergreen' release, so features may be added or removed in later releases.
Variable
Default
MySQL 8.0 Default
Notes
activate_all_roles_on_login
-
OFF
Determines whether to automatically activate on login.
DEFAULT
-
MariaDB 10.3 introduced new clauses to avoid slow copies in certain instances. This variable allows setting this if no ALGORITHM clause is specified.
100.0000
-
Percentage of rows from the table will sample to collect table statistics.
*
-
The Aria storage engine is only available in MariaDB.
auto_generate_certs
-
ON
Whether to automatically generate SSL key and certificate files.
avoid_temporal_upgrade
-
OFF
Determines whether ALTER TABLE implicitly upgrades temporal columns.
Autosized
Autosized
MariaDB and MySQL have different autosizing algorithms.
ON
-
Introduced in MariaDB 5.3 for replicating between MariaDB 5.3 and MySQL/MariaDB 5.1.
0
-
For use in MariaDB's .
100000
-
For use in MariaDB's .
binlog_error_action
ABORT_SERVER
MySQL-only variable for controlling what happens when the server cannot write to the binary log.
0
2592000
Sets the binary log expiration period in seconds
16184
-
For setting the size of the file cache for the .
MIXED
ROW
MariaDB and MySQL have differing .
binlog_group_commit_sync_delay
0
MySQL-only variable for controlling the wait time before synchronizing the binary log file to disk.
binlog_group_commit_sync_no_delay_count
0
MySQL-only variable for setting the maximum number of transactions to wait for before aborting the current binlog_group_commit_sync_delay delay.
binlog_gtid_simple_recovery
-
ON
MySQL-only GTID variable. MariaDB's implementation is different.
binlog_max_flush_queue_time
-
0
Specifies a timeout for reading transactions from the flush queue before continuing with group commit and syncing log to disk.
ON
-
For optimized kernel thread scheduling.
binlog_order_commits
-
ON
Determines whether transactions may be committed in parallel.
NO_LOG
MINIMAL
Determines the amount of table metadata added to the binary log with row-based logging.
binlog_row_value_options
-
(empty)
Permits an alternative binlog format for JSON document updates.
binlog_rows_query_log_events
-
OFF
MySQL-only variable for logging extra information in row-based logging.
binlog_transaction_dependency_history_size
-
25000
Maximum number of row hashes kept for looking up transactions that last modified a given row.
binlog_transaction_dependency_tracking
-
COMMIT_ORDER
For determining how to best use the slave's multithreaded applier.
block_encryption_mode
-
aes-128-ecb
MySQL-only variable for controlling the block encryption mode for block-based algorithms.
caching_sha2_password*
-
*
For use with MySQL's SHA-256 authentication with caching.
latin1 or utf8
utf8mb4
MySQL 8.0 defaults to the utf8mb4 .
ON
-
Permits disabling constraint checks, for example when loading a table that violates some constraints that you plan to fix later.
check_proxy_users
OFF
MySQL-only variable for controlling whether the server performs proxy user mapping for authentication plugins.
latin1_swedish_ci or utf8_general_ci
utf8mb4_0900_ai_ci
MySQL 8.0 defaults to the utf8mb4 .
100
-
MariaDB supports .
6
-
MariaDB supports .
DEFAULT_STRATEGY
-
MariaDB supports .
OFF
-
MariaDB supports .
cte_max_recursion_depth
-
1000
When MySQL 8.0 introduced they used a different name. MariaDB's variable is called .
%Y-%m-%d
-
Unused variable removed in MySQL 8.0
%Y-%m-%d
-
Unused variable removed in MySQL 8.0
15
-
The Aria storage engine is only available in MariaDB.
4
-
The Aria storage engine is only available in MariaDB.
50000000
-
The Aria storage engine is only available in MariaDB.
10000
-
The Aria storage engine is only available in MariaDB.
OFF
-
Disable system thread alarm calls, for debugging or testing.
default_authentication_plugin
-
caching_sha2_password
MySQL 8 introduced a new authentication plugin.
default_collation_for_utf8mb4
-
utf8mb4_0900_ai_ci
For internal use in MySQL 8 replication.
empty
-
For use with MariaDB's .
empty
-
For handling incompatibilities between MariaDB's and the old regex library.
empty
InnoDB
Default storage engine used for tables created with .
disabled_storage_engines
empty
MySQL-only variable for disabling specific storage engines.
OFF
ON
MariaDB password expiration is off by default, and by default does not disconnect a client when a password has expired.
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
OFF
-
MariaDB enables .
end_markers_in_json
-
OFF
MySQL-only variable for adding end markers to JSON output.
enforce_gtid_consistency
-
OFF
MariaDB and MySQL have different .
none
Forces the use of a particular storage engine for new tables.
0
200
Variable for tuning when the optimizer should switch from using index dives to index statistics for qualifying rows estimation.
OFF
ON
MySQL enables the event scheduler by default.
100
-
Used for determining expensive queries for optimization.
OFF
ON
MySQL 8 disables the old timestamp behavior.
1
-
Introduced in the .
0
-
Introduced in the .
1048576
1024
MariaDB increases the maximum length for a result from 1K to 1M.
empty
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
64
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
gtid_executed
-
empty
MariaDB and MySQL have different .
gtid_executed_compression_period
-
1000
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
gtid_mode
-
OFF
MariaDB and MySQL have different .
gtid_next
-
AUTOMATIC
MariaDB and MySQL have different .
gtid_owned
-
empty
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
gtid_purged
-
empty
MariaDB and MySQL have different .
0
-
MariaDB and MySQL have different .
empty
-
MariaDB and MySQL have different .
OFF
-
MariaDB and MySQL have different .
YES
-
MySQL has removed the function.
MariaDB's version indicates whether YaSSL or openssl was used. MySQL's is a synonym for have_ssl.
YES
-
MySQL has removed the .
have_statement_timeout
-
Whether MySQL's statement execution timeout feature is available.
YES
DISABLED
MySQL has removed symlink support.
histogram_generation_max_mem_size
-
20000000
Added when MySQL 8 introduced . MariaDB uses
0
-
MariaDB introduced .
DOUBLE_PREC_HB
-
MariaDB introduced .
0
-
Time in seconds that the server waits for idle read-only transactions.
0
-
Time in seconds that the server waits for idle transactions.
0
-
Time in seconds that the server waits for idle write transactions.
OFF
-
Ignored and removed in MySQL 8.
1000
-
Controls the optimization.
0
-
Set to 1 if you are in a transaction, and 0 if not.
information_schema_stats_expiry
-
86400
Time until MySQL Information Schema cached statistics expire.
10.000000
10
Adaptive flushing is enabled when this low water mark percentage of the redo log capacity is reached. MariaDB's variable is a , MySQL's an .
OFF
ON
Defaulting to OFF is a performance improvement especially for , , , or operations
-
150000
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
innodb_api_*
-
*
Specific to MySQL's memcached, removed in MariaDB 10.2.
1
2
MariaDB has an extra mode, 3, for skipping the rollback of connected transactions. MySQL defaults to row-based replication, so can safely use 2.
-
1
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6 since the original reasons for introducing no longer apply.
full_crc32
crc32
fullcrc32 permits encryption to be supported over a SPATIAL INDEX, which crc32 does not support.
-
0
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
*
-
Introduced with MariaDB's .
-
5000
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
Full
-
How to report deadlocks.
innodb_dedicated_server
-
OFF
MySQL option that automatically configures various settings if the server is a dedicated InnoDB database server.
1
-
Default encryption key id used for table encryption. See .
*
-
MariaDB can .
innodb_directories
-
(empty)
Used to search for tablespace files when moving or restoring a new location.
OFF
-
Tell InnoDB to stop any writes to disk.
1
-
See MariaDB's .
600
-
MariaDB's fatal semaphore timeout is configurable.
O_DIRECT
fsync
MariaDB InnoDB flushing method by default on Unix systems bypasses the file system cache for improved performance in most cases.
1
0
MySQL 8 by default now assumes the use of an SSD device.
OFF
-
If set to 1 in MariaDB (0 is default) CREATE TABLEs without a primary or unique key where all keyparts are NOT NULL will not be accepted, and will return an error.
OFF
-
MariaDB has support for .
add_drop_reorder
-
See .
-
ON
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6, as there is no reason to allow checksums to be disabled on the redo log.
-
ON
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6 as part of the InnoDB redo log performance improvements.
-
2
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6 as part of the InnoDB redo log performance improvements.
innodb_log_spin_*
-
*
MySQL variables for constraining CPU usage while waiting for flushed redo.
innodb_log_wait_for_flush_spin_hwm
-
*
MySQL variable for constraining CPU usage while waiting for flushed redo.
75
90
MySQL 8 increased the default to 90.
0
10
MySQL 8 increased the default to 10.
10485760
1073741824
MariaDB 10.2 reduced the limit for when an undo tablespace is marked for truncation.
Autosized (2000)
Autosized (4000)
In most systems, autosized based on the setting, which differs between MariaDB and MySQL.
-
1
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6 as the original reasons for splitting the buffer pool have mostly gone away.
OFF
-
MariaDB includes the Facebook prefix index queries optimization.
innodb_print_ddl_logs
-
OFF
MySQL option for writing DDL logs to stderr.
ON
-
Whether to set tables to read-only.
innodb_redo_log_encrypt
-
OFF
MySQL 8 has also now introduced redo log encryption, but used a different name. The equivalent option in MariaDB is .
-
0
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
-
128
Removed in MariaDB as part of the InnoDB cleanup. It makes sense to always create and use the maximum number of rollback segments.
4
6
MariaDB changed the default from 6 to 4 based on extensive benchmarking.
0
-
MariaDB option to control the calculation of new statistics.
ON
-
Enabling gives a larger sample of pages for larger tables for the purposes of index statistics calculation.
-
1
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
-
0
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
-
10000
Deprecated and ignored in MariaDB 10.5 and removed in MariaDB 10.6.
innodb_undo_log_encrypt
-
OFF
MySQL option for encrypting undo logs residing in separate undo tablespaces.
OFF
ON
MySQL 8 changes the default to ON, marking larger undo logs for truncation.
0
2
Number of tablespace files used for dividing up the undo logs. MySQL 8 has deprecated this setting, and increased the default (and minimum) to 2.
ON
-
are a faster alternative to innodb_doublewrite and MariaDB automatically detects when supporting SSD cards are used.
internal_tmp_disk_storage_engine
-
INNODB
MySQL uses this variable to set the storage engine for on-disk internal temporary tables.
internal_tmp_mem_storage_engine
-
TEMPTABLE
MySQL and MariaDB use different formats for temporary tables. In MariaDB, the performs a similar function.
2097152
-
Maximum size in bytes of the query buffer. See block-based join algorithms..
2
-
For determining the join algorithms. See block-based join algorithms.
134217728
8388608
Size of the buffer for the index blocks used by MyISAM tables and shared for all threads.
512
-
Number of hash buckets for open and changed files.
0
-
The number of segments in a key cache. See .
keyring_operations
-
ON
Whether MySQL 8's keyring operations are enabled.
-
empty
MariaDB and MySQL have different .
ON
OFF
MySQL no longer supports LOAD DATA LOCAL by default.
86400
31536000
MariaDB has reduced the timeout for acquiring metadata locks.
OFF
ON
MySQL 8 enables the by default.
OFF
-
MariaDB setting for whether or not the can be compressed.
256
-
Minimum length of sql statement (in statement mode) or record (in row mode) that can be compressed. See .
log_bin_use_v1_row_events
-
OFF
MySQL-only variable showing whether or not MySQL's version 2 binary logging format is being used.
sp
-
Disable logging of certain statements to the .
log_error_services
-
log_filter_internal; log_sink_internal
Components to enable for MySQL error logging.
log_error_verbosity
-
3
MySQL variable for setting verbosity of error, warning, and note messages in the error log.
OFF
ON
MySQL 8 has by default enabled of updates a slave receives from a master.
ON
OFF
MariaDB logs slow admin statements to the by default.
admin,call,slave,sp
-
Disable logging of certain statements to the .
admin, filesort, filesort_on_disk, full_join, full_scan, query_cache, query_cache_miss, tmp_table, tmp_table_on_disk
-
For slow query log filtering.
1
-
Limits the number of queries logged to the .
ON
OFF
MariaDB logs slow slave statements to the by default.
empty
-
Controls information to be added to the . See also .
log_statements_unsafe_for_binlog
-
ON
MySQL setting for controlling whether binlog warnings are written to the error log.
log_syslog*
platform-dependent
-
MySQL variables with settings for writing to syslog.
24576
-
Size in bytes of the transaction coordinator log, defined in multiples of 4096.
log_throttle_queries_not_using_indexes
-
0
MySQL-only variable for limiting the number of statements without indexes written to the slow query log.
log_timestamps
-
UTC
MySQL-only variable controlling the timezone for certain logging conditions.
2
-
MySQL 8 has replaced with log_error_verbosity.
mandatory_roles
-
(empty)
MySQL variable for assigning to all users.
master_info_repository
-
TABLE
Whether slave logs master status and connection info to a table or a file.
16M
64M
64
1024
Specifies the maximum number of messages stored for display by and statements.
max_execution_time
-
0
MySQL renamed the max_statement_time variable.
64
1024
Used to decide which algorithm to choose when sorting rows. If the total size of the column data, not including columns that are part of the sort, is less than max_length_for_sort_data, then these are added to the sort key. This can speed up the sort as there's no need to re-read the same row again later. Setting the value too high can slow things down as there will be a higher disk activity for doing the sort.
4294967295
-
Maximum number of failed connections attempts before no more are permitted.
max_points_in_geometry
-
65536
Maximum points_per_circle for MySQL's ST_Buffer_Strategy() function.
4294967295
-
Maximum number of iterations when executing recursive queries.
1073741824
0
Can be set by session in MariaDB.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
The most key seeks required when searching with an index, regardless of the actual index cardinality. If this value is set lower than its default and maximum, indexes will tend to be preferred over table scans.
9223372036854775807
-
Amount of memory a single user session is allowed to allocate.
0
-
Maximum time in seconds that a query can execute before being aborted. MySQL used to have a variable of this name before renaming it max_execution_time.
32
-
Unused variable removed in MySQL.
4294967295
4294967295 (32-bit) or 18446744073709547520 (64-bit)
Read lock requests will be permitted for processing after this many write locks.
262144
-
Size of buffer to use when using multi-range read with range access. See .
1024
-
Block size used for index pages.
BACKUP,QUICK
OFF
MyISAM recovery mode.
134216704
8388608
Size in bytes of the buffer allocated when creating or sorting indexes on a MyISAM table.
mysql_native_password_proxy_users
-
OFF
Whether MySQL's authentication plugin supports proxy users. I
ON
Causes MariaDB to use the MySQL-5.6 low level formats for , and instead of the MariaDB 5.3+ version.
new
-
OFF
Used for backward-compatibility with MySQL 4.1, not present in MariaDB.
mysqlx+*
-
*
MySQL's X plugin related variables.
ngram_token_size
-
2
Sets the n-gram token size for MySQL's n-gram full-text parser.
offline_mode
-
OFF
MySQL settting for specifying whether the server should run in offline mode.
DEFAULT
OFF
An alias for .
Empty string
-
Used for getting MariaDB to emulate behavior from an old version of MySQL or MariaDB. See .
OFF
-
MySQL 8 is no longer compatible with the old pre-MySQL 4.1 form of password hashing.
100
-
Controls number of record samples to check condition selectivity.
A series of flags for controlling the query optimizer. MariaDB has introduced a number of new settings.
optimizer_trace_*
-
*
MySQL has more settings for optimizer tracing.
4
-
Controls which statistics can be used by the optimizer when looking for the best query execution plan.
original_commit_timestamp
-
*
Used by MySQL 8 for .
parser_max_mem_size
-
4294967295 (32-bit) or 18446744073709547520 (64-bit)
MySQL variable for limiting memory available to the parser.
password_*
-
*
Controls reuse of previous passwords in MySQL.
OFF
ON
The is off by default in MariaDB.
Many performance schema variables are autoset in MySQL, and MySQL has a different version, with additional variables.
One less than the server maturity
-
Minimum acceptable plugin maturity.
5
-
Time in seconds between sending progress reports to the client for time-consuming statements.
(empty)
-
Enable for these source networks.
16384
8192
Size in bytes of the extra blocks allocated during query parsing and execution (after query_prealloc_size is used up).
*
-
MySQL has removed the .
24576
8192
Size in bytes of the persistent buffer for query parsing and execution, allocated on connect and freed on disconnect.
range_optimizer_max_mem_size
-
8388608
MySQL-only variable setting a limit on the range optimizer's memory usage.
rbr_exec_mode
-
STRICT
MySQL-only variable for determining the handling of certain key errors.
0
-
Permits restricting the speed at which the slave reads the binlog from the master.
regexp_*
-
*
Memory and time limits for regular expression matching operations.
relay_log_info_repository
-
TABLE
MySQL-only variable determining whether the slave's position in the relay logs is written to a file or table.
ON
-
Tells the slave to reproduce annotate_rows_events received from the master in its own binary log.
empty string
-
See .
empty string
-
See .
replicate
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
empty string
-
See .
result_metadata
-
FULL
Determine whether the server returns result set metadata for connections where this is optional.
8388608
-
See .
rpl_read_size
-
8192
Minimum data in bytes read from the binary and relay log files.
-
-
MariaDB includes without the need to install a plugin.
rpl_stop_slave_timeout
-
31536000
Controls the time that waits before timing out.
*
-
The S3 storage engine is only available in MariaDB.
schema_definition_cache
-
256
Limits the number of schema definition objects kept in the dictionary object cache.
ON
-
Removed in MySQL.
NO
-
MariaDB-only option permitting the restricting of direct setting of a session timestamp..
server_id_bits
-
server_id
MySQL-only variable for use in MySQL Cluster.
server_uuid
-
UUID
MySQL-only variable containing the UUID.
session_track_gtids
-
OFF
MySQL-only variables for tracking gtid changes. MariaDB and MySQL's gtid implementation is different.
sha256_password_proxy_users
-
OFF
MySQL-only variable determining whether the sha256_password plugin supports proxy users.
show_create_table_verbosity
-
OFF
Option to cause to display ROW_FORMAT in all cases.
show_old_temporals
-
OFF
MySQL-only variable for determining whether SHOW CREATE TABLE output should include comments for old format temporal columns.
OFF
-
See .
OFF
-
See .
slave_allow_batching
-
OFF
MySQL-only replication variable.
slave_checkpoint_group
-
512
MySQL-only replication variable.
slave_checkpoint_period
-
300
MySQL-only replication variable.
IDEMPOTENT
-
Modes for how replication of DDL events should be executed.
0
-
For configuring .
3600
60
MySQL reduced the timeout to 60s.
131072
-
For configuring .
optimistic
-
Controls what transactions are applied in parallel when using .
0
-
For configuring .
slave_parallel_type
-
DATABASE
MySQL-only replication variable.
slave_pending_jobs_size_max
-
16777216
MySQL-only replication variable.
slave_preserve_commit_order
-
OFF
MySQL-only replication variable.
slave_rows_search_algorithms
-
INDEX_SCAN, HASH_SCAN
MySQL-only replication variable.
NO
See for a description and use-case for this setting.
1213,1205
-
When an error occurs during a transaction on the slave, replication usually halts. By default, transactions that caused a deadlock or elapsed lock wait timeout will be retried. One can add other errors to the list of errors that should be retried by adding a comma-separated list of error numbers to this variable.
0
-
Interval in seconds for the slave SQL thread to retry a failed transaction due to a deadlock, elapsed lock wait timeout or an error listed in slave_transaction_retry_errors.
2097152
262144
The default sort buffer allocated has been reduced in MySQL.
OFF
-
Adds an implicit IF EXISTS to ALTER, RENAME and DROP of TABLES, VIEWS, FUNCTIONS and PACKAGES
STRICT_TRANS_TABLES, ERROR_FOR_DIVISION_BY_ZERO, NO_AUTO_CREATE_USER, NO_ENGINE_SUBSTITUTION
ONLY_FULL_GROUP_BY, STRICT_TRANS_TABLES, NO_ZERO_IN_DATE, NO_ZERO_DATE, ERROR_FOR_DIVISION_BY_ZERO, NO_ENGINE_SUBSTITUTION
See .
ssl_fips_mode
-
OFF
Whether FIPS mode is enabled on the server side.
ON
-
See .
InnoDB
-
Alias for , removed in MySQL.
ON
-
In MariaDB, when password validation plugins are enabled, reject passwords that cannot be validated (passwords specified as a hash).
stored_program_definition_cache
-
256
Limits the number of stored program definition objects kept in the dictionary object cache.
super_read_only
-
OFF
MySQL variable for prohibiting client updates from users with the SUPER privilege.
0
1
MySQL synchronizes all actions to the binary log before they are committed.
1
-
.frm files have been removed in MySQL.
ERROR
-
MariaDB has
DEFAULT
-
MariaDB has
400
-1 (autosized)
Number of table definitions that can be cached.
8
16
Maximum number of table cache instances.
tablespace_definition_cache
-
256
Limits the number of tablespace definition objects kept in the dictionary object cache.
0
-
Interval, in seconds, between when successive keep-alive packets are sent if no acknowledgement is received.
0
-
Number of unacknowledged probes to send before considering the connection dead and notifying the application layer.
0
-
Set the TCP_NODELAY option (disable Nagle's algorithm) on socket.
1
-
Timeout, in milliseconds, with no activity until the first TCP keep-alive packet is sent.
temptable_max_ram
-
1GB
Limits the RAM used by MySQL's TempTable storage engine.
Autosized
-1 (autosized)
MariaDB uses an .
0
-
Better precision for the data in the .
0
-
Better precision for the data in the .
60
-
See .
65536
-
See .
1
-
Windows-only. See .
3
-
See .
auto
-
See .
auto
-
See .
Number of processors
16*
See . *Only available in MySQL with a commercial plugin.
500
6*
See . *Only available in MySQL with a commercial plugin.
299008
Varies
See .
%H:%i:%s
-
Removed in MySQL.
18446744073709551615
-
Max size for data for an internal temporary on-disk MyISAM or Aria table.
16777216
-
Alias for .
transaction_allow_batching
-
OFF
Variable for enabling batching of statements within the same transaction in MySQL Cluster.
transaction_isolation
-
REPEATABLE-READ
The MariaDB equivalent is .
transaction_read_only
-
OFF
The MariaDB equivalent is .
transaction_write_set_extraction
-
OFF
Unused MySQL-only variable.
REPEATABLE-READ
-
The MySQL equivalent is transaction_isolation.
OFF
-
The MySQL equivalent is transaction_read_only.
preferably_for_queries
-
Controls the use of .
OFF
-
Whether to activate MariaDB's implementation, not available in MySQL.
version_compile_zlib
-
*
Version of the zlib library compiled in.
*
-
Version of the used malloc library.
Varies
-
Permits seeing exactly which version of the source was used for a build.
*
-
Version of the used TLS library.
windowing_high_use_precision
-
*
MySQL option allowing safety to be sacrificed for speed in calculations.
*
-
Galera cluster is only available in MariaDB.
Variable
MySQL 8.0
Notes