MySQL永久锁在桌子上

时间:2013-11-12 18:26:49

标签: mysql locking permanent

根据我在下面的内容中阅读:http://dev.mysql.com/doc/refman/5.0/en/lock-tables.html,LOCK TABLES语句仅适用于当前会话。对于所有连接会话,如何永久锁定特定表以使其成为只读,直到我明确解锁它们为止?

2 个答案:

答案 0 :(得分:4)

我不认为你可以简单地锁定任何这样的表。您可以执行此操作的最佳方法是撤消所有更新,插入和删除权限

像这样:

REVOKE DROP, INSERT, TRUNCATE ON database.table FOR 'user'@'host'

答案 1 :(得分:0)

对于像这样的大型耗时操作,一个好的选择是将数据复制到新位置,进行操作。这实际上是对数据进行快照,使数据库在您执行操作时不受阻碍(并且可能仍然接受读取和写入)。

  1. 停止MySQL
  2. 将数据文件复制到新位置。
  3. 重新启动MySqL
  4. 对数据副本执行操作。
  5. 删除副本(通过DROP TABLE)