Movatterモバイル変換


[0]ホーム

URL:


14-day MaxScale Trial: Explore the latest version of our advanced database proxy!
Start Trial
LogoLogo
On this page

Server System Variables

About the Server System Variables

MariaDB has many system variables that can be changed to suit your needs.

For a full list of server options, system variables and status variables,see this page.

Most of the system variables are described on this page, but some are described elsewhere:

See also theFull list of MariaDB options, system and status variables.

Most of these can be set withcommand line options and many of them can be changed at runtime.Variables that can be changed at runtime (and therefore are not read-only) are described as "Dynamic" below, and elsewhere in the documentation.

There are a few ways to see the full list of server system variables:

  • While in the mariadb client, run:

SHOW VARIABLES;
  • SeeSHOW VARIABLES for instructions on using this command.

  • From your shell, run mariadbd like so:

mariadbd --verbose --help

Setting Server System Variables

There are several ways to set server system variables:

  • Specify them on the command line:

shell> ./mariadbd-safe --aria_group_commit="hard"
aria_group_commit = "hard"
  • Set them from the mariadb client using theSET command. Only variables that are dynamic can be set at runtime in this way. Note that variables set in this way will not persist after a restart.

SET GLOBAL aria_group_commit="hard";

By convention, server variables have usually been specified with an underscore in the configuration files, and a dash on the command line. You can however specify underscores as dashes - they are interchangeable.

Variables that take a numeric size can either be specified in full, or with a suffix for easier readability. Valid suffixes are:

Suffix
Description
Value

Suffix

Description

Value

K

kilobytes

1024

M

megabytes

10242

G

gigabytes

10243

T

terabytes

10244 (fromMariaDB 10.3.3)

P

petabytes

10245 (fromMariaDB 10.3.3)

E

exabytes

10246 (fromMariaDB 10.3.3)

The suffix can be upper or lower-case.

List of Server System Variables

allow_suspicious_udfs

  • Description: Allows use ofuser-defined functions consisting of only one symbolx() without correspondingx_init() orx_deinit(). That also means that one can load any function from any library, for exampleexit() fromlibc.so. Not recommended unless you require old UDFs with one symbol that cannot be recompiled. BeforeMariaDB 10.10, available as anoption only.

  • Commandline:--allow-suspicious-udfs

  • Scope: Global

  • Dynamic: No

  • Data Type:boolean

  • Default Value:OFF

  • Introduced:MariaDB 10.10

alter_algorithm

  • Description: The impliedALGORITHM forALTER TABLE if noALGORITHM clause is specified. The deprecated variableold_alter_table is an alias for this. The feature was removed inMariaDB 11.5. SeeALGORITHM=DEFAULT.

    • COPY corresponds to the pre-MySQL 5.1 approach of creating an intermediate table, copying data one row at a time, and renaming and dropping tables.

    • INPLACE requests that the operation be refused if it cannot be done natively inside a the storage engine.

    • DEFAULT (the default) choosesINPLACE if available, and falls back toCOPY.

    • NOCOPY refuses to copy a table.

    • INSTANT refuses an operation that would involve any other than metadata changes.

  • Commandline:--alter-algorithm=default

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:enumerated

  • Default Value:DEFAULT

  • Valid Values:DEFAULT,COPY,INPLACE,NOCOPY,INSTANT

  • Introduced:MariaDB 10.3.7

  • Deprecated:MariaDB 11.5

analyze_sample_percentage

  • Description: Percentage of rows from the tableANALYZE TABLE will sample to collect table statistics. Set to 0 to let MariaDB decide what percentage of rows to sample.

  • Commandline:--analyze-sample-percentage=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:100.000000

  • Range:0 to100

  • Introduced:MariaDB 10.4.3

autocommit

  • Description: If set to 1, the default, all queries are committed immediately. TheLOCK IN SHARE MODE andFOR UPDATE clauses therefore have no effect. If set to 0, they are only committed upon aCOMMIT statement, or rolled back with aROLLBACK statement. If autocommit is set to 0, and then changed to 1, all open transactions are immediately committed.

  • Commandline:--autocommit[=#]

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:1

automatic_sp_privileges

  • Description: When set to 1, the default, when a stored routine is created, the creator is automatically granted permission toALTER (which includes dropping) and to EXECUTE the routine. If set to 0, the creator is not automatically granted these privileges.

  • Commandline:--automatic-sp-privileges,--skip-automatic-sp-privileges

  • Scope: Global

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:1

back_log

  • Description: Connections take a small amount of time to start, and this setting determines the number of outstanding connection requests MariaDB can have, or the size of the listen queue for incoming TCP/IP requests. Requests beyond this will be refused. Increase if you expect short bursts of connections. Cannot be set higher than the operating system limit (see the Unix listen() man page). If not set, set to0, or the--autoset-back-log option is used, will be autoset to the lower of900 and (50 +max_connections/5).

  • Commandline:--back-log=#

  • Scope: Global

  • Dynamic: No

  • Type: number

  • Default Value:

basedir

  • Description: Path to the MariaDB installation directory. Other paths are usually resolved relative to this base directory.

  • Commandline:--basedir=path or-b path

  • Scope: Global

  • Dynamic: No

  • Type: directory name

big_tables

  • Description: If this system variable is set to 1, then temporary tables will be saved to disk intead of memory.

    • This system variable's original intention was to allow result sets that were too big for memory-based temporary tables and to avoid the resulting 'table full' errors.

    • This system variable is no longer needed, because the server can automatically convert large memory-based temporary tables into disk-based temporary tables when they exceed the value of thetmp_memory_table_size system variable.

    • To prevent memory-based temporary tables from being used at all, set thetmp_memory_table_size system variable to0.

    • InMariaDB 5.5 and earlier,sql_big_tables is a synonym.

    • FromMariaDB 10.5, this system variable is deprecated.

  • Commandline:--big-tables

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:0

  • Deprecated:MariaDB 10.5.0

bind_address

  • Description: By default, the MariaDB server listens for TCP/IP connections on all addresses. You can specify an alternative when the server starts using this option; either a host name, an IPv4 or an IPv6 address, "::" or "" (all addresses). In some systems, such as Debian and Ubuntu, the bind_address is set to 127.0.0.1, which binds the server to listen on localhost only.bind_address has always been available as amariadbd option; fromMariaDB 10.3.3its also available as a system variable. BeforeMariaDB 10.6.0"::" implied listening additionally on IPv4 addresses like "". From 10.6.0 onwards it refers to IPv6 stictly. Starting withMariaDB 10.11, a comma-separated list of addresses to bind to can be given. See alsoConfiguring MariaDB for Remote Client Access.

  • Commandline:--bind-address=addr

  • Scope: Global

  • Dynamic: No

  • Data Type:string

  • Default Value: (Empty string)

  • Valid Values: Host name, IPv4, IPv6, ::, *

  • Introduced:MariaDB 10.3.3 (as a system variable)

block_encryption_mode

  • Description: Default block encryption mode forAES_ENCRYPT() andAES_DECRYPT() functions.

  • Commandline:--block-encryption-mode=val

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:aes-128-ecb

  • Valid values:aes-128-ecb,aes-192-ecb,aes-256-ecb,aes-128-cbc,aes-192-cbc,aes-256-cbc,aes-128-ctr,aes-192-ctr,aes-256-ctr

  • Introduced:MariaDB 11.2.0

bulk_insert_buffer_size

  • Description: Size in bytes of the per-thread cache tree used to speed up bulk inserts intoMyISAM andAria tables. A value of 0 disables the cache tree.

  • Commandline:--bulk-insert-buffer-size=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:8388608

  • Range - 32 bit:0 to4294967295

  • Range - 64 bit:0 to18446744073709547520

character_set_client

  • Description: Determines thecharacter set for queries arriving from the client. It can be set per session by the client, although the server can be configured to ignore client requests with the--skip-character-set-client-handshake option. If the client does not request a character set, or requests a character set that the server does not support, the global value will be used. utf16, utf16le, utf32 and ucs2 cannot be used as client character sets. FromMariaDB 10.6, theutf8character set (and related collations) is by default an alias forutf8mb3 rather than the other way around. It can be set to implyutf8mb4 by changing the value of theold_mode system variable.

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:string

  • Default Value:utf8mb3 (>=MariaDB 10.6),utf8 (<=MariaDB 10.5)

character_set_collations

  • Description: Overrides for character set default collations. Takes a comma-delimited list of character set and collation settings, for exampleSET @@character_set_collations = 'utf8mb4=uca1400_ai_ci, latin2=latin2_hungarian_ci'; The new variable will take effect in all cases where a character set is explicitly or implicitly specified without an explicit COLLATE clause, including but not limited to:

    • Column collation

    • Table collation

    • Database collation

    • CHAR(expr USING csname)

    • CONVERT(expr USING csname)

    • CAST(expr AS CHAR CHARACTER SET csname)

    • '' - character string literal

    • _utf8mb3'text' - a character string literal with an introducer

    • _utf8mb3 X'61' - a character string literal with an introducer with hex notation

    • _utf8mb3 0x61 - a character string literal with an introducer with hex hybrid notation

    • @@collation_connection after a SET NAMES without COLLATE

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:string

  • Default Value:

    • utf8mb3=utf8mb3_uca1400_ai_ci, ucs2=ucs2_uca1400_ai_ci, utf8mb4=utf8mb4_uca1400_ai_ci, utf16=utf16_uca1400_ai_ci, utf32=utf32_uca1400_ai_ci (>=MariaDB 11.5)

    • Empty (<=MariaDB 11.4)

  • Introduced:MariaDB 11.2

character_set_connection

  • Description:Character set used for number to string conversion, as well as for literals that don't have a character set introducer. FromMariaDB 10.6, theutf8character set (and related collations) is by default an alias forutf8mb3 rather than the other way around. It can be set to implyutf8mb4 by changing the value of theold_mode system variable.

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:string

  • Default Value:utf8mb3 (>=MariaDB 10.6),utf8 (<=MariaDB 10.5)

character_set_database

  • Description:Character set used by the default database, and set by the server whenever the default database is changed. If there's no default database, character_set_database contains the same value ascharacter_set_server. This variable is dynamic, but should not be set manually, only by the server.

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:string

  • Default Value:utf8mb4 (>=MariaDB 11.6.0),latin1 (<=MariaDB 11.5)

character_set_filesystem

  • Description: Thecharacter set for the filesystem. Used for converting file names specified as a string literal fromcharacter_set_client to character_set_filesystem before opening the file. By default set tobinary, so no conversion takes place. This could be useful for statements such asLOAD_FILE() orLOAD DATA INFILE on system where multi-byte file names are use.

  • Commandline:--character-set-filesystem=name

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:string

  • Default Value:binary

character_set_results

  • Description:Character set used for results and error messages returned to the client. FromMariaDB 10.6, theutf8character set (and related collations) is by default an alias forutf8mb3 rather than the other way around. It can be set to implyutf8mb4 by changing the value of theold_mode system variable.

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:string

  • Default Value:utf8mb3 (>=MariaDB 10.6),utf8 (<=MariaDB 10.5)

character_set_server

character_set_system

  • Description:Character set used by the server to store identifiers, always set to utf8, or its synonym utf8mb3 starting withMariaDB 10.6. FromMariaDB 10.6, theutf8character set (and related collations) is by default an alias forutf8mb3 rather than the other way around. It can be set to implyutf8mb4 by changing the value of theold_mode system variable.

  • Scope: Global

  • Dynamic: No

  • Data Type:string

  • Default Value:utf8mb3 (>=MariaDB 10.6),utf8 (<=MariaDB 10.5)

character_sets_dir

  • Description: Directory where thecharacter sets are installed.

  • Commandline:--character-sets-dir=path

  • Scope: Global

  • Dynamic: No

  • Type: directory name

check_constraint_checks

  • Description: If set to0, will disableconstraint checks, for example when loading a table that violates some constraints that you plan to fix later.

  • Scope: Global, Session

  • Dynamic: Yes

  • Type: boolean

  • Default: ON

collation_connection

  • Description: Collation used for the connectioncharacter set.

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:string

collation_database

  • Description:Collation used for the default database. Set by the server if the default database changes, if there is no default database the value from thecollation_server variable is used. This variable is dynamic, but should not be set manually, only by the server.

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:string

collation_server

  • Description: Defaultcollation used by the server. This is set to the default collation for a given character set automatically whencharacter_set_server is changed, but it can also be set manually. Defaults may be different on some systems, see for exampleDifferences in MariaDB in Debian.

  • Commandline:--collation-server=name

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:string

  • Default Value:latin1_swedish_ci

completion_type

  • Description: The transaction completion type. If set toNO_CHAIN or0 (the default), there is no effect on commits and rollbacks. If set toCHAIN or1, aCOMMIT statement is equivalent to COMMIT AND CHAIN, while aROLLBACK is equivalent to ROLLBACK AND CHAIN, so a new transaction starts straight away with the same isolation level as transaction that's just finished. If set toRELEASE or2, aCOMMIT statement is equivalent to COMMIT RELEASE, while aROLLBACK is equivalent to ROLLBACK RELEASE, so the server will disconnect after the transaction completes. Note that the transaction completion type only applies to explicit commits, not implicit commits.

  • Commandline:--completion-type=name

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:enumerated

  • Default Value:NO_CHAIN

  • Valid Values:0,1,2,NO_CHAIN,CHAIN,RELEASE

concurrent_insert

  • Description: If set toAUTO or1, the default, MariaDB allowsconcurrent INSERTs and SELECTs forMyISAM tables with no free blocks in the data (deleted rows in the middle). If set toNEVER or0, concurrent inserts are disabled. If set toALWAYS or2, concurrent inserts are permitted for all MyISAM tables, even those with holes, in which case new rows are added at the end of a table if the table is being used by another thread. If the--skip-new option is used when starting the server, concurrent_insert is set toNEVER. Changing the variable only affects new opened tables. UseFLUSH TABLES If you want it to also affect cached tables. SeeConcurrent Inserts for more.

  • Commandline:--concurrent-insert[=value]

  • Scope: Global

  • Dynamic: Yes

  • Data Type:enumerated

  • Default Value:AUTO

  • Valid Values:0,1,2,AUTO,NEVER,ALWAYS

connect_timeout

  • Description: Time in seconds that the server waits for a connect packet before returning a 'Bad handshake'. Increasing may help if clients regularly encounter 'Lost connection to MySQL server at 'X', system error: error_number' type-errors.

  • Commandline:--connect-timeout=#

  • Scope: Global

  • Dynamic: Yes

  • Type: numeric

  • Default Value:10

  • Range:2 to31536000

core_file

  • Description: Write a core-file on crashes. The file name and location are system dependent. On Linux it is usually calledcore.${PID}, and it is usually written to the data directory. However, this can be changed.

  • Commandline:--core-file

  • Scope: Global

  • Dynamic: No

  • Type: boolean

  • Default Value:

datadir

  • Description: Directory where the data is stored.

  • Commandline:--datadir=path or-h path

  • Scope: Global

  • Dynamic: No

  • Type: directory name

date_format

datetime_format

debug/debug_dbug

  • Description: Available in debug builds only (built with -DWITH_DEBUG=1). Used in debugging through the DBUG library to write to a trace file. Just using--debug will write a trace of what mariadbd is doing to the default trace file.

  • Commandline:-#,--debug[=debug_options]

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:string

  • Default Value:

    • =MariaDB 10.5:d:t:i:o,/tmp/mariadbd.trace (Unix) ord:t:i:O,\mariadbd.trace (Windows)

  • Debug Options: See the option flags on themysql_debug page

debug_no_thread_alarm

  • Description: Disable system thread alarm calls. Disabling it may be useful in debugging or testing, never do it in production.

  • Commandline:--debug-no-thead-alarm=#

  • Scope: Global

  • Dynamic: No

  • Data Type:boolean

  • Default Value:OFF

  • Removed:MariaDB 11.4

debug_sync

  • Description: Used in debugging to show the interface to theDebug Sync facility. MariaDB needs to be configured with -DENABLE_DEBUG_SYNC=1 for this variable to be available.

  • Scope: Session

  • Dynamic: Yes

  • Data Type:string

  • Default Value:OFF orON - current signal signal name

default_password_lifetime

  • Description: This defines the globalpassword expiration policy. 0 means automatic password expiration is disabled. If the value is a positive integer N, the passwords must be changed every N days. This behavior can be overridden using the password expiration options inALTER USER.

  • Commandline:--default-password-lifetime=#

  • Scope: Global

  • Dynamic: Yes

  • Type: numeric

  • Default Value:0

  • Range:0 to4294967295

default_regex_flags

  • Description: Introduced to address remaining incompatibilities betweenPCRE and the old regex library. Accepts a comma-separated list of zero or more of the following values:

Value

Pattern equivalent

Meaning

DOTALL

(?s)

. matches anything including NL

DUPNAMES

(?J)

Allow duplicate names for subpatterns

EXTENDED

(?x)

Ignore white space and comments

EXTRA

(?X)

extra features (e.g. error on unknown escape character)

MULTILINE

(?m)

^ and $ match newlines within data

UNGREEDY

(?U)

Invert greediness of quantifiers

  • Commandline:--default-regex-flags=value

  • Scope: Global, Session

  • Dynamic: Yes

  • Type: enumeration

  • Default Value: empty

  • Valid Values:DOTALL,DUPNAMES,EXTENDED,EXTRA,MULTILINE,UNGREEDY

default_storage_engine

  • Description: The defaultstorage engine. The default storage engine must be enabled at server startup or the server won't start.

  • Commandline:--default-storage-engine=name

  • Scope: Global, Session

  • Dynamic: Yes

  • Type: enumeration

  • Default Value:InnoDB

default_table_type

default_tmp_storage_engine

  • Description: Default storage engine that will be used for tables created withCREATE TEMPORARY TABLE where no engine is specified. For internal temporary tables seearia_used_for_temp_tables). The storage engine used must be active or the server will not start. Seedefault_storage_engine for the default for non-temporary tables. Defaults to NULL, in which case the value fromdefault_storage_engine is used.ROCKSDB temporary tables cannot be created. BeforeMariaDB 10.7, attempting to do so would silently fail, and a MyISAM table would instead be created. FromMariaDB 10.7, an error is returned.

  • Commandline:--default-tmp-storage-engine=name

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:enumeration

  • Default Value: NULL

