我有一个bash脚本试图将我的数据库中的特定表锁定为READ Only。这是我正在尝试执行的命令:
mysql -u root -p -e "LOCK TABLES db_name.table1 READ, db_name.table2 READ;"
这实际上并没有锁定表,因为我能够更新我试图锁定上面的表。当我从shell运行以下命令时,它可以工作:
mysql -u root -p
(这将我带入mysql,我输入以下内容)
LOCK TABLES db_name.table1 READ, db_name.table2 READ;
这实际上锁定了数据库中的表,因为我无法写入任何内容或更新这些表中的任何内容。
有谁知道我做错了什么?
答案 0 :(得分:0)
Per Marc B上面的评论:
关闭连接时,mysql会清除。你的cli将锁定表,然后退出,导致mysql清理并释放锁。您需要在锁定活动的整个过程中保持连接
答案 1 :(得分:0)
MySQL在关闭连接时清理。这意味着您的mysql ....
命令行将连接,锁定表,然后退出 - 关闭连接,导致锁被释放。
你需要保持"锁定"连接你想要的整个时间/需要锁定。