0

我想从休眠状态锁定整个 mysql 数据库,我的意思是把所有表都置于读取模式。就像是:

FLUSH TABLES WITH READ LOCK; 

然后解锁数据库,总是通过hibernate。

4

1 回答 1

0

恕我直言,这种方法是不可取的。在获得所有表的读锁后(可以通过解析information_schema.tables表轻松完成),后续写入数据库的尝试将一直保持到超时。

此外,会话获得的所有锁都会在会话结束时释放。锁定会话需要保持活动状态才能保持锁定。

作为替代方案,我建议撤销应用程序连接的用户的写入权限。要做到这一点,请参考我以前的答案。或者你可以有两个用户,一个拥有所有权限,一个只有读取权限。当您想将应用程序置于只读模式时,只需切换用户即可。

于 2013-08-29T15:05:45.753 回答