default_week_format

  • Description: Default mode for theWEEK() function. See that page for details on the different modes

  • Commandline:--default-week-format=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:0

  • Range:0 to7

delay_key_write

  • Description: Specifies how MyISAM tables handlesCREATE TABLE DELAY_KEY_WRITE. If set toON, the default, any DELAY KEY WRITEs are honored. The key buffer is then flushed only when the table closes, speeding up writes. MyISAM tables should be automatically checked upon startup in this case, and --external locking should not be used, as it can lead to index corruption. If set toOFF, DELAY KEY WRITEs are ignored, while if set toALL, all new opened tables are treated as if created with DELAY KEY WRITEs enabled.

  • Commandline:--delay-key-write[=name]

  • Scope: Global

  • Dynamic: Yes

  • Data Type:enumeration

  • Default Value:ON

  • Valid Values:ON,OFF,ALL

delayed_insert_limit

  • Description: After this many rows have been inserted withINSERT DELAYED, the handler will check for and execute any waitingSELECT statements.

  • Commandline:--delayed-insert-limit=#

  • Scope: Global

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:100

  • Range:1 to4294967295

delayed_insert_timeout

  • Description: Time in seconds that theINSERT DELAYED handler will wait for INSERTs before terminating.

  • Commandline:--delayed-insert-timeout=#

  • Scope: Global

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:300

delayed_queue_size

  • Description: Number of rows, per table, that can be queued when performingINSERT DELAYED statements. If the queue becomes full, clients attempting to perform INSERT DELAYED's will wait until the queue has room available again.

  • Commandline:--delayed-queue-size=#

  • Scope: Global

  • Dynamic: Yes

  • Type: numeric

  • Default Value:1000

  • Range:1 to 4294967295

disconnect_on_expired_password

  • Description: When a user password has expired (seeUser Password Expiry), this variable controls how the server handles clients that are not aware of the sandbox mode. If enabled, the client is not permitted to connect, otherwise the server puts the client in a sandbox mode.

  • Commandline:--disconnect-on-expired-password[={0|1}]

  • Scope: Global

  • Dynamic: Yes

  • Type: boolean

  • Default Value:OFF

div_precision_increment

  • Description: The precision of the result of the decimal division will be the larger than the precision of the dividend by that number. By default it's4, soSELECT 2/15 would return 0.1333 andSELECT 2.0/15 would return 0.13333. After setting div_precision_increment to6, for example, the same operation would return 0.133333 and 0.1333333 respectively.

FromMariaDB 10.1.46,MariaDB 10.2.33,MariaDB 10.3.24,MariaDB 10.4.14 andMariaDB 10.5.5,div_precision_increment is taken into account in intermediate calculations. Previous versions did not, and the results were dependent on the optimizer, and therefore unpredictable.

InMariaDB 10.1.46,MariaDB 10.1.47,MariaDB 10.2.33,MariaDB 10.2.34,MariaDB 10.2.35,MariaDB 10.3.24,MariaDB 10.3.25,MariaDB 10.4.14,MariaDB 10.4.15,MariaDB 10.5.5 andMariaDB 10.5.6 only, the fix truncated decimal values after every division, resulting in lower precision in some cases for those versions only.

FromMariaDB 10.1.48,MariaDB 10.2.35,MariaDB 10.3.26,MariaDB 10.4.16 andMariaDB 10.5.7, a different fix was implemented. Instead of truncating decimal values after every division, they are instead truncated for comparison purposes only.

For example

Versions other thanMariaDB 10.1.46,MariaDB 10.1.47,MariaDB 10.2.33,MariaDB 10.2.34,MariaDB 10.2.35,MariaDB 10.3.24,MariaDB 10.3.25,MariaDB 10.4.14,MariaDB 10.4.15,MariaDB 10.5.5 andMariaDB 10.5.6:

SELECT (55/23244*1000);+-----------------+| (55/23244*1000) |+-----------------+| 2.3662          |+-----------------+

MariaDB 10.1.46,MariaDB 10.1.47,MariaDB 10.2.33,MariaDB 10.2.34,MariaDB 10.2.35,MariaDB 10.3.24,MariaDB 10.3.25,MariaDB 10.4.14,MariaDB 10.4.15,MariaDB 10.5.5 andMariaDB 10.5.6 only:

SELECT (55/23244*1000);+-----------------+| (55/23244*1000) |+-----------------+| 2.4000          |+-----------------+

This is because the intermediate result,SELECT 55/23244 takes into accountdiv_precision_increment and results were truncated after every division in those versions only.

  • Commandline:--div-precision-increment=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:4

  • Range:0 to30

encrypt_tmp_disk_tables

encrypt_tmp_files

  • Description: Enables automatic encryption of temporary files, such as those created for filesort operations, binary log file caches, etc. SeeData at Rest Encryption.

  • Commandline:--encrypt-tmp-files[={0|1}]

  • Scope: Global

  • Dynamic: No

  • Data Type:boolean

  • Default Value:OFF

encryption_algorithm

  • Description: Which encryption algorithm to use for table encryption.aes_cbc is the recommended one. SeeTable and Tablespace Encryption.

  • Commandline:--encryption-algorithm=value

  • Scope: Global

  • Dynamic: No

  • Data Type:enum

  • Default Value:none

  • Valid Values:none,aes_ecb,aes_cbc,aes_ctr

  • Introduced:MariaDB 10.1.3

enforce_storage_engine

  • Description: Force the use of a particular storage engine for new tables. Used to avoid unwanted creation of tables using another engine. For example, setting toInnoDB will prevent anyMyISAM tables from being created. If another engine is specified in aCREATE TABLE statement, the outcome depends on whether theNO_ENGINE_SUBSTITUTIONSQL_MODE has been set or not. If set, the query will fail, while if not set, a warning will be returned and the table created according to the engine specified by this variable. The variable has a session scope, but is only modifiable by a user with the SUPER privilege.

  • Commandline: None

  • Scope: Session

  • Dynamic: Yes

  • Data Type:string

  • Default Value:none

engine_condition_pushdown

  • Description: Deprecated inMariaDB 5.5 and removed and replaced by theoptimizer_switchengine_condition_pushdown={on|off} flag inMariaDB 10.0.. Specifies whether the engine condition pushdown optimization is enabled. SinceMariaDB 10.1.1, engine condition pushdown is enabled for all engines that support it.

  • Commandline:--engine-condition-pushdown

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:OFF

  • Deprecated:MariaDB 5.5

  • Removed:MariaDB 10.0

eq_range_index_dive_limit

  • Description: Limit used for speeding up queries listed by long nested INs. The optimizer will use existing index statistics instead of doing index dives for equality ranges if the number of equality ranges for the index is larger than or equal to this number. If set to0 (unlimited), index dives are always used.

  • Commandline:--eq-range-index-dive-limit=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:200

  • Range:0 to4294967295

error_count

  • Description: Read-only variable denoting the number of errors from the most recent statement in the current session that generated errors. SeeSHOW_ERRORS().

  • Scope: Session

  • Dynamic: Yes

  • Data Type:numeric

event_scheduler

  • Description: Status of theEvent Scheduler. Can be set toON orOFF, whileDISABLED means it cannot be set at runtime. Setting the variable will cause a load of events if they were not loaded at startup.

  • Commandline:--event-scheduler[=value]

  • Scope: Global

  • Dynamic: Yes

  • Data Type:enumeration

  • Default Value:OFF

  • Valid Values:ON (or1),OFF (or0),DISABLED

expensive_subquery_limit

  • Description: Number of rows to be examined for a query to be considered expensive, that is, maximum number of rows a subquery may examine in order to be executed during optimization and used for constant optimization.

  • Commandline:--expensive-subquery-limit=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:100

  • Range:0 upwards

explicit_defaults_for_timestamp

external_user

flush

  • Description: Usually, MariaDB writes changes to disk after each SQL statement, and the operating system handles synchronizing (flushing) it to disk. If set toON, the server will synchronize all changes to disk after each statement.

  • Commandline:--flush

  • Scope: Global

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:OFF

flush_time

  • Description: Interval in seconds that tables are closed to synchronize (flush) data to disk and free up resources. If set to 0, the default, there is no automatic synchronizing tables and closing of tables. This option should not be necessary on systems with sufficient resources.

  • Commandline:--flush_time=#

  • Scope: Global

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:0

