3

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

4

2 回答 2

4

我不认为你可以简单地锁定任何这样的表。最好的方法是撤销所有更新、插入和删除权限

像这样的东西:

REVOKE DROP, INSERT, TRUNCATE ON database.table FOR 'user'@'host'
于 2013-11-12T18:29:29.910 回答
0

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

  1. 停止 MySQL
  2. 将数据文件复制到新位置。
  3. 重启 MySql
  4. 对数据副本执行操作。
  5. 删除副本(通过 DROP TABLE)
于 2013-11-12T18:49:36.050 回答