锁的是整个数据库实例,也就是数据库中的所有表,加了全局锁之后,所有客户端只能进行读操作,不能其他操作。
用途:用于备份数据库,防止备份途中有修改操作导致数据不一致
加全局锁
sqlflush tables with read lock;
备份
sqlmysqldump -uroot –p1234 itcast > itcast.sql
释放锁
sqlunlock tables;
特点:在加了全局锁之后,只能读,会导致需要修改的业务处于阻塞状态
在InnoDB引擎中,我们可以在备份时加上参数--single-transaction参数来完成不加锁的一致性数据备份。
sqlmysqldump --single-transaction -uroot –p123456 itcast > itcast.sql
分为两类:表共享读锁(read lock),表独占写锁(write lock)。
读锁:所有客户端只能读,包括自己。
写锁:其他客户端既不能读,也不能写;自己既可以读也可以写。
语法:
加锁:
sqllock tables 表名 read/write;
释放锁:
sqlunlock tables;(或者直接停止客户端连接)