foreign_key_checks

  • Description: If set to 1 (the default)foreign key constraints (including ON UPDATE and ON DELETE behavior)InnoDB tables are checked, while if set to 0, they are not checked.0 is not recommended for normal use, though it can be useful in situations where you know the data is consistent, but want to reload data in a different order from that that specified by parent/child relationships. Setting this variable to 1 does not retrospectively check for inconsistencies introduced while set to 0.

  • Commandline: None

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:1

ft_boolean_syntax

  • Description: List of operators supported by an IN BOOLEAN MODEfull-text search. If you wish to change, note that each character must be ASCII and non-alphanumeric, the full string must be 14 characters and the first or second character must be a space (marking the behavior by default). Positions 10, 13 and 14 are reserved for future extensions. Also, no duplicates are permitted except for the phrase quoting characters in positions 11 and 12, which may be the same.

  • Commandline:--ft-boolean-syntax=name

  • Scope: Global

  • Dynamic: Yes

  • Data Type:string

  • Default Value:+ -><()*:""&|

ft_max_word_len

  • Description: Maximum length for a word to be included in theMyISAMfull-text index. If this variable is changed, the full-text index must be rebuilt in order for the new value to take effect. The quickest way to do this is by issuing aREPAIR TABLE table_name QUICK statement. Seeinnodb_ft_max_token_size for theInnoDB equivalent.

  • Commandline:--ft-max-word-len=#

  • Scope: Global

  • Dynamic: No

  • Data Type:numeric

  • Default Value:84

  • Minimum Value:10

ft_min_word_len

  • Description: Minimum length for a word to be included in theMyISAMfull-text index. If this variable is changed, the full-text index must be rebuilt in order for the new value to take effect. The quickest way to do this is by issuing aREPAIR TABLE table_name QUICK statement. Seeinnodb_ft_min_token_size for theInnoDB equivalent.

  • Commandline:--ft-min-word-len=#

  • Scope: Global

  • Dynamic: No

  • Data Type:numeric

  • Default Value:4

  • Minimum Value:1

ft_query_expansion_limit

  • Description: Forfull-text searches, denotes the numer of top matches when using WITH QUERY EXPANSION.

  • Commandline:--ft-query-expansion-limit=#

  • Scope: Global

  • Dynamic: No

  • Data Type:numeric

  • Default Value:20

  • Range:0 to1000

ft_stopword_file

  • Description: File containing a list ofstopwords for use inMyISAMfull-text searches. Unless an absolute path is specified the file will be looked for in the data directory. The file is not parsed for comments, so all words found become stopwords. By default, a built-in list of words (built fromstorage/myisam/ft_static.c file) is used. Stopwords can be disabled by setting this variable to'' (an empty string). If this variable is changed, the full-text index must be rebuilt. The quickest way to do this is by issuing aREPAIR TABLE table_name QUICK statement. Seeinnodb_ft_server_stopword_table for theInnoDB equivalent.

  • Commandline:--ft-stopword-file=file_name

  • Scope: Global

  • Dynamic: No

  • Data Type:file name

  • Default Value:(built-in)

general_log

  • Description: If set to 0, the default unless the --general-log option is used, thegeneral query log is disabled, while if set to 1, the general query log is enabled. Seelog_output for how log files are written. If that variable is set toNONE, no logs will be written even if general_query_log is set to1.

  • Commandline:--general-log

  • Scope: Global

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:0

general_log_file

  • Description: Name of thegeneral query log file. If this is not specified, the name is taken from thelog-basename setting or from your system hostname with.log as a suffix. If--log-basename is also set,general_log_file should be placed after in the config files. Later settings override earlier settings, solog-basename will override any earlier log file name settings.

  • Commandline:--general-log-file=file_name

  • Scope: Global

  • Dynamic: Yes

  • Data Type:file name

  • Default Value:host_name.log

group_concat_max_len

  • Description: Maximum length in bytes of the returned result for the functionsGROUP_CONCAT(),JSON_OBJECTAGG andJSON_ARRAYAGG.

  • Commandline:--group-concat-max-len=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:

    • 1048576 (1M)

  • Range:4 to4294967295

.

have_compress

  • Description: If the zlib compression library is accessible to the server, this will be set toYES, otherwise it will beNO. TheCOMPRESS() andUNCOMPRESS() functions will only be available if set toYES.

  • Scope: Global

  • Dynamic: No

have_crypt

  • Description: If the crypt() system call is available this variable will be set toYES, otherwise it will be set toNO. If set toNO, theENCRYPT() function cannot be used.

  • Scope: Global

  • Dynamic: No

have_csv

have_dynamic_loading

  • Description: If the server supports dynamic loading ofplugins, will be set toYES, otherwise will be set toNO.

  • Scope: Global

  • Dynamic: No

have_geometry

  • Description: If the server supports spatial data types, will be set toYES, otherwise will be set toNO.

  • Scope: Global

  • Dynamic: No

have_ndbcluster

  • Description: If the server supports NDBCluster.

  • Scope: Global

  • Dynamic: No

  • Removed:MariaDB 10.0

have_partitioning

  • Description: If the server supports partitioning, will be set toYES, unless the--skip-partition option is used, in which case will be set toDISABLED. Will be set toNO otherwise. Removed inMariaDB 10.0 -SHOW PLUGINS should be used instead.

  • Scope: Global

  • Dynamic: No

  • Removed:MariaDB 10.0

have_profiling

  • Description: If statement profiling is available, will be set toYES, otherwise will be set toNO. SeeSHOW PROFILES() andSHOW PROFILE().

  • Scope: Global

  • Dynamic: No

have_query_cache

  • Description: If the server supports thequery cache, will be set toYES, otherwise will be set toNO.

  • Scope: Global

  • Dynamic: No

have_rtree_keys

  • Description: If RTREE indexes (used forspatial indexes) are available, will be set toYES, otherwise will be set toNO.

  • Scope: Global

  • Dynamic: No

have_symlink

  • Description: This system variable can be used to determine whether the server supports symbolic links (note that it has no meaning on Windows).

    • If symbolic links are supported, then the value will beYES.

    • If symbolic links are not supported, then the value will beNO.

    • If symbolic links are disabled with the--symbolic-links option and theskipoption prefix (i.e. --skip-symbolic-links), then the value will beDISABLED.

    • Symbolic link support is required for theINDEX DIRECTORY andDATA DIRECTORY table options.

  • Scope: Global

  • Dynamic: No

histogram_size

  • Description: Number of bytes used for ahistogram, or, fromMariaDB 10.7 whenhistogram_type is set toJSON_HB, number of buckets. If set to 0, no histograms are created byANALYZE.

  • Commandline:--histogram-size=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:254

  • Range:0 to255

histogram_type

  • Description: Specifies the type ofhistograms created byANALYZE..

    • SINGLE_PREC_HB - single precision height-balanced.

    • DOUBLE_PREC_HB - double precision height-balanced.

    • JSON_HB - JSON height-balanced histograms (fromMariaDB 10.8)

  • Commandline:--histogram-type=value

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:enumeration

  • Default Value:

  • Valid Values:

host_cache_size

  • Description: Number of host names that will be cached to avoid resolving. Setting to0 disables the cache. Changing the value while the server is running causes an implicitFLUSH HOSTS, clearing the host cache and truncating theperformance_schema.host_cache table. If you are connecting from a lot of different machines you should consider increasing.

  • Commandline:--host-cache-size=#.

  • Scope: Global

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:128

  • Range:0 to65536

hostname

  • Description: When the server starts, this variable is set to the server host name.

  • Scope: Global

  • Dynamic: No

  • Data Type:string

identity

idle_readonly_transaction_timeout

idle_transaction_timeout

idle_write_transaction_timeout

ignore_db_dirs

  • Description: Tells the server that this directory can never be a database. That means two things - firstly it is ignored by theSHOW DATABASES command andINFORMATION_SCHEMA tables. And secondly, USE, CREATE DATABASE and SELECT statements will return an error if the database from the ignored list specified. Use this option several times if you need to ignore more than one directory. To make the list empty set the void value to the option as --ignore-db-dir=. If the option or configuration is specified multiple times, viewing this value will list the ignore directories separated by commas.

  • Commandline:--ignore-db-dirs=dir.

  • Scope: Global

  • Dynamic: No

  • Data Type:string

in_predicate_conversion_threshold

  • Description: The minimum number of scalar elements in the value list of an IN predicate that triggers its conversion to an IN subquery. Set to 0 to disable the conversion. SeeConversion of Big IN Predicates Into Subqueries.

  • Commandline:--in-predicate-conversion-threshold=#

  • Scope: Global, Session

  • Dynamic: No

  • Data Type:numeric

  • Default Value:1000

  • Range:0 to4294967295

in_transaction

  • Description: Session-only and read-only variable that is set to1 if a transaction is in progress,0 if not.

  • Commandline: No

  • Scope: Session

  • Dynamic: No

  • Data Type:boolean

  • Default Value:0

init_connect

  • Description: String containing one or more SQL statements, separated by semicolons, that will be executed by the server for each client connecting. If there's a syntax error in the one of the statements, the client will fail to connect. For this reason, the statements are not executed for users with theSUPER privilege or, fromMariaDB 10.5.2, theCONNECTION ADMIN privilege, who can then still connect and correct the error. See alsoinit_file.

  • Commandline:--init-connect=name

  • Scope: Global

  • Dynamic: Yes

  • Data Type:string

init_file

  • Description: Name of a file containing SQL statements that will be executed by the server on startup. Each statement should be on a new line, and end with a semicolon. See alsoinit_connect.

  • Commandline:init-file=file_name

  • Scope: Global

  • Dynamic: No

  • Data Type:file name

insert_id

  • Description: Value to be used for the next statement inserting a newAUTO_INCREMENT value.

  • Scope: Session

  • Dynamic: Yes

  • Data Type:numeric

interactive_timeout

  • Description: Time in seconds that the server waits for an interactive connection (one that connects with the mysql_real_connect() CLIENT_INTERACTIVE option) to become active before closing it. See alsowait_timeout.

  • Commandline:--interactive-timeout=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:28800

  • Range: (Windows):1 to2147483

  • Range: (Other):1 to31536000

join_buffer_size

  • Description: Minimum size in bytes of the buffer used for queries that cannot use an index, and instead perform a full table scan. Increase to get faster full joins when adding indexes is not possible, although be aware of memory issues, since joins will always allocate the minimum size. Best left low globally and set high in sessions that require large full joins. In 64-bit platforms, Windows truncates values above 4GB to 4GB with a warning.

  • Commandline:--join-buffer-size=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:262144 (256kB)

  • Range (non-Windows):128 to18446744073709547520

  • Range (Windows):8228 to18446744073709547520

join_buffer_space_limit

  • Description: Maximum size in bytes of the query buffer, By default 102412810.

  • Commandline:--join-buffer-space-limit=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:2097152

  • Range:2048 to18446744073709551615

join_cache_level

  • Description: Controls which of the eight block-based algorithms can be used for join operations.

    • 1 – flat (Block Nested Loop) BNL

    • 2 – incremental BNL

    • 3 – flat Block Nested Loop Hash (BNLH)

    • 4 – incremental BNLH

    • 5 – flat Batch Key Access (BKA)

    • 6 – incremental BKA

    • 7 – flat Batch Key Access Hash (BKAH)

    • 8 – incremental BKAH

  • Commandline:--join-cache-level=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:2

  • Range:0 to8

keep_files_on_create

  • Description: If aMyISAM table is created with no DATA DIRECTORY option, the .MYD file is stored in the database directory. When set to0, the default, if MariaDB finds another .MYD file in the database directory it will overwrite it. Setting this variable to1 means that MariaDB will return an error instead, just as it usually does in the same situation outside of the database directory. The same applies for .MYI files and no INDEX DIRECTORY option. Deprecated inMariaDB 10.8.0.

  • Commandline:--keep-files-on-create=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:OFF

  • Deprecated:MariaDB 10.8.0

large_files_support

  • Description: ON if the server if was compiled with large file support or not, else OFF

  • Scope: Global

  • Dynamic: No

large_page_size

  • Description: Indicates the size of memory page if large page support (Linux only) is enabled. The page size is determined from the Hugepagesize setting in/proc/meminfo. Seelarge_pages. Deprecated and unused inMariaDB 10.5.3 since multiple page size support was added.

  • Scope: Global

  • Dynamic: No

  • Data Type:numeric

  • Default Value: Autosized (see description)

  • Deprecated:MariaDB 10.5.3

large_pages

  • Description: Indicates whether large page support (prior toMariaDB 10.5, Linux only, by now supported Windows and BSD distros, also called huge pages) is used. This is set with--large-pages or disabled with--skip-large-pages. Large pages are used for theinnodb buffer pool and for online DDL (of size 3*innodb_sort_buffer_size (or 6 when encryption is used)). To use large pages, the Linuxsysctl variablekernel.shmmax must be large than the llocation. Also thesysctl variablevm.nr_hugepages multipled bylarge-page) must be larger than the usage. The ulimit for locked memory must be sufficient to cover the amount used (ulimit -l and equalivent in /etc/security/limits.conf / or in systemdLimitMEMLOCK). If these operating system controls or insufficient free huge pages are available, the allocation of large pages will fall back to conventional memory allocation and a warning will appear in the logs. Only allocations of the defaultHugepagesize currently occur (see/proc/meminfo).

  • Commandline:--large-pages,--skip-large-pages

  • Scope: Global

  • Dynamic: No

  • Data Type:boolean

  • Default Value:OFF

