MySQL各种锁定

1.只读锁定表

LOCK TABLE tb1_name READ;

FLUSH TABLE tb1_name;

#操作

UNLOCK TABLE;

FLUSH需要授予相应权限

FLUSH 将使服务器关闭表文件,这会刷新可能仍缓存在内存里的未写入的更改

需要修改表时,不要使用这种锁定方式

 

2.读写访问锁定表

适合对表文件修改的场合,如表替换或表修复

LOCK TABLE tb1_name WRITE;
FLUSH TABLE tb1_name;

#进行相应表操作,可在另一窗口进行

FLUSH TABLE tb1_name;    #做了修改,需要再次刷新表
UNLOCK TABLE;

如此锁定,读写都是不允许的

 3.只读访问锁定所有数据库

FLUSH TABLES WITH READ LOCK;
SET GLOBAL read_only = ON;

#SET可能会阻塞,等待其他客户端释放它们所拥有的表锁,并完成所有
#未完成的事务,SET语句返回后,可安全地继续后面的操作。

SET GLOBAL read_only = OFF;
UNLOCK TABLES;

此种锁定,其他客户端只能读取数据,不能更改它们

mysqldump备份时,可以使用这种方法

对某些想更新表的客户端不友好,只有真正有必要时才可以这样锁定服务器

转载于:https://www.cnblogs.com/wanshuduner/p/11113537.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值