MySQL Variables transaction_read_only 数据库 参数变量解释及正确配置使用
本站中文解释
MySQL参数变量transaction_read_only控制MySQL支持写及只读事务,以及在支持写事务时能否修改当前事务变量。该参数仅影响用户会话而不影响读模式的表;支持的取值为on和off,默认值为off,表示支持读写事务,只读事务不受影响。
设置MySQL参数变量transaction_read_only的方法:
1、在my.cnf中设置:打开my.cnf文件,在[mysqld]的下方加入如下代码:
transaction_read_only=on/off
然后保存文件并让配置文件生效;
2、在运行时动态设置:在登录MySQLshell,运行以下命令:
set GLOBAL transaction_read_only = on/off;
(注:此时设置仅对当前会话生效,只有将配置永久地添加到my.cnf文件,才能实现长期有效)。
官方英文解释
transaction_read_only
Command-Line Format | --transaction-read-only[={OFF|ON}] |
---|---|
System Variable (≥ 5.7.20) | transaction_read_only |
Scope (≥ 5.7.20) | Global, Session |
Dynamic (≥ 5.7.20) | Yes |
Type | Boolean |
Default Value | OFF |
The transaction access mode. The value can be
OFF
(read/write; the default) or
ON
(read only).
The transaction access mode has three scopes: global, session,
and next transaction. This three-scope implementation leads to
some nonstandard access-mode assignment semantics, as
described later.
To set the global transaction access mode at startup, use the
--transaction-read-only
server
option.
At runtime, the access mode can be set directly using the
SET
statement to assign a value to the
transaction_read_only
system
variable, or indirectly using the SET
statement. For example, use this
TRANSACTION
SET
statement to set the global value:
SET GLOBAL transaction_read_only = ON;
Setting the global
transaction_read_only
value
sets the access mode for all subsequent sessions. Existing
sessions are unaffected.
To set the session or next-level
transaction_read_only
value,
use the
SET
statement. For most session system variables, these statements
are equivalent ways to set the value:
SET @@SESSION.var_name
=value
;SET SESSIONvar_name
=value
;SETvar_name
=value
;SET @@var_name
=value
;
As mentioned previously, the transaction access mode has a
next-transaction scope, in addition to the global and session
scopes. To enable the next-transaction scope to be set,
SET
syntax for assigning session system variable values has
nonstandard semantics for
transaction_read_only
,
To set the session access mode, use any of these syntaxes:
SET @@SESSION.transaction_read_only =
value
;SET SESSION transaction_read_only =value
;SET transaction_read_only =value
;For each of those syntaxes, these semantics apply:
Sets the access mode for all subsequent transactions
performed within the session.Permitted within transactions, but does not affect the
current ongoing transaction.If executed between transactions, overrides any
preceding statement that sets the next-transaction
access mode.Corresponds to
SET
SESSION TRANSACTION {READ WRITE | READ ONLY}
(with theSESSION
keyword).
To set the next-transaction access mode, use this syntax:
SET @@transaction_read_only =
value
;For that syntax, these semantics apply:
Sets the access mode only for the next single
transaction performed within the session.Subsequent transactions revert to the session access
mode.Not permitted within transactions.
Corresponds to
SET
TRANSACTION {READ WRITE | READ ONLY}
(without theSESSION
keyword).
For more information about SET
and its relationship to the
TRANSACTION
transaction_read_only
system
variable, see Section 13.3.6, “SET TRANSACTION Statement”.
transaction_read_only
was
added in MySQL 5.7.20 as a synonym for
tx_read_only
, which is now
deprecated and is removed in MySQL 8.0.
Applications should be adjusted to use
transaction_read_only
in
preference to tx_read_only
.
编辑:一起学习网
标签:事务,变量,参数,值为,文件