last_insert_id

  • Description: Contains the same value as that returned byLAST_INSERT_ID(). Note that setting this variable doen't update the value returned by the underlying function.

  • Scope: Session

  • Dynamic: Yes

  • Data Type:numeric

lc_messages

  • Description: This system variable can be specified as alocale name. The language of the associatedlocale will be used for error messages. SeeServer Locales for a list of supported locales and their associated languages.

  • Commandline:--lc-messages=name

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:string

  • Default Value:en_us

lc_messages_dir

  • Description: This system variable can be specified either as the path to the directory storing the server'serror message files or as the path to the directory storing the specific language'serror message file. SeeServer Locales for a list of available locales and their related languages.

  • Commandline:--lc-messages-dir=path

  • Scope: Global

  • Dynamic: No

  • Data Type:directory name

lc_time_names

  • Description: The locale that determines the language used for the date and time functionsDAYNAME(),MONTHNAME() andDATE_FORMAT(). Locale names are language and region subtags, for example 'en_ZA' (English - South Africa) or 'es_US: Spanish - United States'. The default is always 'en-US' regardless of the system's locale setting. Seeserver locale for a full list of supported locales.

  • Commandline:--lc-time-names=name

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:string

  • Default Value:en_US

legacy_xa_rollback_at_disconnect

  • Description: If a user session disconnects after putting a transaction into theXA PREPARE state, roll back the transaction. Can be used for backwards compatibility to enable this pre-10.5 behavior for applications that expect it. Note that this violates the XA Specification and should not be used for new code.

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

license

  • Description: Server license, for exampleGPL.

  • Scope: Global

  • Dynamic: No

  • Data Type:string

local_infile

  • Description: If set to1, LOCAL is supported forLOAD DATA INFILE statements. If set to0, usually for security reasons, attempts to perform a LOAD DATA LOCAL will fail with an error message.

  • Commandline:--local-infile=#

  • Scope: Global

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:ON

lock_wait_timeout

  • Description: Timeout in seconds for attempts to acquiremetadata locks. Statements using metadata locks includeFLUSH TABLES WITH READ LOCK,LOCK TABLES, HANDLER and DML and DDL operations on tables,stored procedures andfunctions, andviews. The timeout is separate for each attempt, of which there may be multiple in a single statement.0 means no wait. SeeWAIT and NOWAIT.

  • Commandline:--lock-wait-timeout=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:

    • 86400 (1 day)

  • Range:

    • 0 to31536000

locked_in_memory

  • Description: Indicates whether --memlock was used to lock mariadbd in memory.

  • Commandline:--memlock

  • Scope: Global

  • Dynamic: No

  • Data Type:boolean

  • Default Value:OFF

log

  • Description: Deprecated and removed inMariaDB 10.0, usegeneral_log instead.

  • Commandline:-l [filename] or--log[=filename]

  • Scope: Global

  • Dynamic: Yes

  • Data Type:string

  • Default Value:OFF

  • Removed:MariaDB 10.0

log_disabled_statements

  • Description: If set, the specified type of statements (slave and/or stored procedure statements) will not be logged to thegeneral log. Multiple values are comma-separated, without spaces.

  • Commandline:--log-disabled_statements=value

  • Scope: Global, Session

  • Dynamic: No

  • Data Type:set

  • Default Value:sp

  • Valid Values:slave and/orsp, or empty string for none

log_error

  • Description: Specifies the name of theerror log. If--console is specified later in the configuration (Windows only) or this option isn't specified, errors will be logged to stderr. If no name is provided, errors will still be logged tohostname.err in thedatadir directory by default. If a configuration file sets--log-error, one can reset it with--skip-log-error (useful to override a system wide configuration file). MariaDB always writes its error log, but the destination is configurable. Seeerror log for details. Note that if--log-basename is also set,log_error should be placed after in the config files. Later settings override earlier settings, solog-basename will override any earlier log file name settings.

  • Commandline:--log-error[=name],--skip-log-error

  • Scope: Global

  • Dynamic: No

  • Data Type:file name

  • Default Value: (empty string)

log_output

  • Description: How the output for thegeneral query log and theslow query log is stored. By default written to file (FILE), it can also be stored in thegeneral_log andslow_log tables in the mysql database (TABLE), or not stored at all (NONE). More than one option can be chosen at the same time, withNONE taking precedence if present. Logs will not be written if logging is not enabled. SeeWriting logs into tables, and theslow_query_log andgeneral_log server system variables.

  • Commandline:--log-output=name

  • Scope: Global

  • Dynamic: Yes

  • Data Type:set

  • Default Value:FILE

  • Valid Values:TABLE,FILE orNONE

log_queries_not_using_indexes

  • Description: Queries that don't use an index, or that perform a full index scan where the index doesn't limit the number of rows, will be logged to theslow query log (regardless of time taken). The slow query log needs to be enabled for this to have an effect. Mapped tolog_slow_filter='not_using_index' fromMariaDB 10.3.1.

  • Commandline:--log-queries-not-using-indexes

  • Scope: Global

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:OFF

log_slow_admin_statements

log_slow_disabled_statements

  • Description: If set, the specified type of statements will not be logged to theslow query log. See alsolog_slow_admin_statements andlog_slow_filter.

  • Commandline:--log-slow-disabled_statements=value

  • Scope: Global, Session

  • Dynamic: No

  • Data Type:set

  • Default Value:sp

  • Valid Vales:admin,call,slave and/orsp

log_slow_filter

  • Description: Comma-delimited string (without spaces) containing one or more settings for filtering what is logged to theslow query log. If a query matches one of the types listed in the filter, and takes longer thanlong_query_time, it will be logged(except for 'not_using_index' which is always logged if enabled, regardless of the time). Setslog-slow-admin-statements to ON. See alsolog_slow_disabled_statements.

    • admin logadministrative queries (create, optimize, drop etc...)

    • filesort logs queries that use a filesort.

    • filesort_on_disk logs queries that perform a a filesort on disk.

    • filesort_priority_queue

    • full_join logs queries that perform a join without indexes.

    • full_scan logs queries that perform full table scans.

    • not_using_index logs queries that don't use an index, or that perform a full index scan where the index doesn't limit the number of rows. Disregardslong_query_time, unlike other options.log_queries_not_using_indexes maps to this option. FromMariaDB 10.3.1.

    • query_cache log queries that are resolved by the query cache.

    • query_cache_miss logs queries that are not found in thequery cache.

    • tmp_table logs queries that create an implicit temporary table.

    • tmp_table_on_disk logs queries that create a temporary table on disk.

  • Commandline:log-slow-filter=value1[,value2...]

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:enumeration

  • Default Value:

    • admin,filesort,filesort_on_disk,filesort_priority_queue,full_join,full_scan,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk

  • Valid Values:

    • admin,filesort,filesort_on_disk,filesort_priority_queue,full_join,full_scan,not_using_index,query_cache,query_cache_miss,tmp_table,tmp_table_on_disk

log_slow_max_warnings

log_slow_min_examined_row_limit

  • Description: Don't write queries toslow query log that examine fewer rows than the set value. If set to0, the default, no row limit is used.min_examined_row_limit is an alias. FromMariaDB 11.7, queries slower thanlog_slow_always_query_time will always be logged.

  • Commandline:--log-slow-min-examined-row-limit=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:0

  • Range:0-4294967295

  • Introduced:MariaDB 10.11

log_slow_queries

  • Description: Deprecated and removed inMariaDB 10.0, useslow_query_log instead.

  • Commandline:--log-slow-queries[=name]

  • Scope: Global

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:OFF

  • Removed:MariaDB 10.0

log_slow_query

  • Description: If set to 0, the default unless the --slow-query-log option is used, theslow query log is disabled, while if set to 1 (both global and session variables), the slow query log is enabled. Namedslow_query_log beforeMariaDB 10.11.0, which is now an alias.

  • Commandline:--slow-query-log

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:0

  • Introduced:MariaDB 10.11.0

  • See also: Seelog_output to see how log files are written. If that variable is set toNONE, no logs will be written even if log_slow_query is set to1.

log_slow_query_file

  • Description: Name of theslow query log file. BeforeMariaDB 10.11, was namedslow_query_log_file. This was namedlog_slow_query_file_name in theMariaDB 10.11.0 preview release. If--log-basename is also set,log_slow_query_file should be placed after in the config files. Later settings override earlier settings, solog-basename will override any earlier log file name settings.

  • Commandline:--log-slow-query-file=file_name

  • Scope: Global

  • Dynamic: Yes

  • Data Type:file name

  • Default Value:host_name-slow.log

  • Introduced:MariaDB 10.11.0

log_slow_query_time

log_slow_rate_limit

  • Description: Theslow query log will log every this many queries. The default is1, or every query, while setting it to20 would log every 20 queries, or five percent. Aims to reduce I/O usage and excessively large slow query logs. See alsoSlow Query Log Extended Statistics. FromMariaDB 11.7, queries slower thanlog_slow_always_query_time will always be logged.

  • Commandline:log-slow-rate-limit=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:1

  • Range:1 upwards

log_slow_verbosity

log_tc_size

  • Description: Defines the size in bytes of the memory-mapped file-based transaction coordinator log, which is only used if thebinary log is disabled. If you have two or more XA-capable storage engines enabled, then a transaction coordinator log must be available. This size is defined in multiples of 4096. SeeTransaction Coordinator Log for more information. Also see the--log-tc server option and the--tc-heuristic-recover option.

  • Commandline:log-tc-size=#

  • Scope: Global

  • Dynamic: No

  • Data Type:numeric

  • Default Value:24576

  • Range:12288 to18446744073709551615

log_warnings

  • Description: Determines which additional warnings are logged. Setting to0 disables additional warning logging. Note that this does not prevent all warnings, there is a core set of warnings that will always be written to the error log. The additional warnings are as follows:

    • log_warnings >= 1

  • Event scheduler information.

  • System signals

  • Wrong usage of--user

  • Failed setrlimit() and mlockall()

  • Changed limits

  • Wrong values of lower_case_table_names and stack_size

  • Wrong values for command line options

  • Start log position and some master information when starting slaves

  • Slave reconnects

  • Killed slaves

  • Error reading relay logs

  • Unsafe statements for statement-based replication. If this warning occurs frequently, it is throttled to prevent flooding the log.

  • Disabledplugins that one tried to enable or use.

  • UDF files that didn't include the required init functions.

  • DNS lookup failures.

  • log_warnings >= 2

  • Access denied errors.

  • Connections aborted or closed due to errors or timeouts.

  • Table handler errors

  • Messages related to the files used topersist replication state:

  • Either the defaultmaster.info file or the file that is configured by themaster_info_file option.

  • Either the defaultrelay-log.info file or the file that is configured by therelay_log_info_file system variable.

  • Information about a master'sbinary log dump thread.

  • log_warnings >= 3

  • All errors and warnings duringMyISAM repair and auto recover.

  • Information about old-style language options.

  • log_warnings >=4

  • Connections aborted due to "Too many connections" errors.

  • Connections closed normally without authentication.

  • Connections aborted due toKILL.

  • Connections closed due to released connections, such as whencompletion_type is set toRELEASE.

  • Could not read packet: (a lot more information)

  • All read/write errors for a connection are logged to the error log.

  • log_warnings >=9

  • Information about initializing plugins.

  • Commandline:-W [level] or--log-warnings[=level]

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:2

  • Range:0 to4294967295

long_query_time

  • Description: If a query takes longer than this many seconds to execute (microseconds can be specified too), theSlow_queries status variable is incremented and, if enabled, the query is logged to theslow query log. FromMariaDB 10.11.0, this is an alias forlog_slow_query_time.

  • Commandline:--long-query-time=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:10.000000

  • Range:0 upwards

low_priority_updates

  • Description: If set to 1 (0 is the default), forstorage engines that use only table-level locking (Aria,MyISAM,MEMORY andMERGE), all INSERTs, UPDATEs, DELETEs and LOCK TABLE WRITEs will wait until there are no more SELECTs or LOCK TABLE READs pending on the relevant tables. Set this to 1 if reads are prioritized over writes.

  • Commandline:--low-priority-updates

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:0

lower_case_file_system

  • Description: Read-only variable describing whether the file system is case-sensitive. If set toOFF, file names are case-sensitive. If set toON, they are not case-sensitive.

  • Scope: Global

  • Dynamic: No

  • Data Type:boolean

  • Default Value:##

