为什么我不能在 MySQL 中更改我的连接的隔离级别?

Cra*_*lus 3 mysql transaction isolation-level

我正在尝试在测试环境中对 MySQL 的隔离级别进行一些试验。
我执行以下操作:

mysql> set @@session.tx_isolation='READ-UNCOMMITED';
ERROR 1231 (42000): Variable 'tx_isolation' can't be set to the value of 'READ-UNCOMMITED'
Run Code Online (Sandbox Code Playgroud)

这也失败了:

mysql> update information_schema.session_variables set variable_value='READ-UNCOMMITED' where variable_name='TX_ISOLATION';
ERROR 1044 (42000): Access denied for user 'root'@'localhost' to database 'information_schema' 
Run Code Online (Sandbox Code Playgroud)

我在这里做错了什么?我是根。所以它不应该是一个权利问题。

Rol*_*DBA 6

你需要尝试

SET tx_isolation = 'READ-UNCOMMITTED';
Run Code Online (Sandbox Code Playgroud)

或者

SET SESSION tx_isolation = 'READ-UNCOMMITTED';
Run Code Online (Sandbox Code Playgroud)

您也可以在交易开始时声明它

SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
Run Code Online (Sandbox Code Playgroud)

试一试 !!!

警告

请注意您拼错了READ-UNCOMMITED(Missing T)。它应该是READ-UNCOMMITTED

您不能tx_isolation在 INFORMATION_SCHEMA 数据库中进行更改,因为它是内存中只读数据库。

  • +1 用于查找拼写错误。尽管如此,`set @@session.tx_isolation='READ-UNCOMMITTED'` 是一个有效的声明。 (3认同)