lower_case_table_names

  • Description: If set to0 (the default on Unix-based systems), table names and aliases and database names are compared in a case-sensitive manner. If set to1 (the default on Windows), names are stored in lowercase and not compared in a case-sensitive manner. If set to2 (the default on Mac OS X), names are stored as declared, but compared in lowercase.This system variable's value cannot be changed after the datadir has been initialized. lower_case_table_names is set when a MariaDB instance starts, and it remains constant afterwards.

  • Commandline:--lower-case-table-names[=#]

  • Scope: Global

  • Dynamic: No

  • Data Type:numeric

  • Default Value:0 (Unix),1 (Windows),2 (Mac OS X)

  • Range:0 to2

max_allowed_packet

  • Description: Maximum size in bytes of a packet or a generated/intermediate string. The packet message buffer is initialized with the value fromnet_buffer_length, but can grow up to max_allowed_packet bytes. Set as large as the largest BLOB, in multiples of 1024. If this value is changed, it should be changed on the client side as well. Seeslave_max_allowed_packet for a specific limit for replication purposes.

  • Commandline:--max-allowed-packet=#

  • Scope: Global, Session

  • Dynamic: Yes (Global), No (Session)

  • Data Type:numeric

  • Default Value:

    • 16777216 (16M)

    • 1073741824 (1GB) (client-side)

  • Range:1024 to1073741824

max_connect_errors

  • Description: Limit to the number of successive failed connects from a host before the host is blocked from making further connections. The count for a host is reset to zero if they successfully connect. To unblock, flush the host cache with aFLUSH HOSTS statement ormariadb-admin flush-hosts. Theperformance_schema.host_cache table contains the status of the current hosts.

  • Commandline:--max-connect-errors=#

  • Scope: Global

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:100

  • Range:1 to4294967295

max_connections

  • Description: The maximum number of simultaneous client connections. See alsoHandling Too Many Connections. Note that this value affects the number of file descriptors required on the operating system. Minimum was changed from1 to10 to avoid possible unexpected results for the user (MDEV-18252). Note that MariaDB always has one reserved connection for aSUPER (orCONNECTION ADMIN user). Additionally it can listen on a separate port, so will be available even when the max_connections limit is reached.

  • Commandline:--max-connections=#

  • Scope: Global

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:151

  • Range:10 to100000

max_delayed_threads

  • Description: Limits to the number ofINSERT DELAYED threads. Once this limit is reached, the insert is handled as if there was no DELAYED attribute. If set to0, DELAYED is ignored entirely. The session value can only be set to0 or to the same as the global value.

  • Commandline:--max-delayed-threads=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:20

  • Range:0 to16384

max_digest_length

  • Description: Maximum length considered for computing a statement digest, such as used by thePerformance Schema and query rewrite plugins. Statements that differ after this many bytes produce the same digest, and are aggregated for statistics purposes. The variable is allocated per session. Increasing will allow longer statements to be distinguished from each other, but increase memory use, while decreasing will reduce memory use, but more statements may become indistinguishable.

  • Commandline:--max-digest-length=#

  • Scope: Global,

  • Dynamic: No

  • Data Type:numeric

  • Default Value:1024

  • Range:0 to1048576

max_error_count

  • Description: Specifies the maximum number of messages stored for display bySHOW ERRORS andSHOW WARNINGS statements.

  • Commandline:--max-error-count=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:64

  • Range:0 to65535

max_heap_table_size

  • Description: Maximum size in bytes for user-createdMEMORY tables. Setting the variable while the server is active has no effect on existing tables unless they are recreated or altered. The smaller of max_heap_table_size andtmp_table_size also limits internal in-memory tables. When the maximum size is reached, any further attempts to insert data will receive a "table ... is full" error. Temporary tables created withCREATE TEMPORARY will not be converted to Aria, as occurs with internal temporary tables, but will also receive a table full error.

  • Commandline:--max-heap-table-size=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:16777216

  • Range :16384 to4294966272

max_insert_delayed_threads

max_join_size

  • Description: Statements will not be performed if they are likely to need to examine more than this number of rows, row combinations or do more disk seeks. Can prevent poorly-formatted queries from taking server resources. Changing this value to anything other the default will resetsql_big_selects to 0. If sql_big_selects is set again, max_join_size will be ignored. This limit is also ignored if the query result is sitting in thequery cache. Previously namedsql_max_join_size, which is still a synonym.

  • Commandline:--max-join-size=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:18446744073709551615

  • Range:1 to18446744073709551615

max_length_for_sort_data

  • Description: 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 thanmax_length_for_sort_data, then we add these to the sort key. This can speed up the sort as we don't have 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.

  • Commandline:--max-length-for-sort-data=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:1024

  • Range:4 to8388608

max_long_data_size

max_password_errors

  • Description: The maximum permitted number of failed connection attempts due to an invalid password before a user is blocked from further connections.FLUSH_PRIVILEGES will permit the user to connect again. This limit is not applicable for users with theSUPER privilege or, fromMariaDB 10.5.2, theCONNECTION ADMIN privilege, with a hostname of localhost, 127.0.0.1 or ::1. See also theInformation Schema USERS table.

  • Commandline:--max-password-errors=#

  • Scope: Global

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:4294967295

  • Range:1 to4294967295

max_prepared_stmt_count

  • Description: Maximum number of prepared statements on the server. Can help prevent certain forms of denial-of-service attacks. If set to0, no prepared statements are permitted on the server.

  • Commandline:--max-prepared-stmt-count=#

  • Scope: Global

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:16382

  • Range:0 to4294967295

max_recursive_iterations

  • Description: Maximum number of iterations when executing recursive queries, used to prevent infinite loops inrecursive CTEs.

  • Commandline:--max-recursive-iterations=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:1000 (>=MariaDB 10.6.0),4294967295 (<=MariaDB 10.5)

  • Range:0 to4294967295

max_rowid_filter_size

  • Description: The maximum size of the container of a rowid filter.

  • Commandline:--max-rowid-filter-size=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:131072

  • Range:1024 to18446744073709551615

max_seeks_for_key

  • Description: The optimizer assumes that the number specified here is 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.

  • Commandline:--max-seeks-for-key=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:4294967295

  • Range:1 to4294967295

max_session_mem_used

  • Description: Amount of memory a single user session is allowed to allocate. This limits the value of the session variableMemory_used.

  • Commandline:--max-session-mem-used=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:9223372036854775807 (8192 PB)

  • Range:8192 to18446744073709551615

max_sort_length

  • Description: Maximum size in bytes used for sorting data values - anything exceeding this is ignored. The server uses only the firstmax_sort_length bytes of each value and ignores the rest. Increasing this may requiresort_buffer_size to be increased (especially if ER_OUT_OF_SORTMEMORY errors start appearing). FromMariaDB 11.7, a warning is generated when max_sort_length is exceeded.

  • Commandline:--max-sort-length=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:1024

  • Range:

max_sp_recursion_depth

  • Description: Permitted number of recursive calls for astored procedure.0, the default, no recursion is permitted. Increasing this value increases the thread stack requirements, so you may need to increasethread_stack as well. This limit doesn't apply tostored functions.

  • Commandline:--max-sp-recursion-depth[=#]

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:0

  • Range:0 to255

max_statement_time

  • Description: Maximum time in seconds that a query can execute before being aborted. This includes all queries, not justSELECT statements, but excludes statements in stored procedures. If set to 0, no limit is applied. SeeAborting statements that take longer than a certain time to execute for details and limitations. Useful when combined withSET STATEMENT for limiting the execution times of individual queries. Replicas are not affected by this variable, however, fromMariaDB 10.10, there'sslave_max_statement_time that sets the limit to abort queries on a replica.

  • Commandline:--max-statement-time[=#]

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:0.000000

  • Range:0 to31536000

max_tmp_tables

max_user_connections

  • Description:Maximum simultaneous connections permitted for each user account. When set to0, there is no per user limit. Setting it to-1 stops users without theSUPER privilege or, fromMariaDB 10.5.2, theCONNECTION ADMIN privilege, from connecting to the server. The session variable is always read-only and only privileged users can modify user limits. The session variable defaults to the globalmax_user_connections variable, unless the user's specificMAX_USER_CONNECTIONS resource option is non-zero. When both global variable and the user resource option are set, the user'sMAX_USER_CONNECTIONS is used. Note: This variable does not affect users with theSUPER privilege or, fromMariaDB 10.5.2, theCONNECTION ADMIN privilege.

  • Commandline:--max-user-connections=#

  • Scope: Global, Session

  • Dynamic: Yes, (except when globally set to0 or-1)

  • Data Type:numeric

  • Default Value:0

  • Range:-1 to4294967295

max_write_lock_count

  • Description: Read lock requests will be permitted for processing after this many write locks. Applies only to storage engines that use table level locks (thr_lock), so no effect withInnoDB orArchive.

  • Commandline:--max-write-lock-count=#

  • Scope: Global

  • Dynamic: No

  • Data Type:numeric

  • Default Value:4294967295

  • Range:1 to4294967295

metadata_locks_cache_size

  • Description: Unused since 10.1.4

  • Commandline:--metadata-locks-cache-size=#

  • Scope: Global

  • Dynamic: No

  • Data Type:numeric

  • Default Value:1024

  • Range:1 to1048576

metadata_locks_hash_instances

  • Description: Unused since 10.1.4

  • Commandline:--metadata-locks-hash-instances=#

  • Scope: Global

  • Dynamic: No

  • Data Type:numeric

  • Default Value:8

  • Range:1 to1024

min_examined_row_limit

  • Description: Don't write queries toslow query log that examine fewer rows than the set value. If set to0, the default, no row limit is used. FromMariaDB 10.11.0, this is an alias forlog_slow_min_examined_row_limit.

  • Commandline:--min-examined-row-limit=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:0

  • Range:0-4294967295

mrr_buffer_size

  • Description: Size of buffer to use when using multi-range read with range access. SeeMulti Range Read optimization for more information.

  • Commandline:--mrr-buffer-size=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:262144

  • Range8192 to2147483647

multi_range_count

mysql56_temporal_format

  • Description: If set (the default), MariaDB uses the MySQL 5.6 low level formats forTIME,DATETIME andTIMESTAMP instead of theMariaDB 5.3 version. The version MySQL introduced in 5.6 requires more storage, but potentially allows negative dates and has some advantages in replication. There should be no reason to revert to the oldMariaDB 5.3 microsecond format. See alsoMDEV-10723.

  • Commandline:--mysql56-temporal-format

  • Scope: Global

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:ON

named_pipe

  • Description: On Windows systems, determines whether connections over named pipes are permitted.

  • Commandline:--named-pipe

  • Scope: Global

  • Dynamic: No

  • Data Type:boolean

  • Default Value:OFF

net_buffer_length

  • Description: The starting size, in bytes, for the connection and thread buffers for each client thread. The size can grow tomax_allowed_packet. This variable's session value is read-only. Can be set to the expected length of client statements if memory is a limitation.

  • Commandline:--net-buffer-length=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:16384

  • Range:1024 to1048576

net_read_timeout

  • Description: Time in seconds the server will wait for a client connection to send more data before aborting the read. See alsonet_write_timeout andslave_net_timeout

  • Commandline:--net-read-timeout=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:30

  • Range:1 to31536000

net_retry_count

  • Description: Permit this many retries before aborting when attempting to read or write on a communication port. On FreeBSD systems should be set higher as threads are sent internal interrupts..

  • Commandline:--net-retry-count=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:10

  • Range:1 to4294967295

net_write_timeout

  • Description: Time in seconds to wait on writing a block to a connection before aborting the write. See alsonet_read_timeout andslave_net_timeout.

  • Commandline:--net-write-timeout=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:60

  • Range:1 upwards

note_verbosity

  • Description: Verbosity level for note-warnings given to the user. Options are added in a comma-delimited string, except forall, which sets all options. Be aware that if the oldsql_notes variable is 0, one will not get any notes. Settingnote_verbosity to "" is the recommended way to disable notes.

    • basic All old notes.

    • unusable_keys Give warnings for unusable keys for SELECT, DELETE and UPDATE.

    • explain Give warnings for unusable keys for EXPLAIN.

    • all Enables all above options. This has to be given alone.

  • Commandline:note-verbosity=value1[,value2...]

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:enumeration

  • Default Value:basic,explain

  • Valid Values:basic,explain,unusable_keys orall.

  • Introduced:MariaDB 10.6.16

old

  • Description: Disabled by default, enabling it reverts index hints to those used before MySQL 5.1.17. Enabling may lead to replication errors. Deprecated and replaced byold_mode fromMariaDB 10.9.

  • Commandline:--old

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:OFF

  • Deprecated:MariaDB 10.9

old_alter_table

old_mode

  • Description: Used for getting MariaDB to emulate behavior from an old version of MySQL or MariaDB. SeeOLD Mode. Fully replaces theold variable fromMariaDB 10.9. Non-default OLD_MODE options are by design deprecated and will eventually be removed.

  • Commandline:--old-mode

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:string

  • Default Value:UTF8_IS_UTF8MB3 (>=MariaDB 10.6)(empty string) (<=MariaDB 10.5)

  • Valid Values: SeeOLD Mode for the full list.

old_passwords

  • Description: If set to1 (0 is default), MariaDB reverts to using themysql_old_password authentication plugin by default for newly created users and passwords, instead of themysql_native_password authentication plugin.

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:OFF

open_files_limit

  • Description: The number of file descriptors available to MariaDB. If you are getting theToo many open files error, then you should increase this limit. If set to 0, then MariaDB will calculate a limit based on the following:

MAX(max_connections*5,max_connections +table_open_cache*2)

MariaDB sets the limit withsetrlimit. MariaDB cannot set this to exceed the hard limit imposed by the operating system. Therefore, you may also need to change the hard limit. There are a few ways to do so.

optimizer_extra_pruning_depth

  • Description:If the optimizer needs to enumerate a join prefix of this size or larger, then it will try aggressively prune away the search space.

  • Commandline:--optimizer-extra-pruning-depth[=#]

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:8

  • Range:0 to62

  • Introduced:MariaDB 10.10.1

optimizer_join_limit_pref_ratio

optimizer_max_sel_arg_weight

  • Description: This is an actively enforced maximum effective SEL_ARG tree weight limit. A SEL_ARG weight is the number of effective "ranges" hanging off this root (that is, merged tree elements are "unmerged" to count the weight). During range analysis, looking for possible index merges, SEL_ARG graphs related to key ranges in query conditions are being processed. Graphs exceeding this limit will stop keys being 'and'ed and 'or'ed together to form a new larger SEL_ARG graph. After each 'and' or 'or' process, this maximum weight limit is enforced. It enforces this limit by pruning the key part being used. This key part pruning can be used to limit/disable index merge SEL_ARG graph construction on overly long query conditions.

  • Commandline:--optimizer-max-sel-arg-weight=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:32000

  • Range:0 to18446744073709551615

  • Introduced:MariaDB 10.5.9

optimizer_max_sel_args

  • Description: The maximum number of SEL_ARG objects created when optimizing a range. If more objects would be needed, range scans will not be used by the optimizer.

  • Commandline:--optimizer-max-sel-args=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:16000

  • Range:0 to4294967295

optimizer_prune_level

  • Description:Controls the heuristic(s) applied during query optimization to prune less-promising partial plans from the optimizer search space.

    • 0: heuristics are disabled and an exhaustive search is performed

    • 1: the optimizer will use heuristics to prune less-promising partial plans from the optimizer search space

    • 2: tables using EQ_REF will be joined together as 'one entity' and the different combinations of these tables will not be considered (fromMariaDB 10.10)

  • Commandline:--optimizer-prune-level[=#]

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:2 (>=MariaDB 10.10),1 (<=MariaDB 10.9)

optimizer_search_depth

  • Description: Maximum search depth by the query optimizer. Smaller values lead to less time spent on execution plans, but potentially less optimal results. If set to0, MariaDB will automatically choose a reasonable value. Since the better results from more optimal planning usually offset the longer time spent on planning, this is set as high as possible by default.63 is a valid value, but its effects (switching to the original find_best search) are deprecated.

  • Commandline:--optimizer-search-depth[=#]

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:62

  • Range:0 to63

optimizer_selectivity_sampling_limit

  • Description: Controls number of record samples to check condition selectivity. Only used if[optimizer_use_condition_selectivity](server-system-variables.md#optimizer_use_condition_selectivity) > 4.

  • Commandline:optimizer-selectivity-sampling-limit[=#]

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:100

  • Range:10 upwards

optimizer_switch

optimizer_trace

  • Description: Controlstracing of the optimizer: optimizer_trace=option=val[,option=val...], where option is one of {enabled} and val is one of {on, off, default}

  • Commandline:--optimizer-trace=value

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:enum

  • Default Value:enabled=off

  • Valid Values:enabled={on|off|default}

optimizer_trace_max_mem_size

  • Description: Limits the memory used while tracing a query by specifying the maximum allowed cumulated size, in bytes, of storedoptimizer traces.

  • Commandline:--optimizer-trace-max-mem-size=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:1048576

  • Range:1 to18446744073709551615

optimizer_use_condition_selectivity

  • Description: Controls which statistics can be used by the optimizer when looking forthe best query execution plan. In most cases, the default value,4 will be suitable. However, if you are hitting some of the rare cases where this does not work well (seeMDEV-23707), you can usually work around this by setting this variable to1.

    • 1 Use selectivity of predicates as inMariaDB 5.5.

    • 2 Use selectivity of all range predicates supported by indexes.

    • 3 Use selectivity of all range predicates estimated withouthistogram.

    • 4 Use selectivity of all range predicates estimated withhistogram.

    • 5 Additionally use selectivity of certain non-range predicates calculated on record sample.

  • Commandline:--optimizer-use-condition-selectivity=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:4

  • Range:1 to5

pid_file

  • Description: Full path of the process ID file. If--log-basename is also set,pid_file should be placed after in the config files. Later settings override earlier settings, solog-basename will override any earlier log file name settings.

  • Commandline:--pid-file=file_name

  • Scope: Global

  • Dynamic: No

  • Data Type:file name

plugin_dir

  • Description: Path to theplugin directory. For security reasons, either make sure this directory can only be read by the server, or setsecure_file_priv.

  • Commandline:--plugin-dir=path

  • Scope: Global

  • Dynamic: No

  • Data Type:directory name

  • Default Value:BASEDIR/lib/plugin

plugin_maturity

  • Description: The lowest acceptableplugin maturity. MariaDB will not load plugins less mature than the specified level.

  • Commandline:--plugin-maturity=level

  • Scope: Global

  • Dynamic: No

  • Type: enum

  • Default Value: One less than the server maturity

  • Valid Values:unknown,experimental,alpha,beta,gamma,stable

port

  • Description: Port to listen for TCP/IP connections. If set to0, will default to, in order of preference, my.cnf, the MYSQL_TCP_PORTenvironment variable, /etc/services, built-in default (3306).

  • Commandline:--port=#,-P

  • Scope: Global

  • Dynamic: No

  • Data Type:numeric

  • Default Value:3306

  • Range:0 to65535

preload_buffer_size

  • Description: Size in bytes of the buffer allocated when indexes are preloaded.

  • Commandline:--preload-buffer-size=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:32768

  • Range:1024 to1073741824

profiling

  • Description: If set to1 (0 is default), statement profiling will be enabled. SeeSHOW PROFILES() andSHOW PROFILE().

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:OFF

profiling_history_size

  • Description: Number of statements about which profiling information is maintained. If set to0, no profiles are stored. SeeSHOW PROFILES.

  • Commandline:--profiling-history-size=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:15

  • Range:0 to100

progress_report_time

  • Description: Time in seconds between sendingprogress reports to the client for time-consuming statements. If set to0, progress reporting will be disabled.

  • Commandline:--progress-report-time=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:5

  • Range:0 to4294967295

protocol_version

  • Description: The version of the client/server protocol used by the MariaDB server.

  • Commandline: None

  • Scope: Global

  • Dynamic: No

  • Data Type:numeric

  • Default Value:10

  • Range:0 to4294967295

proxy_protocol_networks

  • Description: Enableproxy protocol for these source networks. The syntax is a comma separated list of IPv4 and IPv6 networks. If the network doesn't contain a mask, it is considered to be a single host. "*" represents all networks and must be the only directive on the line. String "localhost" represents non-TCP local connections (Unix domain socket, Windows named pipe or shared memory). SeeProxy Protocol Support.

  • Commandline:--proxy-protocol-networks=value

  • Scope: Global

  • Dynamic: Yes

  • Data Type:string

  • Default Value: (empty)

proxy_user

  • Description: Set to the proxy user account name if the current client is a proxy, elseNULL.

  • Scope: Session

  • Dynamic: No

  • Data Type:string

pseudo_slave_mode

  • Description: For internal use by the server.

  • Scope: Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:OFF

pseudo_thread_id

  • Description: For internal use only.

  • Scope: Session

  • Dynamic: Yes

  • Data Type:numeric

query_alloc_block_size

  • Description: Size in bytes of the extra blocks allocated during query parsing and execution (afterquery_prealloc_size is used up).

  • Commandline:--query-alloc-block-size=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:16384

  • Range - 32 bit:1024 to4294967295

  • Range - 64 bit:1024 to18446744073709547520

query_cache_limit

  • Description: Size in bytes for which results larger than this are not stored in thequery cache.

  • Commandline:--query-cache-limit=#

  • Scope: Global

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:1048576 (1MB)

  • Range:0 to4294967295

query_cache_min_res_unit

  • Description: Minimum size in bytes of the blocks allocated forquery cache results.

  • Commandline:--query-cache-min-res-unit=#

  • Scope: Global

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:4096 (4KB)

  • Range - 32 bit:1024 to4294967295

  • Range - 64 bit:1024 to18446744073709547520

query_cache_size

  • Description: Size in bytes available to thequery cache. About 40KB is needed for query cache structures, so setting a size lower than this will result in a warning.0, the default beforeMariaDB 10.1.7, effectively disables the query cache.

Warning: Starting fromMariaDB 10.1.7,query_cache_type is automatically set to ON if the server is started with the query_cache_size set to a non-zero (and non-default) value. This will happen even ifquery_cache_type is explicitly set to OFF in the configuration.

  • Commandline:--query-cache-size=#

  • Scope: Global

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:1M (although frequently given a default value in some setups)

  • Valid Values:0 upwards in units of 1024.

query_cache_strip_comments

  • Description: If set to1 (0 is default), the server will strip any comments from the query before searching to see if it exists in thequery cache. Multiple space, line feeds, tab and other white space characters will also be removed.

  • Commandline:query-cache-strip-comments

  • Scope: Session, Global

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:OFF

query_cache_type

  • Description: If set to0, thequery cache is disabled (although a buffer ofquery_cache_size bytes is still allocated). If set to1 all SELECT queries will be cached unless SQL_NO_CACHE is specified. If set to2 (orDEMAND), only queries with the SQL CACHE clause will be cached. Note that if the server is started with the query cache disabled, it cannot be enabled at runtime.

Warning: Starting fromMariaDB 10.1.7, query_cache_type is automatically set to ON if the server is started with thequery_cache_size set to a non-zero (and non-default) value. This will happen even ifquery_cache_type is explicitly set to OFF in the configuration.

  • Commandline:--query-cache-type=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:enumeration

  • Default Value:OFF

  • Valid Values:0 orOFF,1 orON,2 orDEMAND

query_cache_wlock_invalidate

  • Description: If set to0, the default, results present in thequery cache will be returned even if there's a write lock on the table. If set to1, the client will first have to wait for the lock to be released.

  • Commandline:--query-cache-wlock-invalidate

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:OFF

query_prealloc_size

  • Description: Size in bytes of the persistent buffer for query parsing and execution, allocated on connect and freed on disconnect. Increasing may be useful if complex queries are being run, as this will reduce the need for more memory allocations during query operation. See alsoquery_alloc_block_size.

  • Commandline:--query-prealloc-size=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:24576

  • Range:1024 to4294967295

rand_seed1

  • Description:rand_seed1 andrand_seed2 facilitate replication of theRAND() function. The master passes the value of these to the slaves so that the random number generator is seeded in the same way, and generates the same value, on the slave as on the master. UntilMariaDB 10.1.4, the variable value could not be viewed, with theSHOW VARIABLES output always displaying zero.

  • Commandline: None

  • Scope: Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value: Varies

  • Range:0 to18446744073709551615

rand_seed2

range_alloc_block_size

  • Description: Size in bytes of blocks allocated during range optimization. The unit size in 1024.

  • Commandline:--range-alloc-block-size=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:4096

  • Range - 32 bit:4096 to4294967295

  • Range - 64 bit:4096 to18446744073709547520

read_buffer_size

  • Description: Each thread performing a sequential scan (for MyISAM, Aria and MERGE tables) allocates a buffer of this size in bytes for each table scanned. Increase if you perform many sequential scans. If not in a multiple of 4KB, will be rounded down to the nearest multiple. Also used in ORDER BY's for caching indexes in a temporary file (not temporary table), for caching results of nested queries, for bulk inserts into partitions, and to determine the memory block size ofMEMORY tables.

  • Commandline:--read-buffer-size=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:131072

  • Range:8192 to2147479552

read_only

  • Description: When set to1 (0 is default), no updates are permitted except from users with theSUPER privilege or, fromMariaDB 10.5.2, theREAD ONLY ADMIN privilege, or replica servers updating from a primary. Theread_only variable is useful for replica servers to ensure no updates are accidentally made outside of what are performed on the primary. Inserting rows to log tables, updates to temporary tables andOPTIMIZE TABLE orANALYZE TABLE statements are excluded from this limitation. Ifread_only is set to1, then theSET PASSWORD statement is limited only to users with theSUPER privilege (<=MariaDB 10.5.1) orREAD ONLY ADMIN privilege (>=MariaDB 10.5.2). Attempting to set this variable to1 will fail if the current session has table locks or transactions pending, while if other sessions hold table locks, the statement will wait until these locks are released before completing. While the attempt to setread_only is waiting, other requests for table locks or transactions will also wait untilread_only has been set. SeeRead-Only Replicas for more. FromMariaDB 10.5.2, theREAD_ONLY ADMIN privilege will allow users granted that privilege to perform writes, even if theread_only variable is set. In earlier versions, and untilMariaDB 10.11.0, users with theSUPER can perform writes while this variable is set.

  • Commandline:--read-only

  • Scope: Global

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:OFF

read_rnd_buffer_size

  • Description: Size in bytes of the buffer used when reading rows from aMyISAM table in sorted order after a key sort. Larger values improve ORDER BY performance, although rather increase the size by SESSION where the need arises to avoid excessive memory use.

  • Commandline:--read-rnd-buffer-size=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:262144

  • Range:8200 to2147483647

redirect_url

require_secure_transport

  • Description: When this option is enabled, connections attempted using insecure transport will be rejected. Secure transports are SSL/TLS, Unix sockets or named pipes. Note thatper-account requirements take precedence.

  • Commandline:--require-secure-transport[={0|1}]

  • Scope: Global

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:OFF

  • Introduced:MariaDB 10.5.2

rowid_merge_buff_size

  • Description: The maximum size in bytes of the memory available to the Rowid-merge strategy. SeeNon-semi-join subquery optimizations for more information.

  • Commandline:--rowid-merge-buff-size=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:8388608

  • Range:0 to2147483647

rpl_recovery_rank

safe_show_database

  • Description: This variable was removed inMariaDB 5.5, and has been replaced by the more flexibleSHOW DATABASES privilege.

  • Commandline:--safe-show-database (until MySQL 4.1.1)

  • Scope: Global

  • Dynamic: Yes

  • Data Type:boolean

  • Removed:MariaDB 5.5

secure_auth

secure_file_priv

  • Description:LOAD DATA,SELECT ... INTO andLOAD FILE() will only work with files in the specified path. If not set, the default, or set to empty string, the statements will work with any files that can be accessed.

  • Commandline:--secure-file-priv=path

  • Scope: Global

  • Dynamic: No

  • Data Type:path name

  • Default Value: None

secure_timestamp

  • Description: Restricts direct setting of a session timestamp. Possible levels are:

    • YES - timestamp cannot deviate from the system clock. Intended to prevent tampering withsystem versioning history. Should not be used on replicas, as when a value based on the timestamp is inserted instatement mode, discrepancies can occur.

    • REPLICATION - replication thread can adjust timestamp to match the primary's

    • SUPER - a user with this privilege and a replication thread can adjust timestamp

    • NO - historical behavior, anyone can modify session timestamp

  • Commandline:--secure-timestamp=value

  • Scope: Global

  • Dynamic: No

  • Data Type:enum

  • Default Value:NO

server_uid

session_track_schema

  • Description: Whether to track changes to the default schema within the current session.

  • Commandline:--session-track-schema={0|1}

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:ON

session_track_state_change

  • Description: Whether to track changes to the session state.

  • Commandline:--session-track-state-change={0|1}

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:OFF

session_track_system_variables

  • Description: Comma-separated list of session system variables for which to track changes. For compatibility with MySQL defaults, this variable should be set to "autocommit, character_set_client, character_set_connection, character_set_results, time_zone". The* character tracks all session variables.

  • Commandline:--session-track-system-variables=value

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:string

  • Default Value:

    • =MariaDB 11.3:autocommit,character_set_client,character_set_connection,character_set_results,redirect_url,time_zone

    • <=MariaDB 11.2:autocommit, character_set_client, character_set_connection, character_set_results, time_zone

session_track_transaction_info

  • Description: Track changes to the transaction attributes. OFF to disable; STATE to track just transaction state (Is there an active transaction? Does it have any data? etc.); CHARACTERISTICS to track transaction state and report all statements needed to start a transaction with the same characteristics (isolation level, read only/read write,snapshot - but not any work done / data modified within the transaction).

  • Commandline:--session-track-transaction-info=value

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:enum

  • Default Value:OFF

  • Valid Values:OFF,STATE,CHARACTERISTICS

shared_memory

  • Description: Windows only, determines whether the server permits shared memory connections. See alsoshared_memory_base_name.

  • Scope: Global

  • Dynamic: No

shared_memory_base_name

  • Description: Windows only, specifies the name of the shared memory to use for shared memory connection. Mainly used when running more than one instance on the same physical machine. By default the name isMYSQL and is case sensitive. See alsoshared_memory.

  • Scope: Global

  • Dynamic: No

  • Data Type:string

  • Default Value:MYSQL

skip_external_locking

  • Description: If this system variable is set, then some kinds of external table locks will be disabled for somestorage engines.

    • If this system variable is set, then theMyISAM storage engine will not use file-based locks. Otherwise, it will use thefcntl() function with theF_SETLK option to get file-based locks on Unix, and it will use theLockFileEx() function to get file-based locks on Windows.

    • If this system variable is set, then theAria storage engine will not lock a table when it decrements the table's in-file counter that keeps track of how many connections currently have the table open. SeeMDEV-19393 for more information.

    • Note that command line option name is the opposite of the variable name, and the value is the opposite too.--external-locking=1 means@@skip_external_locking=0, and vice versa.

  • Commandline:--external-locking

  • Scope: Global

  • Dynamic: No

  • Data Type:boolean

  • Default Value:1 (for the variable, that is0 for the command line option)

skip_grant_tables

skip_name_resolve

  • Description: If set to 1 (0 is the default), only IP addresses are used for connections. Host names are not resolved. All host values in the GRANT tables must be IP addresses (or localhost).

  • Commandline:--skip-name-resolve

  • Scope: Global

  • Dynamic: No

  • Data Type:boolean

  • Default Value:0

skip_networking

  • Description: If set to 1, (0 is the default), the server does not listen for TCP/IP connections. All interaction with the server will be through socket files (Unix) or named pipes or shared memory (Windows). It's recommended to use this option if only local clients are permitted to connect to the server.

  • Commandline:--skip-networking

  • Scope: Global

  • Dynamic: No

  • Data Type:boolean

  • Default Value:0

skip_show_database

  • Description: If set to 1, (0 is the default), only users with theSHOW DATABASES privilege can use the SHOW DATABASES statement to see all database names.

  • Commandline:--skip-show-database

  • Scope: Global

  • Dynamic: No

  • Data Type:boolean

  • Default Value:0

slow_launch_time

  • Description: Time in seconds. If a thread takes longer than this to launch, theslow_launch_threadsserver status variable is incremented.

  • Commandline:--slow-launch-time=#

  • Scope: Global

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:2

slow_query_log

  • Description: If set to 0, the default unless the --slow-query-log option is used, theslow query log is disabled, while if set to 1 (both global and session variables), the slow query log is enabled. FromMariaDB 10.11.0, an alias forlog_slow_query.

  • Commandline:--slow-query-log

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Data Type:boolean

  • Default Value:0

  • See also: Seelog_output to see how log files are written. If that variable is set toNONE, no logs will be written even if slow_query_log is set to1.

slow_query_log_file

  • Description: Name of theslow query log file. FromMariaDB 10.11, an alias forlog_slow_query_file. If--log-basename is also set,slow_query_log_file should be placed after in the config files. Later settings override earlier settings, solog-basename will override any earlier log file name settings.

  • Commandline:--slow-query-log-file=file_name

  • Scope: Global

  • Dynamic: Yes

  • Data Type:file name

  • Default Value:host_name-slow.log

socket

  • Description: On Unix-like systems, this is the name of the socket file used for local client connections, by default/tmp/mysql.sock, often changed by the distribution, for example/var/lib/mysql/mysql.sock. On Windows, this is the name of the named pipe used for local client connections, by defaultMySQL. On Windows, this is not case-sensitive.

  • Commandline:--socket=name

  • Scope: Global

  • Dynamic: No

  • Data Type:file name

  • Default Value:/tmp/mysql.sock (Unix),MySQL (Windows)

sort_buffer_size

  • Description: Each session performing a sort allocates a buffer with this amount of memory. Not specific to any storage engine. If the status variablesort_merge_passes is too high, you may need to look at improving your query indexes, or increasing this. Consider reducing where there are many small sorts, such as OLTP, and increasing where needed by session. 16k is a suggested minimum.

  • Commandline:--sort-buffer-size=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:number

  • Default Value:2M (2097152) (some distributions increase the default)

sql_auto_is_null

  • Description: If set to 1, the querySELECT * FROM table_name WHERE auto_increment_column IS NULL will return an auto-increment that has just been successfully inserted, the same as the LAST_INSERT_ID() function. Some ODBC programs make use of this IS NULL comparison.

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:0

sql_big_selects

  • Description: If set to 0, MariaDB will not perform large SELECTs. Seemax_join_size for details. If max_join_size is set to anything but DEFAULT, sql_big_selects is automatically set to 0. If sql_big_selects is again set, max_join_size will be ignored.

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:1

sql_big_tables

  • Description: Old variable, which if set to 1, allows large result sets by saving all temporary sets to disk, avoiding 'table full' errors. No longer needed, as the server now handles this automatically.

  • Commandline:--sql-big-tables

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:0

  • Removed:MariaDB 10.0

sql_buffer_result

  • Description: If set to 1 (0 is default), results from SELECT statements are always placed into temporary tables. This can help the server when it takes a long time to send the results to the client by allowing the table locks to be freed early.

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:0

sql_if_exists

  • Description: If set to 1, adds an implicit IF EXISTS to ALTER, RENAME and DROP of TABLES, VIEWS, FUNCTIONS and PACKAGES. This variable is mainly used in replication to tag DDLs that can be ignored on the slave if the target table doesn't exist.

  • Commandline:--sql-if-exists[={0|1}]

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:OFF

  • Introduced:MariaDB 10.5.2

sql_log_off

  • Description: If set to 1 (0 is the default), no logging to thegeneral query log is done for the client. Only clients with theSUPER privilege can update this variable.

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:0

sql_log_update

  • Description: Removed. Usesql_log_bin instead.

  • Removed: MariaDB/MySQL 5.5

sql_low_priority_updates

  • Description: If set to 1 (0 is the default), forstorage engines that use only table-level locking (Aria,MyISAM,MEMORY andMERGE), all INSERTs, UPDATEs, DELETEs and LOCK TABLE WRITEs will wait until there are no more SELECTs or LOCK TABLE READs pending on the relevant tables. Set this to 1 if reads are prioritized over writes.

  • Commandline:--sql-low-priority-updates

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:0

  • Removed:MariaDB 10.0

sql_max_join_size

sql_mode

  • Description: Sets theSQL Mode. Multiple modes can be set, separated by a comma.

  • Commandline:--sql-mode=value[,value[,value...]]

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:string

  • Default Value:

    • STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

  • Valid Values: SeeSQL Mode for the full list.

sql_notes

  • Description: If set to 1, the default,warning_count is incremented each time a Note warning is encountered. If set to 0, Note warnings are not recorded.mariadb-dump has outputs to set this variable to 0 so that no unnecessary increments occur when data is reloaded. See alsonote_verbosity, which defines which notes should be given. The recommended way, as ofMariaDB 10.6.16, to disable notes is to setnote_verbosity to "".

  • Commandline: None

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:1

sql_quote_show_create

  • Description: If set to 1, the default, the server will quote identifiers forSHOW CREATE DATABASE,SHOW CREATE TABLE andSHOW CREATE VIEW statements. Quoting is disabled if set to 0. Enable to ensure replication works when identifiers require quoting.

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:1

sql_safe_updates

  • Description: If set to 1, UPDATEs and DELETEs must be executed by using an index (simply mentioning an indexed column in a WHERE clause is not enough, optimizer must actually use it) or they must mention an indexed column and specify a LIMIT clause. Otherwise a statement will be aborted. Prevents the common mistake of accidentally deleting or updating every row in a table. UntilMariaDB 10.3.11, could not be set as a command-line option or in my.cnf.

  • Commandline:--sql-safe-updates[={0|1}]

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:OFF

sql_select_limit

  • Description: Maximum number of rows that can be returned from a SELECT query. Default is the maximum number of rows permitted per table by the server, usually 232-1 or 264-1. Can be restored to the default value after being changed by assigning it a value of DEFAULT. If a SELECT has a LIMIT clause, the LIMIT takes precedence over the value of the variable.

  • Commandline: None

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:18446744073709551615

sql_warnings

  • Description: If set to 1, single-row INSERTs will produce a string containing warning information if a warning occurs.

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:OFF (0)

storage_engine

standard_compliant_cte

  • Description: Allow only standard-compliantcommon table expressions. Prior toMariaDB 10.2.4, this variable was namedstandards_compliant_cte.

  • Commandline:--standard-compliant-cte={0|1}

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:ON

stored_program_cache

  • Description: Limit to the number ofstored routines held in the stored procedures and stored functions caches. Each time a stored routine is executed, this limit is first checked, and if the number held in the cache exceeds this, that cache is flushed and memory freed.

  • Commandline:--stored-program-cache=#

  • Scope: Global

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:256

  • Range:256 to524288

strict_password_validation

  • Description: Whenpassword validation plugins are enabled, reject passwords that cannot be validated (passwords specified as a hash). This excludes direct updates to the privilege tables.

  • Commandline:--strict-password-validation

  • Scope: Global

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:ON

sync_frm

  • Description: If set to 1, the default, each time a non-temporary table is created, its .frm definition file is synced to disk. Fractionally slower, but safer in case of a crash.

  • Commandline:--sync-frm

  • Scope: Global

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:TRUE

system_time_zone

  • Description: The system time zone is determined when the server starts. The systemtime zone is usually read from the operating system's environment but can be overridden by setting the 'TZ' environment variable before starting the server. SeeTime Zones: System Time Zone for the various ways to change the system time zone. This variable is not the same as thetime_zone system variable, which is the variable that actually controls a session's active time zone. The system time zone is used for a session whentime_zone is set to the special valueSYSTEM.

  • Scope: Global

  • Dynamic: No

  • Data Type:string

table_definition_cache

  • Description: Number of table definitions that can be cached. Table definitions are taken from the .frm files, and if there are a large number of tables increasing the cache size can speed up table opening. Unlike thetable_open_cache, as the table_definition_cache doesn't use file descriptors, and is much smaller.

  • Commandline:--table-definition-cache=#

  • Scope: Global

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:400

  • Range:400 to2097152

table_lock_wait_timeout

  • Description: Unused, and removed.

  • Commandline:--table-lock-wait-timeout=#

  • Scope: Global

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:50

  • Range:1 to1073741824

  • Removed:MariaDB 5.5

table_open_cache

  • Description: Maximum number of open tables cached in one table cache instance. SeeOptimizing table_open_cache for suggestions on optimizing. Increasing table_open_cache increases the number of file descriptors required.

  • Commandline:--table-open-cache=#

  • Scope: Global

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:2000

  • Range:

    • 1 to1048576 (1024K)

table_open_cache_instances

  • Description: This system variable specifies the maximum number of table cache instances. MariaDB Server initially creates just a single instance. However, whenever it detects contention on the existing instances, it will automatically create a new instance. When the number of instances has been increased due to contention, it does not decrease again. The default value of this system variable is8, which is expected to handle up to 100 CPU cores. If your system is larger than this, then you may benefit from increasing the value of this system variable.

  • Scope: Global

  • Dynamic: No

  • Data Type:numeric

  • Default Value:8 (>=MariaDB 10.2.2)

  • Range:1 to64

table_type

tcp_keepalive_interval

  • Description: The interval, in seconds, between when successive keep-alive packets are sent if no acknowledgement is received. If set to 0, the system dependent default is used.

  • Commandline:--tcp-keepalive-interval=#

  • Scope: Global

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:0

  • Range:0 to2147483

tcp_keepalive_probes

  • Description: The number of unacknowledged probes to send before considering the connection dead and notifying the application layer. If set to 0, a system dependent default is used.

  • Commandline:--tcp-keepalive-probes=#

  • Scope: Global

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:0

  • Range:0 to2147483

tcp_keepalive_time

  • Description: Timeout, in seconds, with no activity until the first TCP keep-alive packet is sent. If set to 0, a system dependent default is used.

  • Commandline:--tcp-keepalive-time=#

  • Scope: Global

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:0

  • Range:0 to2147483

tcp_nodelay

  • Description: Set the TCP_NODELAY option (disable Nagle's algorithm) on socket.

  • Commandline:--tcp-nodelay={0|1}

  • Scope: Session

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:1

thread_cache_size

  • Description: Number of threads server caches for re-use. If this limit hasn't been reached, when a client disconnects, its threads are put into the cache, and re-used where possible. InMariaDB 10.MariaDB 5.5 and newer the threads are freed after 5 minutes of idle time. Normally this setting has little effect, as the other aspects of the thread implementation are more important, but increasing it can help servers with high volumes of connections per second so that most can use a cached, rather than a new, thread. The cache miss rate can be calculated as theserver status variables threads_created/connections. If thethread pool is active,thread_cache_size is ignored. Ifthread_cache_size is set to greater than the value ofmax_connections,thread_cache_size will be set to themax_connections value.

  • Commandline:--thread-cache-size=#

  • Scope: Global

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:256 (adjusted if thread pool is active)

  • Range:0 to16384

thread_concurrency

  • Description: Allows applications to give the system a hint about the desired number of threads. Specific to Solaris only, invokes thr_setconcurrency(). Deprecated and has no effect fromMariaDB 5.5.

  • Commandline:--thread-concurrency=#

  • Scope: Global

  • Dynamic: No

  • Data Type:numeric

  • Default Value:10

  • Range:1 to512

  • Deprecated:MariaDB 5.5

thread_stack

  • Description: Stack size for each thread. If set too small, limits recursion depth of stored procedures and complexity of SQL statements the server can handle in memory. Also affects limits in the crash-me test.

  • Commandline:--thread-stack=#

  • Scope: Global

  • Dynamic: No

  • Data Type:numeric

  • Default Value:

    • 299008

  • Range:131072 to18446744073709551615

time_format

time_zone

  • Description: The global value determines the defaulttime zone for sessions that connect. The session value determines the session's activetime zone. When it is set toSYSTEM, the session's time zone is determined by thesystem_time_zone system variable.

  • Commandline:--default-time-zone=string

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:string

  • Default Value:SYSTEM

timed_mutexes

  • Description: Determines whetherInnoDB mutexes are timed.OFF, the default, disables mutex timing, whileON enables it. See alsoSHOW ENGINE for more on mutex statistics. Deprecated and has no effect.

  • Commandline:--timed-mutexes

  • Scope: Global

  • Dynamic: Yes

  • Data Type:boolean

  • Default Value:OFF

  • Deprecated:MariaDB 5.5.39

timestamp

  • Description: Sets the time for the client. This will affect the result returned by theNOW() function, not theSYSDATE() function, unless the server is started with the--sysdate-is-now option, in which case SYSDATE becomes an alias of NOW, and will also be affected. Also used to get the original timestamp when restoring rows from thebinary log.

  • Scope: Session

  • Dynamic: Yes

  • Valid Values:timestamp_value (Unix epoch timestamp, not MariaDB timestamp),DEFAULT

tmp_disk_table_size

  • Description: Max size for data for an internal temporary on-diskMyISAM orAria table. These tables are created as part of complex queries when the result doesn't fit into the memory engine. You can set this variable if you want to limit the size of temporary tables created in your temporary directorytmpdir.

  • Commandline:--tmp-disk-table-size=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:18446744073709551615 (max unsigned integer, no limit)

  • Range:1024 to18446744073709551615

tmp_memory_table_size

  • Description: An alias fortmp_table_size.

  • Commandline:--tmp-memory-table-size=#

tmp_table_size

  • Description: The largest size for temporary tables in memory (notMEMORY tables) although ifmax_heap_table_size is smaller the lower limit will apply. You can see if it's necessary to increase by comparing thestatus variablesCreated_tmp_disk_tables andCreated_tmp_tables to see how many temporary tables out of the total created needed to be converted to disk. Often complex GROUP BY queries are responsible for exceeding the limit. Defaults may be different on some systems, see for exampleDifferences in MariaDB in Debian. FromMariaDB 10.2.7,tmp_memory_table_size is an alias.

  • Commandline:--tmp-table-size=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:numeric

  • Default Value:16777216 (16MB)

  • Range:

tmpdir

  • Description: Directory for storing temporary tables and files. Can specify a list (separated by semicolons in Windows, and colons in Unix) that will then be used in round-robin fashion. This can be used for load balancing across several disks. Note that if the server is areplication replica, andslave_load_tmpdir, which overridestmpdir for replicas, is not set, you should not settmpdir to a directory that is cleared when the machine restarts, or else replication may fail.

  • Commandline:--tmpdir=path or-t path

  • Scope: Global

  • Dynamic: No

  • Type: directory name/s

  • Default:

    • $TMPDIR (environment variable) if set

    • otherwise$TEMP if set and on Windows

    • otherwise$TMP if set and on Windows

    • otherwiseP_tmpdir ("/tmp") orC:\TEMP (unless overridden during buid time)

transaction_alloc_block_size

  • Description: Size in bytes to increase the memory pool available to each transaction when the available pool is not large enough. Seetransaction_prealloc_size.

  • Commandline:--transaction-alloc-block-size=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Type: numeric

  • Default Value:8192

  • Range:1024 to134217728 (128M)

  • Block Size:1024

transaction_isolation

  • Description: The transaction isolation level. See alsoSET TRANSACTION ISOLATION LEVEL. Introduced inMariaDB 11.1.1 to replace thetx_isolation system variable and align the option and the system variable name.

  • Commandline:--transaction-isolation=name

  • Scope: Global, Session

  • Dynamic: Yes

  • Type: enumeration

  • Default Value:REPEATABLE-READ

  • Valid Values:READ-UNCOMMITTED,READ-COMMITTED,REPEATABLE-READ,SERIALIZABLE

  • Introduced:MariaDB 11.1.1

transaction_prealloc_size

  • Description: Initial size of a memory pool available to each transaction for various memory allocations. If the memory pool is not large enough for an allocation, it is increased bytransaction_alloc_block_size bytes, and truncated back to transaction_prealloc_size bytes when the transaction is completed. If set large enough to contain all statements in a transaction, extra malloc() calls are avoided.

  • Commandline:--transaction-prealloc-size=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Type: numeric

  • Default Value:4096

  • Range:1024 to134217728 (128M)

  • Block Size:1024

transaction_read_only

  • Description: Default transaction access mode. If set toOFF, the default, access is read/write. If set toON, access is read-only. TheSET TRANSACTION statement can also change the value of this variable. SeeSET TRANSACTION andSTART TRANSACTION.

  • Commandline: None

  • Scope: Global, Session

  • Dynamic: Yes

  • Type: boolean

  • Default Value:OFF

  • Introduced:MariaDB 11.1

tx_isolation

  • Description: The transaction isolation level. Setting this session variable viaset @@tx_isolation= will take effect for only the subsequent transaction in the current session, much likeSET TRANSACTION ISOLATION LEVEL. To set for a session, useSET SESSION tx_isolation orSET @@session.tx_isolation. SeeMDEV-31751. See alsoSET TRANSACTION ISOLATION LEVEL. InMariaDB 11.1, this system variable is deprecated and replaced bytransaction_isolation.

  • Commandline:--transaction-isolation=name

  • Scope: Global, Session

  • Dynamic: Yes

  • Type: enumeration

  • Default Value:REPEATABLE-READ

  • Valid Values:READ-UNCOMMITTED,READ-COMMITTED,REPEATABLE-READ,SERIALIZABLE

  • Deprecated:MariaDB 11.1

tx_read_only

  • Description: Default transaction access mode. If set toOFF, the default, access is read/write. If set toON, access is read-only. TheSET TRANSACTION statement can also change the value of this variable. SeeSET TRANSACTION andSTART TRANSACTION. InMariaDB 11.1, this system variable is deprecated and replaced bytransaction_read_only.

  • Commandline:--transaction-read-only=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Type: boolean

  • Default Value:OFF

  • Deprecated:MariaDB 11.1

unique_checks

  • Description: If set to 0, storage engines can (but are not required to) assume that duplicate keys are not present in input data. If set to 0, inserting duplicates into aUNIQUE index can succeed, causing the table to become corrupted. Set to 0 to speed up imports of large tables to InnoDB.

  • Scope: Global, Session

  • Dynamic: Yes

  • Type: boolean

  • Default Value:1

updatable_views_with_limit

  • Description: Determines whether view updates can be made with an UPDATE or DELETE statement with a LIMIT clause if the view does not contain all primary or not null unique key columns from the underlying table.0 prohibits this, while1 permits it while issuing a warning (the default).

  • Commandline:--updatable-views-with-limit=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Type: boolean

  • Default Value:1

use_stat_tables

  • Description: Controls the use ofengine-independent table statistics.

    • never: The optimizer will not use data from statistics tables.

    • complementary: The optimizer uses data from statistics tables if the same kind of data is not provided by the storage engine.

    • preferably: Prefer the data from statistics tables, if it's not available there, use the data from the storage engine.

    • complementary_for_queries: Same ascomplementary, but for queries only (to avoid needlessly collecting forANALYZE TABLE).

    • preferably_for_queries: Same aspreferably, but for queries only (to avoid needlessly collecting forANALYZE TABLE).

  • Commandline:--use-stat-tables=mode

  • Scope: Global, Session

  • Dynamic: Yes

  • Data Type:enum

  • Default Value:preferably_for_queries

version

  • Description: Server version number. It may also include a suffix with configuration or build information.-debug indicates debugging support was enabled on the server, and-log indicates at least one of the binary log, general log orslow query log are enabled, for example10.0.1-MariaDB-mariadb1precise-log. Can be set at startup in order to fake the server version.

  • Commandline:-V,--version[=name]

  • Scope: Global

  • Dynamic: No

  • Type: string

version_comment

  • Description: Value of the COMPILATION_COMMENT option specified by CMake when building MariaDB, for examplemariadb.org binary distribution.

  • Scope: Global

  • Dynamic: No

  • Type: string

version_compile_machine

  • Description: The machine type or architecture MariaDB was built on, for examplei686.

  • Scope: Global

  • Dynamic: No

  • Type: string

version_compile_os

  • Description: Operating system that MariaDB was built on, for exampledebian-linux-gnu.

  • Scope: Global

  • Dynamic: No

  • Type: string

version_malloc_library

  • Description: Version of the used malloc library.

  • Commandline: None

  • Scope: Global

  • Dynamic: No

  • Type: string

version_source_revision

  • Description: Source control revision id for MariaDB source code, enabling one to see exactly which version of the source was used for a build.

  • Commandline: None

  • Scope: Global

  • Dynamic: No

  • Type: string

wait_timeout

  • Description: Time in seconds that the server waits for a connection to become active before closing it. The session value is initialized when a thread starts up from either the global value, if the connection is non-interactive, or from theinteractive_timeout value, if the connection is interactive.

  • Commandline:--wait-timeout=#

  • Scope: Global, Session

  • Dynamic: Yes

  • Type: numeric

  • Default Value:28800

  • Range: (Windows):1 to2147483

  • Range: (Other):1 to31536000

warning_count

  • Description: Read-only variable indicating the number of warnings, errors and notes resulting from the most recent statement that generated messages. SeeSHOW WARNINGS for more. Note warnings will only be recorded ifsql_notes is true (the default).

  • Scope: Session

  • Dynamic: No

  • Type: numeric

This page is licensed: CC BY-SA / Gnu FDL

Last updated

Was this helpful?


[8]ページ先頭

©2009-2025 Movatter.jp